バージョン選択

フォーラム

メニュー

オンライン状況

60 人のユーザが現在オンラインです。 (45 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 60
もっと...

サイト内検索

機能要望 > 管理機能 > 商品登録CSVで規格の有る商品を登録する

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2013/3/13 22:55
対応状況: −−−
商品登録CSVで規格の有る商品を登録する
EC-CUBEバージョン 2.12.3
PHPバージョン PHP 5.4.10
DBバージョン PostgreSQL 9.1.4
==========================

規格のある商品を新規登録する時、「商品登録CSV」で出来ないかと思われている方がいるといます。
一部を修正(下記参照)することで、私の環境では、新規、更新とも問題なく登録が出来ているのですが、多くの方に検証して頂けたらと思い手順を記載します。
時間のとれる方、試して頂き、レスを頂けたらと思います。

下記は、EC-CUBEを新規インストールした状態での説明になります。


1、dtb_csvの下記を変更
>>no=3
parent_classcategory_id → classcategory_id1
親規格分類ID → 規格分類ID1
>>no=4
classcategory_id → classcategory_id2
規格分類ID → 規格分類ID2


2、data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php の lfCheckErrorDetail() {...} に下記を追加する。
===▼追加===
       // 規格分類ID1の存在チェック
        if (!$this->lfIsDbRecordMulti('dtb_classcategory', 'classcategory_id', 'classcategory_id1', $item, ',')) {
            $arrErr['classcategory_id1'] = '※ 指定の規格分類ID1は、登録されていません。';
        }   
        // 規格分類ID2の存在チェック
        if (!$this->lfIsDbRecordMulti('dtb_classcategory', 'classcategory_id', 'classcategory_id2', $item, ',')) {
            $arrErr['classcategory_id2'] = '※ 指定の規格分類ID2は、登録されていません。';
        }   
        // 商品ID、規格分類ID1、規格分類ID2の組合せチェック
        if ($item['product_class_id'] == '') {
            if ($this->objDb->sfIsRecord('dtb_products_class', 'product_id, classcategory_id1, classcategory_id2'
                    , array($item['product_id'], $item['classcategory_id1'], $item['classcategory_id2']))
            ) { 
                $arrErr['classcategory_id'] = '※ 指定の商品ID、規格分類ID1、規格分類ID2の組合せは既に登録されています。';
            }   
        } 
===▲追加===



3、管理画面で規格分類IDが確認できるように、data/Smarty/templates/admin/products/classcategory.tpl を変更
<!--{* 規格名 *}--><!--{$arrClassCat[cnt].name|h}-->
   ↓
<!--{* 規格分類ID *}--><!--{$arrClassCat[cnt].classcategory_id|h}-->: <!--{* 規格名 *}--><!--{$arrClassCat[cnt].name|h}-->


4、テーブルを空にする
DELETE FROM dtb_category_count;
DELETE FROM dtb_category_total_count;
DELETE FROM dtb_product_categories;
DELETE FROM dtb_product_status;
DELETE FROM dtb_products;
DELETE FROM dtb_products_class;
DELETE FROM dtb_recommend_products;
SELECT SETVAL ('dtb_products_class_product_class_id_seq', '1', false);
SELECT SETVAL ('dtb_products_product_id_seq', '1', false);


5、商品管理>カテゴリ登録でカテゴリを登録
テストはデフォルトのまま実施


6、商品管理>規格管理で規格を登録
テストはデフォルトのまま実施
注)dtb_classcategory の classcategory_id =0 は削除しない。


7、商品管理>商品マスターのCSVダウンロードを実施
データが空のファイルが作成される。


8、ダウンロードしたファイルに商品データを登録
※下記必須。
商品ID: 規格違いの商品は同じにする。
商品規格ID: 新規登録(空)、更新時は必須
規格分類ID1: 規格無の時は「0」
規格分類ID2: 規格無の時は「0」
商品名: 規格違いの商品は同じにする。
表示ステータス(公開・非公開): 規格違いの商品は同じにする。(1 or 2)
一覧-メインコメント: 規格違いの商品は同じにする。
詳細-メインコメント: 規格違いの商品は同じにする。
削除フラグ: 規格毎に指定。(0 or 1)
販売価格: 規格毎に指定。
カテゴリID: 規格違いの商品は同じにする。

