こんばんは、Webプログラマの篠田です。
PCの排熱が凶器になる季節になりました。
オフィスで使っているPCには既に、PCの冷却用空冷ファンを取り付けて快適に過ごしています。
EC-CUBEでサイトを運営されている方も多いと思います。
EC-CUBEの運用の中で出てくる困った問題が「受注商品のCSVダウンロード」です。
この問題に対して、対処方法をご紹介します。
問題点
EC−CUBEでは、受注管理機能としてCSVダウンロードができます。
しかし、その中に「商品名」という項目は存在しないのです。
つまり、商品名付きの受注データをEC-CUBE管理画面からは、ダウンロードができません。
模範解答
この問題に対しての模範解答は下記のとおりです。
「EC-CUBEの商品名を含む受注データのCSVダウンロード機能を実装する!」
「高度な設定でSQLを使いCSVダウンロードする」
このあたりが、Google先生に質問をして、解答として教えてもらえる内容かとおもいます。
プラグインを作る、または魔改造する
多くのWebプログラマが、持てるスキルとGoogle先生の助言をフルに使って、戦いを挑むベターな方法です。
ただし、この手法は「資金」と「時間」があることが前提になります。
「今日中にデータがほし良いんだよ。それも今回だけ。」
このような案件で、チャレンジすると目的を達成することはできません。
EC−CUBEでSQLを使う
これは、Webプログラマであれば、比較的手軽な方法です。
ただし、この方法にも罠があります。
一部のEC-CUBEでは、「高度な設定」を利用してSQLを実行すると、画面が真っ白になるという現象に遭遇します。
正直、お急ぎのときに不具合の原因を解決するというのは、ベストな方法ではありません。
低コストで解決する方法
いくつかの条件が必要となります。
1.1商品1受注データの形式で出力しても良い。
  → 1受注で複数商品を出力してほしいと言われるとダメです。
2.SQLは理解できる。
3.EC-CUBEの「高度な設定」でSQLが動かなかった。
この条件を満たしている場合に限りますので、予めご了承ください。
何をするかというと下記のSQL文を「phpMyAdmin」で実行します。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | SELECT     dtb_order.order_id,     dtb_order.customer_id,     dtb_order.message,     dtb_order.order_name01,     dtb_order.order_name02,     dtb_order.order_kana01,     dtb_order.order_kana02,     dtb_order.order_email,     dtb_order.order_tel01,     dtb_order.order_tel02,     dtb_order.order_tel03,     dtb_order.order_fax01,     dtb_order.order_fax02,     dtb_order.order_fax03,     dtb_order.order_zip01,     dtb_order.order_zip02,     (SELECT mtb_pref.name FROM mtb_pref WHERE mtb_pref.id = dtb_order.order_pref),     dtb_order.order_addr01,     dtb_order.order_addr02,     dtb_order.order_sex,     dtb_order.order_birth,     dtb_order.order_job,     dtb_order_detail.product_name,     dtb_order_detail.product_code,     dtb_order_detail.classcategory_name1,     dtb_order_detail.classcategory_name2,     dtb_order_detail.price,     dtb_order_detail.quantity,     dtb_order.subtotal,     dtb_order.discount,     dtb_order.deliv_fee,     dtb_order.charge,     dtb_order.use_point,     dtb_order.add_point,     dtb_order.tax,     dtb_order.total,     dtb_order.payment_total,     dtb_order.deliv_id,     dtb_order.payment_method,     dtb_order.note,     dtb_order.status,     dtb_order.create_date,     dtb_order.update_date,     dtb_order.commit_date,     dtb_order.device_type_id,     (SELECT count(*) FROM dtb_shipping WHERE dtb_shipping.order_id = dtb_order.order_id) FROM     dtb_order INNER JOIN     dtb_order_detail ON     dtb_order.order_id = dtb_order_detail.order_id WHERE     del_flg = 0 | 
この結果を、phpMyAdminの機能である「エクスポート」してください。
エクスポートをするときの設定は下記のとおりです。
1.「エクスポートの方法」:簡易
2.「フォーマット」:CSV
3.「エンコーディングへの変換」:なし
あとは、このCSVを必要に応じて加工するだけです。
Mac環境で調整される場合は「MacでダウンロードしたUTF-8のCSVデータを、文字化けせずにMac版Microsoft Excelで開ける方法」をご参照ください。
まとめ
長期的な運用を考えると、プラグインや魔改造をするのが一番良いと考えています。
ただ、一過性のものであるのであれば、SQLやphpMyAdminを使って、お手軽にデータを集める方が効率が良いかと思いますので、1つの方法としてお役に立てれば、幸いです。
PR
ALAKIでは、絶賛Webプログラマを募集中です!
素敵なリクルートサイトもオープンしましたので、興味のある方は是非、サイトをチェックしてみてくださいね。



 
																								 
																								 
																								






 
																								 
																								 
																								 
																								 
																								