Ajouter Configurable produit au panier Via chaîne de requête en 1.7
-
16-10-2019 - |
Question
Note: Ceci est un X-Post de StackOverflow, je l'ai mis là avant de se rappeler ce subexchange existait donc des excuses pour le double-up.
Ma question entoure la méthode Ajouter à la carte pour des produits configurables et si un produit configurable via l'URL / querystring est possible.
Le Wiki Magento a une ressource pour ajouter un produit au panier par chaîne de requête pour Magento <1.3 ICI
Cette méthode cite un exemple en utilisant cet:
http://www.your_domain.com/checkout/cart/add?product=68&qty=1&super_attribute[528]=55&super_attribute[525]=56
Il mentionne également que cette version était valide 1.3.
J'ai été jouer avec cela en 1.7 et ont remarqué une différence majeure en 1.7 est la clé chiffrée dans la méthode ->getAddUrl()
pour l'action formulaire Attribtue maintenant les URL ressemblent plus
http://www.your_domain.com.au/checkout/cart/add/uenc/aHR0cDovL3d3dy5jdWx0dXJla2luZ3MuY29tLmF1L2FjY2Vzc29yaWVzL3NvbC1yZXB1YmxpYy90cmFja3Mtb24tZWFyLWJsYWNrLTM1OTg5Lmh0bWw_X19fU0lEPVU,/product/35900/
Avec l'ID de produit étant le 35900.
Si j'utilise cette URL dans le navigateur, il me diriger vers la page du produit avec un message disant S'il vous plaît spécifier l'option du produit (s).
J'ai essayé de passer les options d'attribut valeur souhaitée dans l'URL pour ajouter le produit au panier sans succès. (Par souci d'économie d'espace, je suis en omettant l'URL jusqu'à et y compris la clé chiffrée) J'ai essayé des méthodes ces vain:
/product/35900/super_attribute/49265/4834
/product/35900/super_attribute/49265=4834
/product/35900/49265=4834
/product/35900/49265/4834
Ma question est: Est-il possible d'ajouter un produit configurable via l'URL à votre panier dans Magento et si oui, quel est le format pour faire passer l'id super_attribute et attribut Option Valeur
La solution
Cela a fonctionné pour moi CE 1.7.0.2 (avec des données échantillon):
/checkout/cart/add/product/126?super_attribute[525]=100&super_attribute[272]=22
NOTE (ce casse-tête me un peu): Il y a une différence entre l'appel:
/checkout/cart/add/product/126?super_attribute[525]=100&super_attribute[272]=22
et
/checkout/cart/add/product/126?super_attribute[272]=22&super_attribute[525]=100
Je veux dire l'ordre des paramètres de super_attribute est important. Après avoir appelé les 2 URL ci-dessus j'ai fini avec 2 lignes panier du même produit avec les mêmes options. on ressemblait à ceci:
Taille Petit Couleur Vert
et l'autre
Couleur Vert Taille Petit
Je suppose que si vous ajoutez les produits au panier via l'URL que vous devez garder l'ordre des attributs comme indiqué sur la page d'affichage du produit pour la cohérence.
Autres conseils
Dans les dernières versions de magento, nous devons ajouter la clé de forme aussi.
https://{site-name}/checkout/cart/add/product/{product_id}/form_key/{form_key}?super_attribute[{attribute_id}]={attribute_value}&super_attribute[{attribute_id}]={attribute_value}