Question

TL; DR : Y at-il des raisons pour lesquelles les produits simples associés à un produit configurable doivent être dans le même ensemble d'attributs que le produit lui-même configurable? Je veux dire, est-il technique raison? Je sais que la raison « de bon sens ». Si vous vendez une paire de chaussures alors toutes les versions en fonction de la couleur et la taille doivent être chaussures aussi.
Version longue : J'ai eu une tâche de « fusion » des produits configurables. Je veux dire de 2 ou plus pour faire une seule. Je ne voulais pas les faire manuellement en raison de la quantité de produits et je ne voulais pas passer par $product->load(..)->set...()->save() en raison de la quantité de temps qu'il a fallu pour exécuter le script. Alors je court-circuiter le processus parce que je suis sûr qu'aucun des produits simples chevauché. Il y avait une combinaison unique de la taille et la couleur. Je l'ai fait:

Mage::getResourceSingleton('catalog/product_type_configurable')
    ->saveProducts($mainConfigrableProduct, $simpleProductIds);

$simpleProductIds est un tableau de tous les ids simples produits associés tous les produits configurables qui doivent être fusionnées.
Cela a parfaitement fonctionné pour la plupart des produits, mais il y avait quelques-uns qui a des problèmes.
Si j'ai appelé

$productIds = $product->getTypeInstance()->getUsedProductIds() 

J'obtenir tous les ids simples produits, mais dans le back-end que certains d'entre eux est apparu. Après avoir creusé pendant un certain temps j'ai découvert que les seuls qui ont été montrées étaient ceux dans le même ensemble d'attributs que le produit configurable. L'autre jeu d'attributs est très similaire à la première, à seulement quelques différences mineures, mais il contient les attributs configurables (taille et couleur).
Et maintenant, la chose étrange. Dans le frontend je me attendais à voir soit tous les produits ($ productIds dans le code ci-dessus) ou uniquement les produits dans le même ensemble d'attributs. Eh bien il y avait quelque chose entre.

  • 20 ids de produits associés - 5 tailles, couleurs 4
  • 10 produits associés dans le backend - 5 tailles, 2 couleurs - les 2 autres couleurs (10 produits) sont 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 ne semblaient pas, mais je suis encore perplexe.

Remarque : Ne pas essayer à la maison. Ou vous pouvez essayer à la maison, mais pas sur un serveur en direct.

Était-ce utile?

La solution

Après avoir demandé autour de ce sont les raisons pour lesquelles j'ai. Espérons sa satisfaction pour vous, même si il est probablement ce que vous attendiez.

  1. L'interface adminhtml a été faite avec l'intention de rendre difficile pour les commerçants de tout bousiller.

Pour cette raison, de nombreuses fonctionnalités qui sont fournis par Magento comme cadre ne sont pas possibles via l'interface utilisateur.
La raison pour laquelle seuls les produits de la même ensemble d'attributs peuvent être sélectionnés comme des produits simples associés pour est parce que configurables de ce qui était dans les spécifications.
Comme vous l'avez dit, ce genre de logique que façon.

  1. Une autre raison est la pensée de l'objet d'ensembles d'attributs. L'une des raisons pour lesquelles ils existent est de réduire le nombre d'attributs et options qui doivent être chargées et traitées lors d'une demande. L'application de cette pensée à sens configurables, car il est une ressource relativement type de produit coûteux.

Parce que le back-end a été construit de cette façon, la logique de frontend pour configurable n'a jamais été prévu pour faire face à des produits simples à partir de différents ensembles d'attributs.
C'est pourquoi les restrictions ne sont pas mises en œuvre complètement là-bas.

Probablement, il serait facile de faire fonctionner les avec configurables de différents ensembles simples d'attributs. Ce n'était pas prévu de cette façon.

Je n'ai pas demandé plus et ne me regarde pour voir ce que l'interaction de code exactement produit le résultat étrange sur le frontend. Probablement pas son importance, car si je comprends bien vous où demander le raisonnement derrière la décision d'exclure des produits simples à partir d'ensembles d'attributs différents à configurer, pas l'explication du code.

Autres conseils

Nous utilisons une extension appelée RapidFlow par Unirgy (que je ne peux pas recommander assez fortement) pour l'importation et l'exportation. L'une des caractéristiques de la version Pro permet de modifier des ensembles d'attributs. Une autre est la création de produits via l'importation CSV. De temps en temps nous créons de nouveaux produits simples pour configurables, et parfois par hasard ces produits simples ont différents ensembles d'attributs que leurs parents.

Rapidflow se fera un plaisir d'importer ces produits et ensembles d'attributs de changement. Nous avons tendance pas heureux avec les résultats. produits configurables qui sont configurés par des attributs en dehors de leur jeu d'attributs ne parviennent pas à rendre dans l'administration du produit et doit être réparé. Si nous ne changeons pas l'ensemble d'attributs du parent, comme vous l'avez noté, les enfants ne parviennent pas simplement être correctement associés à leurs parents. Ils existent en tant qu'entités Magento, peuvent être édités, mais ne seront pas apparaître comme des enfants sur la page du produit final avant ou liste de produits associés de la société mère configurable.

Alors, d'un point de vue purement technique, il est possible pour les produits simples à être dans un ensemble d'attributs différent de celui de leurs parents. Mais comme ce comportement est pris en charge, même en EE, et ainsi le rasoir d'Occam dit que quand ils concevaient Magento les devs Varien ne voient pas la nécessité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top