TL; ДР : Чи є якась причина, чому прості продукти, пов’язані з продуктом, що може настроюватися, повинні містити той самий набір атрибутів, що і сам продукт, що може настроюватися? Я маю на увазі, чи є якась технічна причина? Я знаю причину "здорового глузду". Якщо ви продаєте пару взуття, то всі версії залежно від кольору та розміру повинні бути взуттям .
Довга версія : У мене було завдання "злити" деякі настроювані продукти. Я маю на увазі від 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 кольори (???)
Мені вдалося вирішити проблему, змінивши набір атрибутів для продуктів, які не з’явились, але я все одно спантеличений.
Примітка . Не намагайтеся цього вдома. Або ви можете спробувати його вдома, але не на живому сервері.