EC-CUBE3 「NoSuchPropertyException~」エラーでツボった

EC-CUBE3で入力フォームに項目を追加して、管理画面から入力フォームにアクセスをしたときにツボったエラーです。
同じ人がいるかもしれないので参考にしてください。

NoSuchPropertyException in PropertyAccessor.php line 486:
Neither the property “

のエラーに関しての話です。

 

 

エラーメッセージ

NoSuchPropertyException in PropertyAccessor.php line 486:
Neither the property “message_cur” nor one of the methods “getMessageCur()”, “messageCur()”, “isMessageCur()”, “hasMessageCur()”, “__get()” exist and have public access in class “Eccube\Entity\Order”.

 

 

エラーの画面

こちらは/index_dev.php/を使用したエラー画面です。
エラー画面の出力の仕方はコチラの

「EC-CUBE3 エラーの場所がわかりにくいので解りやすくデバッグモードにする方法」

を参考にしてください。

 

速攻解決策

「message_cur」という名前のフォームを追加したので、
src/Eccube/Entity/内の関数名も
public function setMessage_cur($message_cur)

public function getMessage_cur()
にしていました。

この関数はそのままにしておいて
同じ内容の関数で_を外した関数を追加したら直りました。

public function setMessagecur($message_cur)

public function getMessagecur()

 

こんな感じです

 

詳細

何をしようとしたのか

注文画面で「message_cur」という項目をつけようとしました。
なので、既存の「message」に関する記述をコピペして、「message」を「message_cur」と変えてソースを追加しました。

その時、関数名も同じようにsetMessage()のコピペをsetMessage_cur()としてしまった感じです。

詳しくはコチラの内容を行った状況です
EC-CUBE3 注文画面に項目を追加する

注文に関する部分なので、該当ソースの場所は
/src/Eccube/Entity/Order.php
です。

 

なぜ2つの関数を用意したのか

