TL; DR : มีเหตุผลใดที่ผลิตภัณฑ์แบบง่าย ๆ ที่เชื่อมโยงกับผลิตภัณฑ์ที่สามารถกำหนดค่าได้ต้องอยู่ในชุดคุณลักษณะเดียวกันกับผลิตภัณฑ์ที่กำหนดค่าได้หรือไม่ ฉันหมายถึงมีเหตุผลทางเทคนิคหรือไม่? ฉันรู้เหตุผล "สามัญสำนึก" หากคุณขายคู่ของรองเท้าแล้วทุกรุ่นขึ้นอยู่กับสีและขนาดจะต้องมีรองเท้ายัง
รุ่นยาว : ฉันมีหน้าที่ "รวม" ผลิตภัณฑ์ที่กำหนดค่าได้บางอย่าง ฉันหมายถึงตั้งแต่ 2 ขึ้นไปที่จะทำแค่อันเดียว ฉันไม่ต้องการทำด้วยตนเองเนื่องจากจำนวนผลิตภัณฑ์และฉันไม่ต้องการทำ$product->load(..)->set...()->save()
เนื่องจากใช้เวลาในการรันสคริปต์ ดังนั้นฉันจึงลัดวงจรกระบวนการเพราะฉันแน่ใจว่าไม่มีผลิตภัณฑ์ที่เรียบง่ายซ้อนทับกัน มีการผสมผสานขนาดและสีที่เป็นเอกลักษณ์ ฉันทำอย่างนี้:
Mage::getResourceSingleton('catalog/product_type_configurable')
->saveProducts($mainConfigrableProduct, $simpleProductIds);
โดยที่$simpleProductIds
เป็นอาร์เรย์ของรหัสผลิตภัณฑ์แบบง่าย ๆ ทั้งหมดที่เกี่ยวข้องกับผลิตภัณฑ์ที่กำหนดค่าได้ซึ่งจำเป็นต้องรวม
สิ่งนี้ทำงานได้อย่างสมบูรณ์แบบสำหรับผลิตภัณฑ์ส่วนใหญ่ แต่มีบางอย่างที่มีปัญหา
ถ้าฉันเรียกว่า
$productIds = $product->getTypeInstance()->getUsedProductIds()
ฉันจะได้รับรหัสผลิตภัณฑ์ที่เรียบง่าย แต่ในแบ็กเอนด์มีเพียงไม่กี่คนเท่านั้นที่ปรากฏ หลังจากขุดไปสักพักฉันก็พบว่ามีเพียงสิ่งเดียวที่ถูกแสดงคือตัวที่มีคุณสมบัติเหมือนกันกับผลิตภัณฑ์ที่กำหนดค่าได้ ชุดคุณลักษณะอื่น ๆ นั้นคล้ายคลึงกับชุดแรกเพียงความแตกต่างเล็กน้อย แต่มีชุดคุณลักษณะที่กำหนดค่าได้ (ขนาดและสี)
และตอนนี้สิ่งที่แปลก ในส่วนหน้าฉันคาดว่าจะเห็นผลิตภัณฑ์ทั้งหมด ($ productIds ในรหัสด้านบน) หรือเฉพาะผลิตภัณฑ์ในชุดคุณลักษณะเดียวกัน มีบางอย่างระหว่าง
- รหัสผลิตภัณฑ์ที่เกี่ยวข้อง 20 รหัส - 5 ขนาด 4 สี
- 10 ผลิตภัณฑ์ที่เกี่ยวข้องในแบ็กเอนด์ - 5 ขนาด, 2 สี - อีก 2 สี (10 ผลิตภัณฑ์) อยู่ในชุดคุณลักษณะที่แตกต่างกัน
- ชุดค่าผสม 15 ส่วนในส่วนหน้า - 5 ขนาด 3 สี (???)
ฉันสามารถแก้ไขปัญหาได้ด้วยการเปลี่ยนชุดคุณลักษณะสำหรับผลิตภัณฑ์ที่ไม่ปรากฏ แต่ฉันก็ยังงงงวย
หมายเหตุ : อย่าลองทำที่บ้าน หรือคุณสามารถทดลองใช้ที่บ้าน แต่ไม่สามารถใช้งานได้บนเซิร์ฟเวอร์ที่ใช้งานจริง