Because We Love Happy Coding

フリーライターからエンジニア × 講師。発信力だけあり余ってる感じ

ECCUBE3

ECCUBE3の配送方法を一時的に減らしたい

一時的に、配送方法を制限したいという要望。 標準の機能では、配送方法を停止する機能はないらしい。また、カスタマイズ等で実現する方法を探ってみたが、変なところで処理を挟むとあちこちに影響が出そうで、これという方法がない。 結局、MySQLのテーブル…

ECCUBE3で仮会員メールが届かなかったら

どうやらユーザー側からは打つ手なし。登録はメールアドレス重複で弾かれ、ログインはパスワードで弾かれ、パスワードリセットメールアドレスは届かないという三重苦。この辺ももうちょっとなんとかならないものか ……ECCUBE4で改善されてるといいけど。 管理…

ECCUBE3管理画面の「キャッシュ管理」が表示されないのは偶然じゃなかった

目次 目次 環境 手順など root_urlpathも危険。 環境 [EC-CUBE] EC-CUBE3.0.16 手順など しばらく前から、管理画面の中の「コンテンツ管理」「キャッシュ管理」の表示が変になっていた。 translator以外のチェック項目が消えてしまっていたのだ。 キャッシュ…

ECCUBE3 テンプレートイベントのformからデータを取り出す

ちょっと行き詰まったところがあったのでご紹介がてら。 目次 目次 環境 手順など 環境 [EC-CUBE] EC-CUBE3.0.16 手順など テンプレートイベントのformの値にアクセスする際、なかなか思ったようにいかなかったので、正解はこんな形だったというメモ。 欲し…

なぜSymfonyのフォームは融通が効かないか

Symfony2のフォームの仕組みはけっこう複雑だ。 FormType 、FormBuilder、FormViewといった段階的なフォーム生成 ModelData、NormData、ViewDataという三段階のデータ構造 handleRequest() した後は値を変更できない Entity のプロパティとのひもづけ 関与す…

ECCUBE3「フィールドグループに追加のフィールドを含んではなりません」

以下のメモは、まだECCUBE3のことをよくわかっていなかった時に書いたもの。とはいえ今でもまだ頭がよく整理できていない。 「フィールドグループに追加のフィールドを含んではなりません」と言われてしまう件について。 環境 [EC-CUBE] EC-CUBE3.0.16 prope…

Twigテンプレートでの文字列比較

目次 目次 環境 文字列の比較ってどうするんだろう? 参考記事 ~ 環境 Twig 文字列の比較ってどうするんだろう? テンプレート内で文字列を比較しようとして、はたと困った。 Twigの中でifが使えるのは分かっていたが、比較はどうやるんだっけ。 == を使うの…

ECCUBE3のフックポイントを整理する

目次 目次 環境 共通フックポイント Controllerからdispatchされるフックポイント テンプレートフックポイント テンプレートフックポイント まとめ 参考記事 環境 [EC-CUBE] EC-CUBE3.0.16 フックポイントはプラグインから本体の挙動に手を加える重要なポイ…

ECCUBE3のログインアイコンの色を変える

ECCUBE3 のデフォルトでは、ログインしているかどうかがわかりづらい。 ログイン中、アイコンの色を変えてみる。 SVGファイルで形状を規定しているファイル。 html/template/default/img/common/svg.html CSSで色など規定しているファイル。 html/template/d…

ECCUBE3 で新商品登録時にClassCategoryを追加する

新しく商品を追加する時に、ClassCategory1がなくて怒られたので、追加処理を書いた。 環境 [EC-CUBE] EC-CUBE3.0.16 [PHP] 5.6.36 [データベース] MySQL 5.7.16 手順など $ClassName = $app['eccube.repository.class_name']->find(1);//idは例 $ClassCateg…

ECCUBE3のメールテンプレートの改行規則がよくわからない

という話。 問い合わせメールの内容を変更していたのだけれど、改行が適用されたりされなかったりする。 ************************************************ ご請求金額 ************************************************ ご注文番号:{{ Order.id }} お支…

htaccessをいじってECCUBE3にメンテナンスモードを実現する

一時的にサイトの機能をクローズしておくことを俗に「メンテナンスモード」などと呼ぶ。 ECCUBE3標準ではこの機能はない。 目次 目次 環境 htaccess を書き換える 環境 [EC-CUBE] EC-CUBE3.0.16 [レンタルサーバ] さくらインターネット htaccess を書き換え…

ECCUBE3でハマった仕様

私がECCUBE3の開発をしていて「ええっ」と思った仕様を挙げておく。 目次 目次 環境 「数量変更」ボタンの機能はカートに戻されるだけ FaxTypeというFormTypeは存在しない メールのSubjectはMailService.phpで変更する CustomerAddressは顧客住所ではなく配…

ECCUBE3のShippingControllerは、配送先をどう処理しているか

ShoppingControllerの中で、配送先(CustomerAddress)がどのようにセットされているか、調べてみた。 目次 目次 受注ステータスがorder_processingの受注を取得 is_null(order_processing)の場合 getShippingFormBuilder($Order) builder->getForm() 結論 …

ECCUBE3の送料を変更する