【public function setMessage_cur(】
のほうは、お客様が注文をしたときに呼び出されていました。

【public function setMessagecur(】
のほうは管理画面からの操作で呼び出されていました。

細かく王時間もないので、2つの関数を用意して対応という感じです。

 

結局のところ、納期の問題もありSmartyとか勉強する余裕がないので
詳しいことはわかりませんが、
勉強するならフォーラムの中の

mapped オプションとは?

が、とても有効な内容になっている感じですので、参考にしてみて下さい。

 

 

 

 

 

 

 

 

 

 

EC-CUBE3 カスタマイズの困ったところ

EC-CUBE3はまだまだカスタマイズがめんどくさい感じがします。
導入前に検討している場合はご参考に。

でもまぁ、ここまで良質なECモノってないので、
やむを得ない感もありますので、あきらめたり、あるあるな感じで見てください。

EC-CUBE3の嫌なあるあるデメリットポイント

  1. EC-CUBE2と全く互換性がない
  2. カスタマイズ方法を検索して見つけたらEC-CUBE2の物だった
  3. 便利な無料プラグインを見つけたと思ったらEC-CUBE2だった
  4. 同じ機能の3向けプラグインは高い
  5. 公式フォーラムですらEC-CUBE2とEC-CUBE3がしっかり分かれていない
  6. 情報の掲載年が2016以降がEC-CUBE3の情報の可能性が高い
  7. 「\user_data\」の文字があったらEC-CUBE2の情報
  8. SmartyとかtwigとかDoctrineとか分かりにくい
  9. SmartyとかDoctrineとか勉強する時間なんて納期的に無い
  10. SmartyとかtwigとかDoctrineとか勉強したくない
  11. EC-CUBE3カスタマイズで稼ぐくらいの気合がないとソースが分かりにくい
  12. ドキュメントが少ない
  13. オブジェクト指向と行っても、ここまで組まれていたら手が出しにくい
  14. ソースのタブがスペース!
  15. デバッグモードがわかりやすいようでわかりにくい
  16. 過去バージョンが細かく再配布されていないので、自分で持っておかないとヤバイ

 

 

EC-CUBE3のうれしいあるあるメリット

  1. 軽い
  2. ロリポップとかワンクリックで入れられる
  3. 全体で必要な機能が入っているので、細かなカスタマイズを考えなければ超便利
  4. SEOにも強い
  5. スマホ・タブレット・PCで使えるレスポンシブデザイン
  6. SmartyとかtwigとかDoctrineとか慣れると便利
  7. 配列の定義で最後に「,」がついているので追加エラーしにくい
    array(‘a’ , ‘B’ , ‘c’ );
    じゃなくて
    array(‘a’ , ‘B’ , ‘c’ , );
    ってなっているのが、ちょっとうれしい気遣い

 

 

カスタマイズの練習に

スマーティ~とかドクトリンとか…
他の請負がてらにEC-CUBE3の依頼がちょっと入り込んできて
時間もノウハウもなくて即興で勉強するには

EC-CUBE3 住所に項目を追加する方法

EC-CUBE3 注文画面に項目を追加する」←こっちのが短くて簡単

をやってみて下さい。
なんとなく、こんな感じかな~ってのがつかめると思います。

よければC#ですが
ファイルの中の文字を探すツールの作り方
のアプリを作ると、直したい場所を探すことができて便利だとおもいます。

 

 

 

【参考までに私の近況】
EC-CUBE3はぜんぜんわからないで、BtoB社内ツール専門のアラフィフ&ほぼ退役PGです。
片手間にEC-CUBE3の仕事が入りこんできたので悪戦苦闘しています。

納期も短いし、スポットなので初歩からSmartyとか勉強できませんので
体当たりでゴリゴリと改造しています。

 

 

EC-CUBE3 注文画面に項目を追加する

「支払方法」とか「メッセージ」を入力する「注文画面」に項目を追加します。
例えば「包装あり・なし」とか「カタログ希望」とかに使えます。
今回は「通貨」を入れ込んでみたサンプル例です。

いつも通りにプラグインタイプではなく、ソースをいじる感じで行きます。

※管理画面でのオーダー情報の変更は、今回使用していないのでデバッグしていません。

 

ゴリゴリの注文項目の追加の仕方

EC-CUBE3注文項目追加の仕組み

EC-CUBE3 住所に項目を追加する方法」と同じような考えで
注文フォームの「message」部分をコピペして「message_cur」という名前の項目を追加してみます。

ただ、「message」っていう名前が変数として、いろいろな所で使用されているので検索ツールを使っても場所が分かりにくいのが難点です。

 

ざっくりとした手順

  1. データベースにaddr03を追加
  2. プログラムの修正
  3. レイアウトの修正

 

1.データベースにmessage_curを追加します

●MYSQLを開いて実行します

ALTER TABLE `dtb_order` ADD `message_cur` LONGTEXT NULL ;

 

 

2.プログラムの修正

●次のソースの中の「message」を検索して、その部分をコピペして「message_cur」にしたものを貼り付けていきます。
「message」という変数のところもあったりするので、こればっかりは勘とか雰囲気で対応してみて下さい。
追記で注意事項:「message_cur」というような「_」のついた名前は良くないらしい。

 

\src\Eccube\Service\ShoppingService.php
\src\Eccube\Resource\doctrine\Eccube.Entity.Order.dcm.yml
\src\Eccube\Form\Type\ShoppingType.php
\src\Eccube\Entity\Order.php

※↑Order.phpについてはコチラを参考にして関数名に気を付けてください。
EC-CUBE3 「NoSuchPropertyException~」エラーでツボった

 

 

2-追記:フォームのスタイルをテキストとかセレクトにする

入力タイプを変えることができます。

\src\Eccube\Form\Type\ShoppingType.php

の場所で次のように設定します。

 

【テキストエリアタイプの場合】 <textarea>タグを使用

->add(‘message_cur’, ‘textarea’, array(
‘required’ => false,
‘data’ => $message,
‘constraints’ => array(
new Assert\Length(array(‘min’ => 0, ‘max’ => 3000))),
))

 

【リストの場合】 <select>タグを使用

->add(‘message_cur’, ‘choice’, array(
‘choices’ => array(‘Please select a currency’=>’Please select a currency’,’JPY’=>’JPY’,’USD’=>’USD’,’EUR’=>’EUR’,’OTHERS’=>’OTHERS’)
))

 

【オプションボタンの場合】<option>タグ

奥が深そうなので諦めました…
リストのスタイルでごまかすとか…(>_<)

 

 

 

3.レイアウトを修正します

管理画面からでも良いですし、ソースをいじっても良いのでtwigファイルのレイアウトを修正します。

※「src\Eccube\Resource\template」は「app」に入っていることがあるので、そちらを優先します。

\src\Eccube\Resource\template\default\Mail\order.twig
\app\template\default\Shopping\index.twig
\app\template\default\Mypage\history.twig

 

 

↓お問い合わせ(Inquiry field)の上に「Currency」の名前で追加するとこんな感じになります

\app\template\default\Shopping/index.twig

<h2 class=”heading02″>Currency</h2>
{{ form_widget(form.message_cur) }}
{{ form_errors(form.message_cur) }}
<h2 class=”heading02″>お問い合わせ欄</h2>

 

4.キャッシュを削除します

何がどうつながっているのかわからないので、全部にチェックを入れてキャッシュを削除します。

 

 

まず、お客様周りの動作が完成

とりあえずここまでで購入に関する部分は完成します。

  1. お客様の購入の際に新項目の操作が可能に
  2. 注文メールに新項目の表示(自動配信、管理者宛メール)
  3. お客様がログインして自分で注文履歴を見る際に新項目が表示

問題になるのが、次の管理画面での新項目の操作です。

実際に管理画面で「支払い方法」などを管理者が修正をすると、手数料等の変更は手計算でするようになったりするので、ここで細かな修正はしないで、運営の方で「ショップ用メモ欄」などに記載しての対応が望まれます。

 

 

ソースのダウンロード

今回修正をかけたtwig以外のファイルをUPしましたので参考にしてみて下さい。

「message_cur」と「messagevur」の部分が追加したところです。

ひょっとしたらそのほかの部分も更新しているので、これをUPするとサイトが確実に壊れると思いますので参考で使用してください。

サンプルのダウンロードsrc

 

 

管理画面の方で修正ができるようにする方法

実際、使用しないで運営でカバーするのでここまでは作りこみませんでした。
おそらく新項目をテキストエリアタイプで作るとすんなりいくかもしれませんが、私のほうではSelectタイプで作ったので表示がめんどくさそうです。

ちょっと感じた部分で、直さないといけなそうなソースはこのあたりかと感じます

 

\src\Eccube\Form\Type\Admin\OrderType.php
\src\Eccube\Resource\template\admin\Order\edit.twig

 

ここを直すと、管理画面で入力をすることができるようになります。
(エラーが出るならこちらも参考に「EC-CUBE3 「NoSuchPropertyException~」エラーでツボった」)

しかし、なぜか「Select」で入れて炒るのにテキストエリアになります。
気にしなくてもいいならこれでもいいかも。

実際には手入力の方が汎用性があるので、これはこれで…良しとして
クライアントが突っ込んできたら
(^^)「変更をした履歴や詳細が入力できるようにテキストエリアにしています」
といってごまかす…

もしくは表示させない。

 

 

 

 

EC-CUBE3 メールが長いので短くしたい

注文確認メールと管理人に届くメール。

これを
「印刷したときに2枚になるので、1枚に収まるくらいコンパクトにして欲しい」

という要望がありましたので修正です。

 

特に通販だと7年くらい注文受付の紙を保持しておいた方が良いという話なので
おそらく他の会社でも必要だと思いますので備忘録。

 

メールを短くする方法

注文メールはお客様に届くものと管理人に届くものが同じなので
「様」とかをはしょらないように注意が必要です。

1.メールテンプレートを修正します

\src\Eccube\Resource\template\default\Mail\order.twig

例によって\app\の方に入っている場合もありますので、
\app\に同名のファイルがあったら、そっちの修正を優先してください。

 

【例1】

FAXを()閉じにしてTELの横にしたり

 

【例2】

************************************************
 ご注文商品明細
************************************************

******ご注文商品明細******

にしたり

 

【例3】

時間指定値引き送料無料だったらその項目も切っちゃいます。

 

【例4】

下の方の

{% for ShipmentItem in Shipping.ShipmentItems %}
商品コード: {{ ShipmentItem.product_code }}
商品名: {{ ShipmentItem.product_name }} {{ ShipmentItem.classcategory_name1 }} {{ ShipmentItem.classcategory_name2 }}
数量:{{ ShipmentItem.quantity|number_format }}

{% endfor %}

の部分は上の金額が出ているヤツとかぶっているからいらなさそうです。

 

2.キャッシュの削除

例によって「管理画面」で「コンテンツ管理」「キャッシュ管理」で全部を削除します。

(なぜかtwigだけだとうまくいかなかったので…)

 

3.フッターなども短く

「管理画面」で「設定」「基本情報設定」「メール設定」でヘッダーやフッターの文章を短くします

 

 

 

4.検証

注文をしてみて、メールを受信して、印刷をするのは紙がもったいないから「印刷プレビュー」とか「XPS」や「PDF」にプリントアウトして確認

 

ヤマダウェブコムでカードが使えない!カードが止まる!どういうことなの?

本カードは使用不可となっています。別のカードで再入力するか、お持ちのカード会社へお問合せください。

ヤマダウェブコムで購入をしようとしたら「本カードは使用不可となっています。別のカードで再入力するか、お持ちのカード会社へお問合せください。」というメッセージが出ます。

【結論】
ヤマダウェブコムでカード決済はできない&さらにヤバイことになる!!!
2018年6月現在

 

その前に確認!

ひょっとしたら「カードの仕様上限金額が、今回の利用金額よりも上かもしれません」
電気製品だから5万円以上しやすいですよね…
カードによっては「セキュリティの関係でインターネットでの1回の使用は5万円まで」ってところもあるのでチェックしてみて下さい。

 

 

カードが使えなくなるまでの状況

本当にやばい!どうにかしてほしいので注意喚起も添えてUPします。
私が使っているのは楽天カードのVISAです。

ちなみに通販の価格上限設定はしていないはず…
だってPCとか周辺機器とか普通に購入できていますし…

 

24日18時 スーパーの買い物でカードを使った

普通に猫のエサ特売で2,000円くらい使いました。

 

 

24日21時 ヤマダウェブコムでエラーが出た

購入しようとしたら
「本カードは使用不可となっています。別のカードで再入力するか、お持ちのカード会社へお問合せください。」
のメッセージが出ました。

最初は「番号間違えたかな?」と思って再入力しても同じです。
数時間前に使ったから止められているってことはないのに…?

 

 

 

24日22時 あきらめて楽天ショップで買う

同じ商品が500円プラス価格だったけど、仕方ないから楽天ショップで購入しました。
その際、ヤマダで使ったカードと同じカードを使用しました。

 

 

25日10時 カード会社から連絡が来る

「カードの利用につきまして不審なご利用があったかもしれませんので確認を取りたいのですが…」とカード会社から電話がきました。

「昨日の21時にヤマダウェブコムで使いましたか?そのあと楽天ショップで使いましたか?」

「はい、使いましたが、ヤマダの方で使えませんと出たので購入しませんでした」

・・・・・・

そのあと、ちょっとやり取りして

「最初の取引(ヤマダ)で弊社のセキュリティに引っかかってしまい、それ以降カードの利用(楽天ショップ)を決済できないように停止しております。
正しいご利用と確認できましたので本日中(25日)にセキュリティを解除しますが、本日は使えませんのでご了承ください。
それと、楽天ショップの方での購入は決済が降りていないのでお店から連絡が入ると思うので、別の支払い方法かキャンセルで対応してください。申し訳ありませんでした…」

 

(;=_=)いやいや、逆に感謝ですわ。
怪しいと思ってすぐに止めてもらえる対応があるってのが分かってよかったよ。
なんか、そういうことがあるんだぁ…って安心しました。
コンゴトモヨロシクって感じですね

<(`^´)>そして!クソッ!
ヤマダめぇ!道連れにされたわ!!!!!

 

よく考えると大惨事になっていた

カードの利用が止められている期間は24日と25日です。

もし、これが5日・15日・20日だったら電気代や携帯代がアウトになっていました。
もちろんブラックリストに載ったかもしれませんね…

更にレンタルサーバーの自動更新日に当たっていたら商売あがったりになっていました!

 

これはヤバイので苦情を言っておく

その前に、よく考えるとセキュリティコードを2回入力する感じですよね…!
最初のカード番号を入力したときと、
購入の時の2回入力!
システム的にオカシイですね…

 

 

 

 

 

 

 

 

 

大学で使うMicrosoft Officeライセンスは買ったほうが良いか?

大学、短大、専門学校でパソコンの購入を促されます。
大体がOffice付きのものですが、購入の際に「学割 内田のOfficeライセンス」というものも来るかと思います。
ついでに学校によっては「Officeアカウントの登録方法」なんて案内も来ます。

学校でOfficeアカウントもらえるなら買わなくてもいいのですか?と思うので、その説明です。

 

学校でもらえるOfficeアカウントとは?

学校入学の際の説明会などで「パスワードを設定」する申請書類とか、
メールの使い方などの案内があります。

そこでもらえるメールアドレスの殆どが「学籍番号@学校名の入った英数字」になっていると思います。

これを使うことでオンラインでOfficeを無料で使い放題できます!(オフライン使用不可)
「エデュケーショナル版」というものが使えます。
URLはコチラですが、マメにURLが変わるので「Microsoft Office 学生 無料」で検索して入った方が良いかと思います。

https://products.office.com/ja-jp/student/office-in-education

【無料Office!そんなうまい話はナイ!要注意点!】

  • 「エデュケーショナル版」はインターネットにつながった状態でしか使用できません!
  • ネットのない環境で使えません!
  • オンラインなので、動きがちょっとマッタリしている感じがします。
  • 基本的に不便で使えない!

 

 

学割Office365アカウント販売 ウチダの学割 内田洋行とは?

学校の購買やご案内で「ウチダの学割」というものでOfficeアカウントを格安で取得する方法があります。
コチラは本物のOfficeを使用することができて、パソコンにインストールをするためにインターネットにつながなくても使用することができます。(オフライン使用可能)

価格も2万円以下なので手軽でいい感じです。

【学割Office!要注意点!】

卒業してもアカウントは使えますが、卒業後に新しく買い替えたPCにインストールして使用できません。

現場の人間(私の見解)としては「それでもいい」と思います。

  • 卒業して会社に行ったら「会社でアカウントを用意してくれるから、学生時代のアカウントは不要なんじゃない?」と思われがちですが、ほとんどの企業が個人向けアカウントを準備してくれません。なので、そのアカウントをずっと使う感じになるから、卒業後もしばらく必要。
  • でも、パソコンの買い替えをする際に、大体Officeが入ったPCがほとんどなので、学生アカウントは買い替えたときに乗り換えるつもりでも良いかと…
  • そもそもPCなんてマメに買い替えたりしませんよね…
  • みんながみんな、パソコン使う仕事に就くわけじゃないし…
  • 会社によっては古いOfficeを使っている会社も少なくはありません。
    古いOfficeは、このOffice365ライセンスとは無関係です。
    (大手企業でもシステムの関係上、旧タイプを使用しているところも多くあります)

 

 

学校で購入するパソコンにOfficeを入れるかどうか?

学校で購入しなくても、ネットやお店で購入の際にライセンス付きセットにするかどうか…
次の点を注意して考えてみて下さい。

そのOfficeは「学割Office」か「通常ライセンス」か?
学割なら上記の「ウチダの学割」と変わりません。
Office無しPCを買って「ウチダの学割」にした方が安い場合もあります。
「通常ライセンス」も卒業後に必要かどうか判らないので、安く済ませたいなら学割ライセンスを買った方がいいかも。

 

 

 

 

ウチが買ったもの

ウチはDELLでスペックの高いPCを買って「ウチダの学割」を入れました。
ウィルスソフトも無し。Office無し。便利ソフト無し。タブレットモード無し。

 

 

 

EC-CUBE3 エラーの場所がわかりにくいので解りやすくデバッグモードにする方法

EC-CUBE3をいじっていて落ちるエラー。

何が悪いのかわかりにくくて不便だと思いますが、実はエラーはわかりやすいのです。

そのエラー特定方法です。

 

1.EC-CUBE3のデバッグモードをオンにする

サイトの中の一番上のフォルダの中に「index_dev.php」というファイルがあります。

コレの39行目あたりの、この部分をコメントアウトします。

※本来なら「$allow」に自分のIPを追加するのが一番良いのですが、レンタルサーバーなどでは、それで動かない場合があるので、ざっくりデバッグPCの判別をストップさせます。

if (isset($_SERVER[‘HTTP_CLIENT_IP’])
|| isset($_SERVER[‘HTTP_X_FORWARDED_FOR’])
|| !in_array(@$_SERVER[‘REMOTE_ADDR’], $allow)
) {
header(‘HTTP/1.0 403 Forbidden’);
exit(‘You are not allowed to access this file. Check ‘.basename(__FILE__).’ for more information.’);
}

 

 

2.デバッグモードで動かします

サイトのURLに「index_dev.php/」を入れて、TOPページからエラーが出るまでの一連の動きを行います。

例「http://monomono.sub.jp/」→「http://monomono.sub.jp/index_dev.php/」

ページの下の方にデバッグモードのツールが出ます。

 

 

3.エラーのところまで動かします

エラーが出るとメッセージが出てきます。
なんのことかよくわかりにくいので  マークの横の赤い部分を押します。

 

 

優しい色使いでわかりやすいエラーの情報が出てきますので、指摘箇所を修正します。

 

 

 

 

4.最後に一番大事なこと

デバッグが終わったり、また後日…などで作業を終わらせる際には、

1で修正した「index_dev.php」のコメントアウトを元に戻してUPします。

とても大事なので

絶対に忘れないでください。

 

 

 

 

EC-CUBE3 住所に項目を追加する方法

既存のプラグインを入れたり、
自作プラグインを作る方法が一番良いのですが
今回、訳あって直接ソースを修正することにしましたので
とても悪い例ですが備忘録。

※管理画面でのオーダー情報の変更は、今回使用していないのでデバッグしていません。
管理画面につきましては「大体動いているんじゃないかな?」程度の確認だけです。

 

ゴリゴリの住所の項目の追加の仕方

EC-CUBE3住所項目追加の仕組み

「addr02」という項目があるので、「addr03」という項目を作って、そこに必要な情報を入れ込みます。

なので、既存プログラムの「addr02」の内容が記述してある部分すべてに、直前のaddr02に関する内容をコピペして
addr03のソースを追加していきます。

・やってみて慣れてきたら「asddr03」という名前でなくて、適切うな名前にしてもOKですが、ありがちなところで「Country」の名前は使用できません

・今回は住所欄に3項目連続して表示させています。
場所とかプレースホルダーの変更方法は、2のプログラム一覧部分を修正をしていくと、大体の修正場所がわかるので対応してください。

 

 

ざっくりとした手順

  1. データベースにaddr03を追加
  2. プログラムの修正
  3. レイアウトの修正

 

 

1.データベースにaddr03を追加します

●MySQLを開いてSQLで次の6個のクエリを実行します

ALTER TABLE `dtb_order` ADD `order_addr03` LONGTEXT NULL ;
ALTER TABLE `dtb_shipping` ADD `shipping_addr03` LONGTEXT NULL ;
ALTER TABLE `dtb_base_info` ADD `addr03` LONGTEXT NULL ;
ALTER TABLE `dtb_help` ADD `law_addr03` LONGTEXT NULL ;
ALTER TABLE `dtb_customer` ADD `addr03` LONGTEXT NULL ;
ALTER TABLE `dtb_customer_address` ADD `addr03` LONGTEXT NULL ;

 

 

2.プログラムの修正

●次のソースの中の「addr02」と「Addr02」を検索して、その部分をコピペして「addr03」「Addr03」にしたものを貼り付けていきます。

・細かい内容は勘や適時修正をしてください
・配列などの場所は「,」の位置や「)」などに注意してください

\src\Eccube\Resource\doctrine\Eccube.Entity.BaseInfo.dcm.yml
\src\Eccube\Resource\doctrine\Eccube.Entity.Customer.dcm.yml
\src\Eccube\Resource\doctrine\Eccube.Entity.CustomerAddress.dcm.yml
\src\Eccube\Resource\doctrine\Eccube.Entity.Help.dcm.yml
\src\Eccube\Resource\doctrine\Eccube.Entity.Order.dcm.yml
\src\Eccube\Resource\doctrine\Eccube.Entity.Shipping.dcm.yml

\src\Eccube\Form\Type\AddressType.php
\src\Eccube\Form\Type\Admin\OrderType.php
\src\Eccube\Form\Type\Admin\ShippingType.php
\src\Eccube\Form\Type\Admin\TradelawType.php
\src\Eccube\Entity\BaseInfo.php
\src\Eccube\Entity\Customer.php
\src\Eccube\Entity\CustomerAddress.php
\src\Eccube\Entity\Help.php
\src\Eccube\Entity\Order.php
\src\Eccube\Entity\Shipping.php
\src\Eccube\Controller\ContactController.php
\src\Eccube\Controller\ShoppingController.php
\src\Eccube\Controller\Admin\Order\EditController.php
\src\Eccube\Controller\Admin\Customer\CustomerEditController.php

\src\Eccube\Service\ShoppingService.php

\html\template\default\js\eccube.js

\src\Eccube\Resource\config\constant.yml.dist
↑これは「address2_len: 60」の部分

\src\Eccube\Resource\template\default\Shopping\index.twig
\src\Eccube\Resource\template\default\Form\form_layout.twig
\src\Eccube\Resource\template\admin\Order\edit.twig
\src\Eccube\Resource\template\admin\Form\form_layout.twig
\src\Eccube\Resource\template\admin\Customer\edit.twig
\src\Eccube\Resource\template\admin\Setting\Shop\shop_master.twig
\src\Eccube\Resource\template\admin\Setting\Shop\tradelaw.twig
\src\Eccube\Resource\template\default\Mail\order.twig

※「src\Eccube\Resource\template」は「app」に入っていることがあるので、そちらを優先します。

 

 

3.レイアウトを修正します

管理画面からでも良いですし、ソースをいじっても良いのでtwigファイルのレイアウトを修正します。

ここでも「addr02」の場所を真似てやっていけばなんとかなります。

※「src\Eccube\Resource\template」は「app」に入っていることがあるので、そちらを優先します。

src\Eccube\Resource\template\default\Shopping\nonmember.twig
src\Eccube\Resource\template\default\Shopping\shipping.twig
src\Eccube\Resource\template\default\Shopping\shipping_edit.twig
src\Eccube\Resource\template\default\Shopping\shipping_multiple_edit.twig
src\Eccube\Resource\template\default\Mypage\change.twig
src\Eccube\Resource\template\default\Mypage\delivery.twig
src\Eccube\Resource\template\default\Mypage\delivery_edit.twig
src\Eccube\Resource\template\default\Mypage\history.twig
src\Eccube\Resource\template\default\Mail\contact_mail.twig
src\Eccube\Resource\template\default\Mail\order.twig
src\Eccube\Resource\template\default\Help\about.twig
src\Eccube\Resource\template\default\Help\tradelaw.twig
src\Eccube\Resource\template\default\Entry\confirm.twig
src\Eccube\Resource\template\default\Entry\index.twig
src\Eccube\Resource\template\default\Contact\index.twig
src\Eccube\Resource\template\admin\Setting\Shop\shop_master.twig
src\Eccube\Resource\template\admin\Setting\Shop\tradelaw.twig
src\Eccube\Resource\template\admin\Order\search_customer.twig
src\Eccube\Resource\template\admin\Mail\order.twig
src\Eccube\Resource\template\admin\Customer\edit.twig

 

 

4.キャッシュを削除します

何がどうつながっているのかわからないので、全部にチェックを入れてキャッシュを削除します。

 

 

 

5.実行してみる

なんでもそうですが、大体一発でうまくいきません。

エラーが出たら、デバッグモードにして場所を特定して修正をしてください。

EC-CUBE3 エラーの場所がわかりやすいデバッグモードにする方法 →

 

 

管理画面からの操作でエラーが出るなら

についてはコチラを参考にして関数名に気を付けてください。
EC-CUBE3 「NoSuchPropertyException~」エラーでツボった

 

今回こちらの「住所項目の追加」では関数に「_」を使用しなかったので引っかかりませんでしたが、もし「_」をつかった名前だったら引っかかるかもしれないので、管理画面からの操作でエラーになったら参考してください。

 

 

もし、住所項目追加プラグインを作るなら?

コチラに「会員情報の項目を追加する方法」のプラグインがわかりやすく載っています。

プラグインに慣れていないなら、こちらの情報も便利です。

プラグインジェネレータ

大きく注意したいポイントとしては、こちらは会員情報に項目を追加します。
住所項目の追加の場合は

会員情報ー会員の住所ー追加項目
    ー発送先住所1-追加項目
    ー発送先住所2-追加項目

となるので、リレーションを「customer_id」でなく
「dtb_customer_address」の「customer_address_id」に関連付けないといけないのが気を付けいないといけないポイントになります。

 

 

 

 

 

imagick(ImageMagick)の imagecoloratで色が取れない

 昨日までは正常に色の値が取れていたのに
突然色がRGBで000になった時の対応。

 

こんな感じに書いていました。

昨日までは$r、$g、$bにシッカリと色が取れていたコード

$im_file = new Imagick(“aaaa.jpg”);
$rgb = imagecolorat($im_file,10,10);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

echo var_export($rgb);
var_dump($r, $g, $b);

 

表示結果は

 

何が悪いのかわからないけど、修正はこう

$im_file = imagecreatefromjpeg(“aaaaaa.jpg”);
$rgb = imagecolorat($im_file,1,1);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

echo var_export($rgb);
var_dump($r, $g, $b);

 

jpeg指定で呼んだら直りました。

 

ちなみにサーバーはロリポップです。

 

 

  • imagick(ImageMagick)の imagecoloratの値がおかしい
  • imagecoloratの戻り値がNULLになる
  • imagecoloratが0になる

こういう時には画像に合わせた読み込みをすると良いかと思います。
ウワサだけど透過gifを使ったファイルの場合は
この方法の方が良いらしいです…(未確認ですが)

 

 

 

 

 

 

なんの投資を選ぶか?メリットとデメリット

株、外為、仮想通貨のどれがいいのか?メリットとデメリットの説明をします。

経験を踏まえた独断と偏見なので参考程度にしてみて下さい。

ちなみに「仕事をしている・片親・子持ち・家事育児あり・スマホユーザー」の私は「外為」「仮想通貨」です

 

↓以下の説明で色がついている部分が自分的に重要視している気になる部分です。

外為投資について

外国に興味が持てます。株に比べるとリアル世界に飛び出した体験ができないのがつまらないけど、資産運用ならこれでもいいかなって感じです。

メリット

  • 国が相手なので倒産しない
  • 平日、約24時間取引ができるので帰宅してからでも大丈夫
  • 日本の祝日でも外国が休みでなければ動いている(土日は絶対休み)
  • ポジションを持っているだけで大きな利子が入る
  • 銘柄10個くらいから選べばいいので

 

デメリット

  • 元金が40万円くらい必要
  • 経験や就職していないと口座が作れないときがある
  • 審査が厳しい
  • 未成年不可の会社が多い
  • 学生不可の会社が多い
  • トランプ大統領のツイッターが怖い

 

 

仮想通貨投資について

いつでもできるのがうれしいですね。テクニカルグラフが適用されやすいのも好きです。手数料もあるのでデイトレがメインでやっています。
土日など、庭仕事とか掃除とかの横にタブレットを置いてチョイチョイ見ています。

メリット

  • 簡単に始められる
  • 少ない予算(5万くらい)から本格的なFX取引(空売りとか)ができる
  • 比較的審査が緩い
  • 週1数時間メンテナンスがあるけど、大体24時間365日取引ができる
  • 比較的イベントに左右されにくい
  • テクニカルの動きがキレイでわかりやすい

初期のテクニカルはきれいでしたが、今は汚いので使えません!

デメリット

  • ポジションを持っていると1日に1回手数料を取られる
  • 安全性や将来性が怖い
  • 動かないときは本当に動かない
  • テクニカルの動きが汚い

 

 

株式投資について

投資収入以外にも優待やイベントなどで実世界でリアルに体感できるのが面白いです。
ニュースとかもとて面白く感じますし、社会に関しての知識人になれるのもカッコいいです。

メリット

  • 株主優待がもらえるところもある
  • 配当金がもらえるところもある
  • 株主総会に行くことができる(粗品がもらえる)
  • 経済ニュースに強くなるので学生にはオススメ
  • お宝銘柄を探すのが楽しい
  • その会社が育つとうれしい
  • 10万円くらいから現物取引ができる
  • 親の手続きをすれば小学生でも口座開設が可能

 

デメリット

  • 銘柄が多いので探すのが大変
  • 平日の日中しか取引できない
  • 大きな会社でも破綻する可能性がある
  • 飲食店は食中毒とかこわい
  • スキャンダルとか怖い
  • 安い株はインサイダーとか仕手というヤラセが起きる