Quelle est la procédure correcte - plutôt que de supprimer le produit et de recommencer pour ajouter ou supprimer des attributs aux produits configurables existants.
Lors de la création d'un produit configurable, vous êtes invité à choisir les attributs à utiliser pour le produit.
J'ai beaucoup de produits dont j'ai maintenant besoin de supprimer certains attributs qui ont été sélectionnés initialement, et certains qui ont également besoin d'un ajout d'attribut qui n'ont pas été initialement sélectionnés.
Toute aide à cet égard est appréciée - car la suppression des produits ne semble pas être la meilleure approche. D'autant plus que beaucoup d'autres choses sont associées aux produits.
Réponses:
Voici ce qui semble fonctionner pour moi pour supprimer un attribut du produit configurable.
Voici le scénario.
Tous les produits configurables ont été créés incorrectement avec l'attribut
brand
comme attribut configurable pour environ 50 produits configurables ayant environ 200 produits associés simples.Tous les produits simples associés à un attribut configurable ont la même marque. L'idée est de supprimer
brand
des attributs configurables et de l'attribuer en tant qu'attribut simple au produit configurable avec la valeur de l'un des produits simples.Voici le code qui fait cela. Le code est exécuté une seule fois. Il peut être ajouté dans un script de mise à niveau ou un simple fichier php.
Pour les nombres répertoriés ci-dessus, cela a pris environ 15 secondes pour s'exécuter sur ma machine locale (pas puissante). Je suis sûr que cela peut être optimisé. Très probablement, il n'est pas nécessaire d'obtenir tous les produits simples d'un produit configurable pour obtenir la
brand
valeur, mais je n'ai pas pris la peine.la source
catalog_product_super_attribute
fonctionnera? Ou bien dois-je modifier d'autres tables? Comme dans stackoverflow.com/a/13381381/1749007Cela nécessite une modification directe de la base de données, et la première loi de Magento est ne pas modifier directement la base de données .
Mais si vous êtes assez fou pour continuer, cela a été couvert sur StackOverflow il y a quelques mois:
ucts. J'ai testé le hack de solution de contournement DB ci-dessous sur CE 1.6.2 et il semble fonctionner:
Crédit: /programming/5658197/add-new-attribute-to-existing-configurable-product-magento
Non testé - YMMV.
la source
Pour supprimer un attribut de super produit (comme on les appelle) de tous les produits configurables, vous pouvez exécuter cette requête SQL dans la base de données:
Ici, est l'id de l'attribut stocké dans la table eav_attribute concernant l'attribut_code. La table catalog_product_super_attribute relie les produits aux attributs de super produit. Vous pouvez ajouter et supprimer des attributs pour y créer des produits configurables.
la source
DELETE FROM catalog_product_super_attribute WHERE attribute_id = <attribute_id> AND product_id = <product_id>;
Il y a un hack sale pour ouvrir le produit configurable, puis choisissez dupliquer, sélectionnez l'ancien et le nouvel attribut, le duplicata est fait sans SKU, puis supprimez le produit configurable d'origine et les produits simples. Après cela, vous pouvez donner le même SKU à dupliquer. Il vous suffit ensuite de créer de nouveaux produits simples.
C'est une solution rapide s'il n'y a pas beaucoup de produits simples.
la source
Je viens de réussir à le faire plus proprement en utilisant l'outil d'importation d'importation Free Magmi en mode mise à jour. (version compréhensible)
Exportez les champs clés, modifiez les paramètres de colonne configurable_attributes pour spécifier des attributs configurables sur des SKUS simples et configurables puis réimportez à l'aide de Magmi
En tant qu'ancien consultant Oracle, je suis d'accord pour ne pas jouer avec la base de données, en particulier une aussi complexe que la structure de données Magento - mieux vaut utiliser un outil qui a été bien testé pour le faire.
la source
J'ai dû retirer un attribut de l'un des attributs "configurables" d'un produit configurable.
Les références ci-dessus à propos de catalog_product_super_attribute étaient correctes. En utilisant l'outil de base de données Navicat, j'ai fait plusieurs choses séquentiellement.
Pour tester Changed the Attribute_Id, cela l'a changé en un autre champ utilisé dans d'autres produits. (Confirmé que c'était le dossier en cause). A écrit, juste au cas où, l'ensemble complet des données d'enregistrement (product_super_attribute_id, product_id, attribute_id, position)
Enfin supprimé le dossier tous ensemble.
Cela a fait l'affaire. J'ai également pris note de ce que j'ai fait en supposant que je devrais recommencer.
Encore une fois: la suppression de l'enregistrement dans "catalog_product_super_attribute" a résolu mon problème qui semblait lié aux autres ci-dessus.
Informations supplémentaires: pour corréler "attribut_id" à la liste nommée correcte, il est important de regarder: catalog_super_attribute_label -> et de corréler via product_super_attribute_id.
Je cherchais un champ "attribut_id" connexe (pas encore trouvé).
"product_super_attribute_id" fait l'affaire pour vous dire ce qu'est réellement "attribute_id". (Je voudrais toujours trouver l'ensemble de données "par défaut" pour "attribut_id" pour voir comment un attribut est d'abord défini dans la base de données).
la source