Woocommerce Ajouter une variante de produit au panier à partir d'un lien personnalisé [fermé]


15

J'essaie d'ajouter un produit de variation à mon panier directement via un lien. Je mets le variation_id avec la chaîne de requête. Pour autant que je sache, j'envoie les données exactement de la même manière que le formulaire de produit par défaut.

Voici le code à l'intérieur de ma page mono-produit:

<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=262" class="rounded-rect-button add-to-cart">Add to Cart</a>

Inversement, le produit simple fonctionne bien. J'ai fixé les prix de mes variations de produits dans l'administrateur. Je ne sais pas pourquoi ce n'est pas aussi simple que d'envoyer les données. Toute aide serait grandement appréciée.

Réponses:


10

Je travaille actuellement sur une boutique woocommerce v2.1.12 et il semble qu'ils aient falsifié ce comportement.

mon URL ajax pour ajouter des articles au panier doit ressembler à ceci:

?add-to-cart=[PRODUCT-ID]&variation_id=[VARIATION-ID]&attribute_[ATTRIBUTE-NAME]=[ATTRIBUTE-SLUG]&attribute_[ATTRIBUTE-NAME]=[ATTRIBUTE-SLUG]

exemple:

http://example.com/store/category/product/?add-to-cart=239&variation_id=240&attribute_pa_size=48-2&attribute_pa_color=gold

cela ajoute un produit spécifique au panier et définit également les attributs de variation dans le panier. vous pouvez même définir la quantité en ajoutant simplement&quantity=[VALUE]

en fin de compte, cela est pratique car toutes ces valeurs sont définies dans le formulaire de soumission / champs de sélection, il vous suffit de les rechercher.


2
Note rapide - inspectez le champ de sélection des variantes pour le nom d'attribut approprié. Il utilise généralement des tirets, vous obtenez donc: & attribute_my-attribute-name = value
Imperative Ideas

9

Compris celui-ci. Il me manquait quelques paramètres nécessaires pour ajouter un produit variable à mon panier. Les paramètres manquants sont le variation_idet le type d'attribut auxquels le variation_idfait référence. L'identifiant de variante se trouve dans admin> woocomerce> produits et sous l'onglet variantes à côté de la variante de produit que vous avez créée.

Le paramètre d'attribut est formé du préfixe attribute_puis du nom d'attribut filtré. Par exemple, mon attribut est appelé Stock Colors, donc mon paramètre de type d'attribut est attribute_stock-colours. D'après ce que je peux dire, vous venez de définir attribute_stock-colors=1parce que la méthode add to cart vérifie simplement si elle existe.

Voici un exemple simple d'un lien qui ajoute un produit à mon panier avec la variation id 261 des couleurs de stock:

<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=261&attribute_stock-colors=1">Add to Cart</a>

Pour l'utiliser dans une situation réelle, vous devez définir dynamiquement le type d'attribut et l'ID de variation à partir des options choisies par l'utilisateur dans une liste déroulante ou quelque chose comme ça (sauf si chaque produit a la même variation, ce qui en ferait essentiellement un produit simpel ).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.