質問 > 管理機能 > 商品登録CSVの項目指定で一括更新について |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
KAZ0311 |
投稿日時: 2009/10/19 17:36
対応状況: −−−
|
新米 登録日: 2009/10/19 居住地: 投稿: 1 |
商品登録CSVの項目指定で一括更新について 初めてEC CUBEで開発を行った初心者です。
[EC-CUBEバージョン]:2.4.1 [PHPバージョン]:PHP 5.2.11 [DBバージョン]:MySQL 4.1.22 既に開発は完了したのですが、顧客から商品情報をダウンロードし、EXCELで価格を修正して一括更新を行いたいとの要望がありました。 管理機能のCSV出力でデータをダウンロードして修正し、商品登録CSV機能にて行えると伝えたところ、EXCELで表示すると項目がずれているとのこと。 確認してみると、詳細コメントに改行や、ダブルクォーテーション「"」(ダウンロードデータでは「\"」)が含まれているため、EXCELでは正常に表示できませんでした。 いくつかのCSVエディタを試したのですが、正常に表示してくれるものが見つかりませんでした。 そこで、必要な項目のみをEC CUBEの商品登録CSV機能で一括修正できないかと思い質問しました。 そのような事はできるのでしょうか? やはりカスタマイズが必要なのでしょうか? 以上、宜しくお願いします。 |
seasoft |
投稿日時: 2009/10/19 20:06
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 商品登録CSVの項目指定で一括更新について 正式版をご利用でしたら、基本的にはカスタマイズの領域になると思います。
EC-CUBEコミュニティ(eccube-comu) でしたら、標準実装のままで動作するはずです。・・・というか、動作するように組んだつもりです^^; 個人的にはあまり使っていない機能なので、検証が甘い部分はあるかもしれませんが。
|
homan |
投稿日時: 2009/10/19 20:14
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: 商品登録CSVの項目指定で一括更新について フリーのCSVエディタならば、Cassavaというものを使ったことがあります。これは結構融通の利いたCSVエディタだと思います。
取り急ぎ、ダブルクォーテーション(\付き)をシングルクォーテーションに置き換えれば大丈夫かもしれません。 /data/class/helper/SC_Helper_CSV_Ex.phpで lfMakeProductsCSV関数の中にある $tmp = str_replace("\"", "\\\"", $tmp); を $tmp = str_replace("\"", "'", $tmp); にすると、とりあえずシングルクォーテーションだけになります。 (今回は便宜上classのファイルをいじりましたが、本当はclass_extendsにlfMakeProductsCSVをコピーして調整する方が良いと思います。) また、”エクセル専用CSV”ということである程度仕様を固めてしまうならば、=(イコール)を使う方法もあります。。 手前味噌ですが、ご参考までに http://www.eccube-school.jp/products/detail54.html
|
seasoft |
投稿日時: 2009/10/19 20:24
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 商品登録CSVの項目指定で一括更新について > フリーのCSVエディタならば、Cassavaというものを使ったことがあります。これは結構融通の利いたCSVエディタだと思います。
私も、CSV 専用のエディタを使うのは賛成ですね。 Excel だと、本件の問題を解決したところで、「商品ステータス」が崩されるという、比較的回避が面倒な不具合に何れ遭遇すると思いますので。 Cassava 良いですよね。他には「CS Editor」というのもナカナカ良かった記憶が。あと、このフォーラムでは openoffice.org を使っているという方からの報告も上がっていましたね。
|
AMUAMU |
投稿日時: 2009/10/20 1:50
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 商品登録CSVの項目指定で一括更新について CSVエディタに関しては皆さんがコメントしていますので、後半の部分について
>そこで、必要な項目のみをEC CUBEの商品登録CSV機能で一括修正できないかと思い質問しました。 必要な項目のみをCSVダウンロードするのは、管理画面の「コンテンツ管理>CSV出力項目設定>高度な設定」あたりで出来ます。 必要項目のみでのアップロードしての修正はカスタマイズが必要かと思います。 ですがCSVデータをデータベースに対して単にupdateする程度はネット上にも単体PHPでの例文が多数ありますので、比較的カスタマイズの敷居は低いと思います。
|
homan |
投稿日時: 2009/10/20 9:32
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: 商品登録CSVの項目指定で一括更新について 引用:
具体的には /data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php ですね。(できればclass_extendsの方をいじってください) lfInitParam関数のところで、 必要のない項目はコメントアウトすればとりあえずOKです。 必須にしたい項目は"EXIST_CHECK"を入れるだけで、 必須項目扱い(※印出現)になります。 また、これだけでは不十分な場合があります。 例えば「price01(通常価格)は今回は必要ないから省こう」ということになって上記のlfInitParam関数でコメントアウトしたとします。 しかし、lfRegistProductClass関数のところで(418行辺り:2.2系の時のソースで確認) $sqlval['price01'] = $arrList['price01']; という行があるのですが、price01はCSVで挿入していない項目なので空になります。 同じく、商品コードや在庫数も $sqlval['product_code'] = $arrList["product_code"]; $sqlval['stock'] = $arrList["stock"]; とあるので、注意が必要です(空っぽになってしまいます) 軽く追いかけただけなので、もしかすると他にもあるかもしれません。 ただ、その辺だけ気をつければ、CSVデータさえしっかりしたデータならAMUAMUさんがおっしゃるように比較的容易なカスタマイズだと思います。 とはいえ、このCSVアップロード周りは上記のようなことをしなくても大丈夫なように、もう少し強化したいところですね。 (コミュニティ版で解決されているようなら、公式コミットされたら便利ですね^^)
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |