[eccube3]越境EC作成のメモ

これを読めば完璧というわけではない。
詳細に書いててもきりがないので要点とかをまとめる。

完成イメージ

  • 全部英語
  • 海外からの注文に対応

要するに、日本以外からの注文に対応できるサイトにしたい。

必要プラグイン

各国別に決済を構えるなんてのは無理なので、守備範囲が広いっぽいPayPalを採用。名前のふりがなとか住所の郵便番号部分とか、日本のフォーマットじゃどうしようもない部分をカスタマイズするためのプラグインを導入。

3.0系|海外住所入力プラグイン|トエビス株式会社
https://www.ec-cube.net/products/detail.php?product_id=1684

3.0系|ペイパル エクスプレス チェックアウト 決済プラグイン(3.0系)|PayPal Pte. Ltd. 東京支店
https://www.ec-cube.net/products/detail.php?product_id=984

この2つ、もしかすると自分の組み方が悪いのかもしれないけど、クーポンとポイントプラグインとの共存ができない。各所で処理が行われなくてバグる。

翻訳について

ECCUBE3には多言語化の仕組みは存在しないので、地道に翻訳していくしかない。テンプレートだったりシステムだったりjsだったりで手を入れる箇所がめっちゃある。プラグインで生成する部分もあるから環境によりけりになる。

そもそも存在してるかわからんけど海外版のパッケージがあったとして、ショップは英語表記でいいけど管理画面まで英語になっちゃったら運営が悲鳴を上げるので、ほんとやるせない。

海外住所入力プラグインについて

これは記入フォームのフォーマットを変更する仕組みなので、国名はマスターデータのやつを自分で変えないといけない。めんどいけど頑張らないといけない。

海外からの注文に対応するためのものであって他国語に対応するためのものじゃないからね。

フォームが切り替わったときに表示されるplaceholderはjsで管理されていて、「~_script.twig」に書いてある。必須項目は非表示にしてるだけなので、空欄はだめなんでテキトーなものを代入してある。それもここで設定されてる。

  • app/Plugin/OverseasAddress/Resource/template/default/contact_script.twig
  • app/Plugin/OverseasAddress/Resource/template/default/customer_script.twig
  • app/Plugin/OverseasAddress/Resource/template/default/entry_script.twig
  • app/Plugin/OverseasAddress/Resource/template/default/shopping_nonmember_script.twig
  • app/Plugin/OverseasAddress/Resource/template/default/shopping_shipping_edit_script.twig

国名変更時の項目変更は項目名ごとごっそりいく。
表示される項目名のタグは「{{ form_label(form.****) }}」じゃなくて「{{ form_label(form.****_overseas) }}」だから、プラグイン側で用意されてることが分かる。以下のファイルを修正する。

  • app/Plugin/OverseasAddress/Form/Extension/CustomerAddressTypeExtension.php
  • app/Plugin/OverseasAddress/Form/Extension/CustomerTypeExtension.php
  • app/Plugin/OverseasAddress/Form/Extension/EntryTypeExtension.php
  • app/Plugin/OverseasAddress/Form/Extension/NonmemberTypeExtension.php

項目名「国」に関しては違うところで処理してるので注意。

app/Plugin/OverseasAddress/Form/Type/CountryType.php

ついでに購入時の自動送信メール文も変えてくれて、というかこいつが優先されるのでテンプレートを弄っても反映されない。配送情報やらなんやらの部分を編集する場合は「order_mail_overseas_address.twig」。

相性問題といえば注文番号設定プラグインにも干渉してるからホント凶悪だわこれ。購入後の自動送信メールに反映されなくなる。問い合わせを受けてもよくわからないことになっちゃう可能性が高いので無効化するしかない。

入力項目部の翻訳

項目名だったりplaceholderだったり、上記プラグインで管理してるっちゃしてるけど全部をカバーできてるわけじゃない。ECCUBE本体側の修正も必要になる。

  • /src/Eccube/Resource/locale/message.ja.yml
  • /src/Eccube/Resource/locale/validator.ja.yml

とりあえずこの2つを修正。
「admin.~」は管理画面上の表示だから、管理者が日本語大丈夫ならスルーしても平気。

src/Eccube/Form/Type/SearchProductType.php

商品検索のとこのはこれを修正。同ディレクトリでは他にも出力関係のを設定してるファイルがあるので一通り見たほうが良い。ファイル数が多すぎていちいちピックアップするのがめんどすぎる。

src/Eccube/Resource/template/default/Form/form_layout.twig

とか郵便番号検索、郵便番号から自動入力のやつはここに入ってる。
コメントタグは場所により効かないっぽいからファイル自体を複製してバックアップするのが面倒が少ないかもしれない。

シェアする

  • このエントリーをはてなブックマークに追加