TL; DR : Y a-t-il une raison pour laquelle les produits simples associés à un produit configurable doivent être dans le même ensemble d'attributs que le produit configurable lui-même? Je veux dire, y a-t-il une raison technique ? Je connais la raison du "bon sens". Si vous vendez une paire de chaussures, toutes les versions en fonction de la couleur et de la taille doivent également être des chaussures .
Version longue : j'ai eu la tâche de "fusionner" certains produits configurables. Je veux dire de 2 ou plus pour n'en faire qu'un. Je ne voulais pas les faire manuellement à cause de la quantité de produits et je ne voulais pas passer par$product->load(..)->set...()->save()
en raison du temps qu'il a fallu pour exécuter le script. J'ai donc court-circuité le processus car j'étais sûr qu'aucun des produits simples ne se chevauchait. Il y avait une combinaison unique de taille et de couleur. J'ai fait ça:
Mage::getResourceSingleton('catalog/product_type_configurable')
->saveProducts($mainConfigrableProduct, $simpleProductIds);
où $simpleProductIds
est un tableau de tous les identifiants de produit simples associés tous aux produits configurables qui doivent être fusionnés.
Cela fonctionnait parfaitement pour la plupart des produits, mais il y en avait quelques-uns qui avaient des problèmes.
Si j'ai appelé
$productIds = $product->getTypeInstance()->getUsedProductIds()
J'obtiendrais tous les identifiants de produit simples, mais dans le backend, seuls quelques-uns d'entre eux sont apparus. Après avoir creusé pendant un certain temps, j'ai découvert que les seuls qui étaient affichés étaient ceux du même ensemble d'attributs que le produit configurable. L'autre jeu d'attributs est très similaire au premier, juste quelques différences mineures mais il contient les attributs configurables (taille et couleur).
Et maintenant la chose étrange. Dans le frontend, je m'attendais à voir tous les produits ($ productIds dans le code ci-dessus) ou uniquement les produits du même ensemble d'attributs. Eh bien, il y avait quelque chose entre les deux.
- 20 identifiants de produits associés - 5 tailles, 4 couleurs
- 10 produits associés dans le backend - 5 tailles, 2 couleurs - les 2 autres couleurs (10 produits) étaient dans un ensemble d'attributs différent
- 15 combinaisons dans le frontend - 5 tailles 3 couleurs (???)
J'ai pu résoudre le problème en modifiant l'ensemble d'attributs pour les produits qui n'apparaissaient pas, mais je suis toujours perplexe.
Remarque : N'essayez pas cela à la maison. Ou vous pouvez l'essayer à la maison mais pas sur un serveur en direct.