質問 > 管理機能 > 規格のある商品データの上書きができません:2行目:※ 指定の商品ID/規格分類と、商品規格IDの組合せは正しくありません。 |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
l58 |
投稿日時: 2017/8/26 0:14
対応状況: −−−
|
常連 登録日: 2015/2/15 居住地: 投稿: 36 |
規格のある商品データの上書きができません:2行目:※ 指定の商品ID/規格分類と、商品規格IDの組合せは正しくありません。 [EC-CUBE] 2.13.5
[レンタルサーバ] WADAX [OS] win7 [PHP] 5.3.3 [データベース] MySQL 5.1.73 [WEBサーバ] Apache いつもお世話になっております。 CSVで商品情報を更新したいのですが、 2行目:※ 指定の商品ID/規格分類と、商品規格IDの組合せは正しくありません。 と出て登録できません。 既にある商品なので、商品ID、商品規格IDの組み合わせも間違っていません。 色々調べて試してみましたが、規格のある商品は上記のエラーがでます。 規格のある商品をCSVでダウンロードして、そのままアップロードしても同じエラーが出て上書きできません。 【参考】 http://labe.jp/blog/webcreation/eccube/kikaku-csv-upload/ https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&order=DESC&topic_id=12337&forum=7 上記を参考に削除フラグを1にしてアップロードしたら商品が削除されてしまいました(データベース内には残っていました)。 規格のある商品のデータをCSVで上書きするにはどうしたらよいのでしょうか。 ご教授頂ければ幸いです。 宜しくお願い致します。 |
468 |
投稿日時: 2017/8/29 12:45
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格のある商品データの上書きができません:2行目:※ 指定の商品ID/規格分類と、商品規格IDの組合せは正しくありません。 ※ 指定の商品ID/規格分類と、商品規格IDの組合せは正しくありません。
のメッセージですが、 商品規格IDに対して、商品ID(product_id), 親規格分類ID(classcategory_id1), 規格分類ID(classcategory_id2)の組み合わせが異なっている時に表示されるメッセージのようです。 CSV上で規格商品の親規格分類ID, 規格分類IDを変更されていませんか? 多分、ここの値を変更すると、このメッセージが表示されるのではないかと思います。
|
l58 |
投稿日時: 2017/8/29 14:22
対応状況: −−−
|
常連 登録日: 2015/2/15 居住地: 投稿: 36 |
Re: 規格のある商品データの上書きができません:2行目:※ 指定の商品ID/規格分類と、商品規格IDの組合せは正しくありません。 ご回答ありがとうございます。
>CSV上で規格商品の親規格分類ID, 規格分類IDを変更されていませんか? dtb_csvの下記を変更しました。 >>no=3 parent_classcategory_id → classcategory_id1 親規格分類ID → 規格分類ID1 >>no=4 classcategory_id → classcategory_id2 規格分類ID → 規格分類ID2 data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php の lfCheckErrorDetail()内ですが、 public function lfCheckErrorDetail($item, $arrErr) { // 規格分類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の組合せは既に登録されています。'; } } // 規格IDの存在チェック // FIXME 規格分類ID自体のが有効かを主眼においたチェックをすべきと感じる。 if (!$this->lfIsDbRecord('dtb_products_class', 'product_class_id', $item)) { $arrErr['product_class_id'] = '※ 指定の商品規格IDは、登録されていません。'; } // 商品ID、規格IDの組合せチェック if (array_search('product_class_id', $this->arrFormKeyList) !== FALSE && $item['product_class_id'] != '' ) { if ($item['product_id'] == '') { $arrErr['product_class_id'] = '※ 商品規格ID指定時には商品IDの指定が必須です。'; } else { if (!$this->objDb->sfIsRecord('dtb_products_class', 'product_id, product_class_id', array($item['product_id'], $item['product_class_id'])) ) { $arrErr['product_class_id'] = '※ 指定の商品IDと商品規格IDの組合せは正しくありません。'; } // product_class_idは(product_id, classcategory_id1, classcategory_id2)に対して一意。既に異なるproduct_class_idが存在した場合はエラー $classcategory_id1 = $item['classcategory_id'] ? $item['classcategory_id'] : 0; $classcategory_id2 = $item['classcategory_id'] ? $item['classcategory_id'] : 0; $product_class_id = SC_Utils_Ex::sfGetProductClassId($item['product_id'], $classcategory_id1, $classcategory_id2); if ($product_class_id && $product_class_id != $item['product_class_id']) { $arrErr['product_class_id'] = '※ 指定の商品ID/規格分類と、商品規格IDの組合せは正しくありません。'; } } } となっています。 このあたりで間違えがあるのでしょうか。 因みに、規格のある商品をCSVでダウンロードして、規格のついた行(規格分類ID1、規格分類ID2の値が0以外の行)を削除し、規格分類ID1、規格分類ID2の値が0の1行だけを再度アップロードすると正常に更新されます。 規格も残ったままです。 何かお分かりになりますでしょうか。 宜しくお願い致します。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |