商品在庫が少なくなったらメールでお知らせする機能を
EC-CUBE2.13系に入れました。
追記したファイル:
data/class/helper/SC_Helper_Purchase.php
function registerOrderComplete()に追記。
参考にしたページ
EC-CUBEで在庫数が規定値以下になったらメールする
http://www.space-i.jp/wp/?p=1322
商品在庫が少なくなったらメールでお知らせする機能を
EC-CUBE2.13系に入れました。
追記したファイル:
data/class/helper/SC_Helper_Purchase.php
function registerOrderComplete()に追記。
参考にしたページ
EC-CUBEで在庫数が規定値以下になったらメールする
http://www.space-i.jp/wp/?p=1322
100kmを裸足で走る人をメモ
(昔からの人)
福岡のアベベさん
関東の旗のおじさん
(近年の人)
私
manさん
相山さん
松田さん
アシヤクチさん
よりたさん
沖縄の人
萩やその他の大会でも目撃情報があるけど、
同じ人なのか別の人なのか詳しくはわかりません。
これはSNS等やってる人の一部で、全体からすると氷山の一角なので、実際は+10人ぐらいいそう。
私も完走したという人がいらっしゃいましたら、ご一報ください。
また、完走した人を知ってるよという場合もお知らせください。
(特に目的はありません。ただの個人的興味です。)
11月に裸足の100kmギネス挑戦があるから、
そこでたくさんの裸足ウルトラランナーが表に出て来そう。
商品の種類が多い注文の場合、送料等が反映されない不具合がありました。
セッションのデータ型がMySQLのTEXT型の場合、入りきらなくなって消えてしまうということらしいです。
dtb_sessionのsess_dataのデータ型をtextからlongtextに変更して対応。
下記ページを参考にしました。
EC-CUBE:商品を多数購入すると送料が0円になってしまう不具合
2.13はmail_title.tplにタイトルが入っている。
各メールテンプレートと共通で使用しているので、
変数の中身の有無で条件分岐。
改行すると件名に反映するので1ずつ入れる。
<!--{if $arrOrder.order_name01 != ''}--><!--{$arrOrder.order_name01}--> <!--{$arrOrder.order_name02}--> 様【<!--{$tpl_shopname}-->】 <!--{$tpl_mailtitle}-->
<!--{elseif ($arrForm.name01.value !='')}-->
<!--{$arrForm.name01.value}--> <!--{$arrForm.name02.value}--> 様【<!--{$tpl_shopname}-->】 <!--{$tpl_mailtitle}-->
<!--{else}-->
【<!--{$tpl_shopname}-->】 <!--{$tpl_mailtitle}-->
<!--{/if}-->
2.4.1を2.13.1へ移行の作業。
数々の壁にぶち当たったので、それぞれヒントになればと思いメモしておく。
デザインを調整。ある程度目処が立ったところで、
データの移行のテスト。
稼働しているサイトだから手順を記録して移行日に最短で最新データに上書きしないといけない。
1.カテゴリはCSVの書き出し&読み込みで。
2.商品データをCSVに書き出して編集してアップしようかなと思ったものの、商品情報の文字列のせいでエクセルでは上手く編集できない。
そこでモジュール使う方がいいのかと、
2.11と2.12をインストールし、モジュールを取得して2.4.1のデータをエクスポートするまでは上手くいくも、2.11にインポートできない。システムエラー。
これを使える様に調整するのは雲をつかむ様な作業。
これで半日を棒に振ってしまった。
調べてると、エラーで出来ないからテーブルコピーで構造をいじってCSVインポートした人もいる。
そっか、結局は力技ですか。
当初はそのつもりだったので、必要なテーブルの構造を確認して進める事にする。
最初からそうしろよってね。
コピーしたのは、
商品、顧客、受注に関するテーブル。
あとは手動で。
※決済種別や発送種別とかは番号を合わせとかないといけない。
【1】必要なテーブルの構造とデータをエクスポート
(コンソールは使えないサーバなのでウェブブラウザからの操作のみとなる)
※postgresからMysqlなのでCREATE文のtimestamp型の場合 without time zoneは削除
あとtimestamp複数の場合、now()を利用するカラム以外にデフォルト値を入れる
例)カラム名 timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
機種依存文字の問題発生。
phpPgAdminからエクスポート機能を使用するとどうしても文字化けが回避できない。
画面で文字化けしない機種でsql表示させ、コピーしてエクセルとテキストエディタで調整し、インポート用のcsvを作成する。
もしくは、XHTMLで書き出し、それを加工する。
(アクセスがあると早いんだけど...あいにく持っていない。)
一旦、テストテーブルに入れる。
余計なカラムを削除しつつインポート。
(※dtb_orderは不要カラム削除の前に、….)
管理画面でどうやらPOSTの値が文字化け。
phpの問題だな?
php.iniが効いてないっぽい。
すっきり解決。
dtb_orderは不要カラム削除の前に、
dtb_orderからdtb_shippingへ入れる為にテーブルコピーして加工。
CREATE table dtb_shipping AS SELECT * FROM dtb_order;
dtb_order_detailのproduct_class_idにclasscategory_id1でselectし、update。
UPDATE dtb_order_detail,dtb_products_class
set dtb_order_detail.product_class_id= dtb_products_class.product_class_id
where dtb_order_detail.classcategory_id1= dtb_products_class.classcategory_id1 and dtb_order_detail.classcategory_id1>0;
order_detail_idがなくてインポートできない!
エクセルで割り振る。。
完了〜。
会員ログインできない。
config.php AUTH_MAGICの値を移行する。
2.4.1は/data/mtb_constants_init.phpにある。
できた。
しまった、管理者ログインのパスワードを再設定するを忘れる←注意
商品種別
product_type_idが0で機能しない
UPDATE dtb_products_class set product_type_id=1;
DNS切り替え後、
自分のルーターを再起動。
商品規格の更新でシステムエラー
dtb_products_classのproduct_class_idの最大値を
dtb_products_class_product_class_id_seqに入れるだけではだめ。
オートインクリメントの値をproduct_class_idの最大値+1に更新しないといけない。
念のため手動でinsertしたテーブルの他のシーケンス値とオートインクリメントの値を確認し、合わせておく。