Ticket #1570 (closed バグ指摘: 修正済)

Opened 9 years ago

Last modified 7 years ago

【商品登録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:1 Changed 9 years ago by kotani

  • Milestone changed from EC-CUBE2.11.5 to EC-CUBE2.12.0alpha

comment:2 Changed 8 years ago by h_yoshimoto

  • Milestone changed from EC-CUBE2.12.2 to EC-CUBE 2.12.3

comment:3 Changed 8 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 8 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を検索することで、この問題を解消しています。

comment:5 Changed 7 years ago by h_yoshimoto

  • Status changed from assigned to closed
  • Resolution set to 修正済

詳細な調査ありがとうございます。

クローズさせて頂きます。

Note: See TracTickets for help on using tickets.