Ticket #1570 (closed バグ指摘: 修正済)
【商品登録CSV】CSVの形式によって、既存商品の更新時に商品規格が複数登録されてしまう
Reported by: | ume | Owned by: | undertree |
---|---|---|---|
Priority: | 低 | Milestone: | EC-CUBE2.13.0 |
Component: | フロント | Version: | 2.11.4 |
Keywords: | Cc: | ||
修正済み: | yes |
Description
■再現方法
1)コンテンツ管理>CSV出力設定>商品管理にて"商品規格ID"の項目を、使用しない項目に設定する。
2)既存の商品をCSVダウンロードし、そのCSVを再度アップロードする。
3)正常には登録されるが、該当商品をCSVダウンロードすると、同じ商品の行が2つ出力される。 ※ アップロードすればするほど増える。
■原因
dtb_products_classの新規登録・更新の判定をするキーが商品規格IDとなっているため、CSVで使用しない項目としていると必ず新規登録となり、規格だけ増え続ける。
Change History
comment:2 Changed 11 years ago by h_yoshimoto
- Milestone changed from EC-CUBE2.12.2 to EC-CUBE 2.12.3
comment:3 Changed 10 years ago by kim
- Priority changed from 中 to 低
- Milestone changed from EC-CUBE2.12.3 to EC-CUBE2.12.4
2.12.0の開発時に、dtb_product_classの構造が見直されたため、修正済みの可能性があります。
comment:4 Changed 10 years ago by undertree
- Owner changed from somebody to undertree
- 修正済み set
- Status changed from new to assigned
#2027 / r22301 において、修正されたものと思われます。
product_idが設定され、かつproduct_class_idが未記入のCSVファイルを読み込ませた場合、1度目は商品/商品規格のレコードが新規作成されます。(正しい処理)
ところが、同じCSVファイルを2度目以降に読み込ませた場合...
product_idに対するdtb_productsの更新処理が行われますが、<br> product_class_idが未記入であるため、dtb_product_classの"新規作成処理"が行われていました。
dtb_product_classテーブル内のproduct_idレコード重複によって #2027 が、<br> 重複した新規作成処理によって #1570 #1665 が発生していたものと思われます。
r22301 では、product_id, classcategory_id1, classcategory_id2から既存のproduct_class_idを検索することで、この問題を解消しています。