next-engine用のCSV書き出しプログラム(EC-CUBE2.11) その3
ここまできたら、あとは簡単。
next-engineの設定で
「基本情報」→「店舗設定」
のところで、店舗を楽天の店舗として登録。
ホントはらくてんじゃないけど…。
受注ファイルのアップロード設定を「新楽天市場標準パターン」にしておけば、べつにその必要はないのかなぁ…?
まあ、いいや。
とりあえず、複数配送の受注データは取り込めるようになったので。
今回データを作っていて思ったのが、EC-CUBEのDBは商品毎に注文者、配送先の情報に紐付けしたデータの持ちかたをしていないってこと。
最初は、DBから必要なデータを抜き出してくりゃ楽勝…とか思っていたんだけど、単体配送の場合と複数配送の場合でもデータの持ち方が違うし、どうやってもCSVデータが作れなかった。
結局、どんなに「CSV出力設定」でSQLをカスタマイズしても、目的のデータが得られないということが判明。
やるなら、自分でDBをカスタマイズして登録しておく必要がある。
今回、必要なデータがどこにあるかわかったので、データをちゃんと保存しておくようにDBのカスタマイズを行います。
けど、今回はこれにて。
とりあえずの応急処置だけど、next-engineの開発元の人が見てたら、参考にして早いとこEC-CUBE2.11対応BatchFileを作ってくださいな。
散々待って、届いたBatchがあれじゃぁねぇ…。
需要があれば、完全版Batchを作りますが。
なんだかんだで、2日もかかってしまった。
まぁ、授業をやりながらなので時間がないからしょうがないか…。
追記。
「/data/class/helper/SC_Helper_mail.php」の「sfSendOrderMail」には
って項目があるので、この辺りを追っていけば、楽にデータ作れるのかもね。
next-engineの設定で
「基本情報」→「店舗設定」
のところで、店舗を楽天の店舗として登録。
ホントはらくてんじゃないけど…。
受注ファイルのアップロード設定を「新楽天市場標準パターン」にしておけば、べつにその必要はないのかなぁ…?
まあ、いいや。
とりあえず、複数配送の受注データは取り込めるようになったので。
今回データを作っていて思ったのが、EC-CUBEのDBは商品毎に注文者、配送先の情報に紐付けしたデータの持ちかたをしていないってこと。
最初は、DBから必要なデータを抜き出してくりゃ楽勝…とか思っていたんだけど、単体配送の場合と複数配送の場合でもデータの持ち方が違うし、どうやってもCSVデータが作れなかった。
結局、どんなに「CSV出力設定」でSQLをカスタマイズしても、目的のデータが得られないということが判明。
やるなら、自分でDBをカスタマイズして登録しておく必要がある。
今回、必要なデータがどこにあるかわかったので、データをちゃんと保存しておくようにDBのカスタマイズを行います。
けど、今回はこれにて。
とりあえずの応急処置だけど、next-engineの開発元の人が見てたら、参考にして早いとこEC-CUBE2.11対応BatchFileを作ってくださいな。
散々待って、届いたBatchがあれじゃぁねぇ…。
需要があれば、完全版Batchを作りますが。
なんだかんだで、2日もかかってしまった。
まぁ、授業をやりながらなので時間がないからしょうがないか…。
追記。
「/data/class/helper/SC_Helper_mail.php」の「sfSendOrderMail」には
$where = "order_id = ?";
$arrRet = $objQuery->select("*", "dtb_order", $where, array($order_id));
$arrOrder = $arrRet[0];
$objQuery->setOrder('order_detail_id');
$arrTplVar->arrOrderDetail = $objQuery->select("*", "dtb_order_detail", $where, array($order_id));
$objProduct = new SC_Product_Ex();
$objQuery->setOrder('shipping_id');
$arrRet = $objQuery->select("*", "dtb_shipping", "order_id = ?", array($order_id));
foreach (array_keys($arrRet) as $key) {
$objQuery->setOrder('shipping_id');
$arrItems = $objQuery->select("*", "dtb_shipment_item", "order_id = ? AND shipping_id = ?",
array($order_id, $arrRet[$key]['shipping_id']));
foreach ($arrItems as $itemKey => $arrDetail) {
foreach ($arrDetail as $detailKey => $detailVal) {
$arrRet[$key]['shipment_item'][$arrDetail['product_class_id']][$detailKey] = $detailVal;
}
$arrRet[$key]['shipment_item'][$arrDetail['product_class_id']]['productsClass'] =& $objProduct->getDetailAndProductsClass($arrDetail['product_class_id']);
}
}
って項目があるので、この辺りを追っていけば、楽にデータ作れるのかもね。