【規格無しの場合】
規格分類ID1: 0
規格分類ID2: 0
削除フラグ: 0

【規格有りの場合】
規格分類ID1: 0
規格分類ID2: 0
削除フラグ: 1
と、規格の組み合せ。(無い組み合せは登録しなくてもいいが、商品管理>商品登録(商品規格)で更新すると登録されます。)
(組み合せ1)バニラ × S
規格分類ID1: 1
規格分類ID2: 6
削除フラグ: 0
(組み合せ2)バニラ × M
規格分類ID1: 1
規格分類ID2: 5
削除フラグ: 0
(組み合せ3)バニラ × L
規格分類ID1: 1
規格分類ID2: 4
削除フラグ: 0
...
SugarRush
投稿日時: 2013/3/21 22:21
対応状況: −−−
新米
登録日: 2013/3/21
居住地:
投稿: 2
Re: 商品登録CSVで規格の有る商品を登録する
はじめまして。eccubeを去年の10月から始めた新米です。

バリエーションのCSV登録は、まさに探していた機能でした。

ちゃんと動きましたよ。

SELECT SETVAL ('dtb_products_class_product_class_id_seq', '1', false)
SELECT SETVAL ('dtb_products_product_id_seq', '1', false)

はphpMyAdmin上では動きませんでしたので、とりあえずそれぞれのテーブル項目に1をセットしました。

作成したデータは、規格1が「サイズ」で5種類、規格2が「色」で6種類、全部で30レコードです。

CSV登録を実行すると、
データベースには
dtb_produts に1レコード
dtb_produts_class に30レコード

作成されていました。

ただ、画像は html/upload/save_image にあるにもかかわらず画像が存在しないという内容のエラーメッセージが出て登録できませんでしたので、CSVの画像部分を削除してあとから登録しました。

規格登録をすると規格IDが表示されるところが素晴らしいです。
良い情報をありがとうございました。
ーーーーーーーーーーーーーーーーー
EC-CUBE 2.12.3
DBサーバー MySQL 5.5.28
WEBサーバー Apache/2.2.23
PHP     5.3.21
ーーーーーーーーーーーーーーーーー
ゲスト
投稿日時: 2013/3/25 1:31
対応状況: −−−
Re: 商品登録CSVで規格の有る商品を登録する
SugarRushさん、試して頂きありがとうございます。

返信で気になった箇所があるので補足しておきます。

引用:
作成したデータは、規格1が「サイズ」で5種類、規格2が「色」で6種類、全部で30レコードです。 CSV登録を実行すると、 データベースには dtb_produts に1レコード dtb_produts_class に30レコード

とありますが、SugarRushさんの場合だと、
dtb_produts に1レコード
dtb_produts_class に31レコード
にならないといけないと思います。

【規格有りの場合】
規格分類ID1: 0
規格分類ID2: 0
削除フラグ: 1
この組み合せを入れていないのではないでしょうか?
規格更新時に、この組み合せが検索されているので、無いとシステムエラーになると思います。


引用:
ただ、画像は html/upload/save_image にあるにもかかわらず画像が存在しないという内容のエラーメッセージが出て登録できませんでしたので、CSVの画像部分を削除してあとから登録しました。

一覧-メイン画像
詳細-メイン画像
詳細-メイン拡大画像
で試しましたが問題なく登録できました。
その他の画像を登録した場合でしょうか?


SugarRush
投稿日時: 2013/3/27 12:36
対応状況: −−−
新米
登録日: 2013/3/21
居住地:
投稿: 2
Re: 商品登録CSVで規格の有る商品を登録する
jazz4noさん

ご返信ありがとうございます。

質問なのですが、

---------------------
【規格有りの場合】
規格分類ID1: 0
規格分類ID2: 0
削除フラグ: 1
---------------------

これはCSVの先頭に設定するのですか?