目次 目次 環境 手順など 合計金額が合わない 環境 [EC-CUBE] EC-CUBE3.0.16 手順など 何度やってもうまくいかず苦労した。手強い。 /* $eventから受注データを取り出す */ $order = $event->getArgument('Order'); $deliveryFee = $this->getDeliveryFee($o…

ECCUBE3の管理画面のパスワードを紛失した時の処置

環境 [EC-CUBE] EC-CUBE3.0.16 開発中にサーバーを変えたりすると、dbのマイグレーションの関係で、けっこう頻繁に管理画面に入れなくなったりする……。 以前の解決方法 前回はこちらのやり方で解決した気がする。 【3.0.15】管理者パスワードを忘れた時に管…

ECCUBE3で受注確認メールの内容を修正する

目次 目次 環境 event.yml EVENTファイル 受注確認のメールにプラグインから手を入れたい。普通のテンプレートイベントと似て少々異なるので、手順を調べるのに戸惑った。イベントmail.orderをフックする。共通フックポイントとか呼ばれるものらしい。一次資…

ECCUBE3 のTelType、FaxType、ZipType、KanaTypeには注意が必要

faxタイプはtelタイプでもある。 TelTypeExtensionで、->remove('tel02')->remove('tel03')->add('tel01','tel',array())をしてみたら、なぜかfaxの中にもtel01が追加されている。 試しにTelTypeExtensionの->add('tel01','tel',array())を削除してみたらfax…

数字のSpellOut、つまり英単語表記をECCUBE3に導入する

数字の誤読を防ぐために英語圏では、数字を英単語で綴る、という文化がある。WordingとかSpellOutとか呼ぶようだ。 海外送金などでは大きな金額を間違えずに英単語で書かされる場合もあり、けっこう面倒くさい。 ECCUBE3 の英語化にあたりSpellOutの要望があ…

デバッグモードではアクセスできるページが404エラーになる

index_dev.php/を介したデバッグモードでは全ページ問題なくアクセスできるが、通常モードにすると404エラーになる、という現象に遭遇して焦った。 目次 目次 環境 結論から 環境 [EC-CUBE] EC-CUBE3.0.16 [レンタルサーバ] XServer [PHP] 5.6.36 [データベ…

画像をURLから取得しECCUBE3に登録する

外部URLから画像を取得して製品画像として登録したい。file_get_content()で画像を取得することにした。 Admin/ProductController.phpのadd_image()とedit()を参考に進める。 Admin/ProductController.php 217行目付近では、画像データがPOSTされてきて、Upl…

ECCUBE3 にORMで新しい製品登録する

Requirements ECCUBE3.0.16 Symfony2.7.28 PHP5.6.38 PHPから商品登録 PHPファイルから商品登録をさせるためにあれこれ調べる。 persist()がわからなかったので、Symfony2のORMに関する記述を読む。 Databases and the Doctrine ORM (Symfony Docs) persist(…

ECCUBE3 のフォーム

フォーム フォームの扱いは、私のようにフレームワークに不慣れな人間からするとだいぶこみ入っている。 ただ、きちんと把握すれば、データベースからフロントエンドまできちんと繋がり、ハンドリングにも手間がない、はずだ。ただECCUBE3ではかなりフォーム…

Twig テンプレート

目次 目次 Requirements Twig キャッシュ 追記)PHPからキャッシュを削除する 継承 変数の展開 配列の展開 Twig テンプレートファイルの設置場所 オリジナル 修正用 プラグイン用 プラグインのテンプレートをカスタマイズする。 余談 Twigテンプレートに値を…

ECCUBE3のプラグインを開発する

目次 目次 Requirements プラグインにできること HTTPリクエスト、Routingをきっかけに処理する イベント、フックポイントをきっかけに処理する サービスを提供し、呼び出された時に処理する インストール時等に処理をする プラグイン実装の参考記事 プラグ…

テスト中はECCUBE3のキャッシュ生成を止めておきたい

ECCUBE3を開発していて悩まされるのがキャッシュ。 デバッグ環境(index_dev.php経由でのアクセス)を使えばキャッシュは無視してくれるんだけれど、顧客で確認してもらう前にいちいち管理画面でキャッシュを削除しないといけないし、先方から来た修正をその…

デバッグモードで効いてるCSSが通常モードで反映されない

Requirements [EC-CUBE] EC-CUBE3.0.16 現象 デバッグモード(https://some.site.com/index_dev.php)ではCSSが適用されているのに、デバッグモードを外す(https://some.site.com/)とCSSが適用されない。 Chromeの開発者ツールで確認すると、デバッグモード…

ECCUBE3 の概要

前の記事では、ECCUBE3を始めるにあたって知っておいた方がましなこと、を書いた。 今回は全体の概要。 目次 目次 Requirements インストール時のディレクトリ構成 appディレクトリ htmlディレクトリ srcディレクトリ vendorディレクトリ 各クラスの役割を理…

ECCUBE3 をはじめる

目次 目次 Requirements ここは、初心者に優しいECCUBE3のページ。 環境 対象読者 ECCUBE3 のつらみ ECCUBE3 のカスタマイズ 本体をいじりたくない ECCUBE3を教材にして、Synfony2を学ぶ デバッグ デバッグモードを使えるようにする デバッグモードでの注意…

ECCUBE3 とりあえず規格2を非表示にする方法

商品登録画面で規格1と規格2が両方表示されてしまう 規格1だけにしたい。根本的な削除はめんどくさそうだったのでとりあえず非表示にする。 規格2を非表示にする方法 src/Eccube/Resource/template/admin/Product/product_class.twigをapp/template/admin/Pr…