2015年10月アーカイブ

商品在庫が少なくなったらメールでお知らせする機能を
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したテーブルの他のシーケンス値とオートインクリメントの値を確認し、合わせておく。

ウェブページ

Powered by Movable Type 4.13

このアーカイブについて

このページには、2015年10月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2015年9月です。

次のアーカイブは2015年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。