確かにこの設定はしていないです。意味がわからなくて飛ばしました。スミマセン<(_ _;)>
これを入れていないので30レコードなのだと思います。

が、新着からのフロント表示も問題なく、注文してみると管理画面での受注管理の検索結果や商品管理の商品マスターの検索結果までとくにエラーは起きていません。

あと、画像ですが、メイン画像のみです。
上記の設定をしていないために読み込めないのか、置き場所が違うのかもしれません。またトライしてみますね。
ゲスト
投稿日時: 2013/3/27 13:44
対応状況: −−−
Re: 商品登録CSVで規格の有る商品を登録する
SugarRushさん


引用:
---------------------
【規格有りの場合】
規格分類ID1: 0
規格分類ID2: 0
削除フラグ: 1
---------------------

これはCSVの先頭に設定するのですか?


順番は関係ありません。

後、エラーについてですが、商品管理>商品登録(商品規格)から規格のある商品を更新されたら分かると思います。

yuuuu
投稿日時: 2013/5/19 14:38
対応状況: −−−
新米
登録日: 2013/4/18
居住地:
投稿: 9
Re: 商品登録CSVで規格の有る商品を登録する
jazz4noさんに質問です。


DBバージョンがMySQLなのですが、上記の事が、可能なのでしょうか?

初歩的な事で申し訳ございません。
namahage
投稿日時: 2013/5/21 11:59
対応状況: −−−
長老
登録日: 2013/2/28
居住地: 大阪
投稿: 198
Re: 商品登録CSVで規格の有る商品を登録する
yuuuuさま
上でSugarRushさまができたと言っている環境がMYSQLですよ〜!
yuuuu
投稿日時: 2013/5/21 16:34
対応状況: −−−
新米
登録日: 2013/4/18
居住地:
投稿: 9
Re: 商品登録CSVで規格の有る商品を登録する
そうですよね。なかなかうまい事いきません、、、(・_・、)諦めずやってみます!
digipoke
投稿日時: 2014/1/16 13:04
対応状況: −−−
常連
登録日: 2012/1/17
居住地: 兵庫県西宮市
投稿: 36
Re: 商品登録CSVで規格の有る商品を登録する
私も、まさに探していたカスタマイズでした。
お陰様で上手くいきました。ありがとうございます。

ただ一つ分らない事があるのですが、

【規格有りの場合】
規格分類ID1: 0
規格分類ID2: 0
削除フラグ: 1

の組み合わせですが、

これは、商品登録CSVで更新の際に、規格のある商品を削除する場合に、削除フラグを「1」にしますが、その場合に、規格分類ID1と規格分類ID2を「0」にしないと、エラーになるという事でしょうか?

よろしくお願いいたします。


tsuji
投稿日時: 2014/1/16 13:34
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 商品登録CSVで規格の有る商品を登録する
>これは、商品登録CSVで更新の際に、規格のある商品を削除する場合に、削除フラグを「1」にしますが、その場合に、規格分類ID1と規格分類ID2を「0」にしないと、エラーになるという事でしょうか?

エラーになりませんが、仕様上必要なので作成されているのだと思います。
以下、わかりにくいかもしれませんが説明です。


基本的に規格のある商品は、規格がない商品(規格分類ID1,ID2が0)を作成してから、規格を作成します。

その際、規格のない商品をデータ上論理削除した形にして規格を作成します。
(ここで、商品が更新されて規格分類ID1,ID2が0、削除フラグが1のデータができます。)

そして、規格のある商品から規格なしの商品にする場合、規格のある商品を論理削除し、規格なしの商品を復活させます。
(規格分類ID1,ID2が0の商品の削除フラグを0にし、規格分類ID1,ID2が0以外の商品の削除フラグを1にするという操作が行われます。)

そのため、規格分類ID1,ID2が0、削除フラグが1のデータがないと、規格をなくした途端に商品自体がなくなるということになります。

なので、規格のある商品を作る場合は、規格分類ID1,ID2が0、削除フラグが1の商品を作っておく必要があります。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,971名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.