WooCommerce+Amazon Payなら余分な手数料ゼロでECが作れるが…

ええと、私は茂田と申しまして、秋葉原のラジオデパート1階で「Shigezone」という、名前もロゴもふざけた店をやってるんですが、実は本職はECなどの業務システム開発&コンサルだったりします。業務効率化のお手伝いしまっせ。

WooCommerceいいよね

ECをやるにはAmazonとか楽天とかYahoo!ショッピングとかに出店したり、独自のECカートシステム契約して使ったりが普通なんだろうけど、そうじゃなくレンタルサーバ代だけであとはオープンソースのソフトウェアだけでやる方法がある。
「WordPress」という有名なコンテンツ管理システムがあり、それのプラグインとして動作するECシステムが「WooCommerce」。これ、結構簡単にカートシステムが構築できる。
ただしセキュリティ面や日本語対応問題などは自分で解決せねばで、これでタダで作ったとしても自分がヘマして数日停まっちゃう、なんてことが起こり得る。だから目的に応じて採否を考えるやつね。

Amazon Payもいける…のだが

WooCommerceは世界的にはかなりの普及度で、Squareなどのクレカ決済システムとの連動も容易。そしてAmazon Payについても、無料のプラグインで実現できちゃうのだ。
ECにおける問題点は「めんどくささ」。お客さんはAmazonなら住所・支払方法は登録済だけど、それ以外だといちいち入力しなきゃならない。メンドイ。
それを解決するのが「Amazon Pay」で、Amazonではない独立のWebサイトからAmazonにログインし、お届け先と支払方法を自動的に流用できるって仕組みなのだ。
実際やっぱ便利なので、導入すると8割のお客さんが使う。

たぶんここを直せばいい

WooCommerceのAmazon Payプラグインはおおむね標準的な設定だけで使えるのだが、日本人の場合は姓・名が逆になってしまうという問題がある。そして姓・名の切れ目に半角スペースを使ってくれてればいいんだけど、全角だとうまく切れない。
それの解決法としてプラグインのPHPソースをいじってるので、その解決法だけ書いておく。細かいこととか、うまくいかないとかのサポートは有料になりまっせ。
「WooCommerce Amazon Pay」のV2系を使ってる前提ね。その前のバージョンとは構造が違うんだけれど、古いのはAmazon側でハネる。
以下、もちろんバージョンによりこのとおりでない可能性はあり、またうまく動かずECシステム全体を停めてしまう可能性もあるので、あくまで自己責任ってことで。

・いじるファイル
/woocommerce-gateway-amazon-payments-advanced/includes/class-wc-amazon-payments-advanced-api-abstract.php

393行あたりで
① $last_name_fallback = '.'; のドットは姓・名が空っぽの場合に代わりに入れるが、僕はこれが結構嫌なので半角スペースに変更している。ただし利用条件によっては半角スペースのみだとエラーになる。

② $name = str_replace(' ', ' ', $name);//全角スペース→半角スペースに変換
この一行を追加している。全角スペースを半角スペースに変換しておいてから先の処理をする、というやつね
③ 直下の「last_name」「first_name」を入れ替える

	// Use fallback value for the last name to avoid field required errors.
	$last_name_fallback = ' ';//ドットは嫌なので半角スペースに変更
	$name = str_replace(' ', ' ', $name);//全角スペース→半角スペースに変換
	$names = explode(' ', $name );
	return array(
		//日本語姓名の対応のためこの2つのlastとfirstを入れ替える
		'last_name' => array_shift( $names ),
		'first_name'  => empty( $names ) ? $last_name_fallback : implode( ' ', $names ),
	);

動作テストの際は、Amazonの自分の住所録に姓名の「半角スペース区切り・全角スペース区切り・区切りなし」の3種類を登録しておいて、それが正しく処理されるかの確認をする。

WooCommerceをまともに使うには、これ以外にもいくつかいじる必要は出てくる。その意味ではメンドイが、印刷フォームなどもPHPでかなり自在に作れるので、メリット・デメリットを天秤にかけて採否を考えましょ。

この記事が気に入ったらサポートをしてみませんか?