Woocommerce Agregar producto de variación al carrito desde un enlace personalizado [cerrado]

14

Estoy intentando agregar un producto de variación a mi carrito directamente a través de un enlace. Estoy configurando la variación_id con la cadena de consulta. Hasta donde puedo decir, estoy enviando los datos exactamente de la misma manera que lo hace el formulario de producto de variación predeterminado.

Aquí está el código dentro de mi página de producto único:

<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>

Por el contrario, el producto simple funciona bien. He establecido precios a las variaciones de mi producto en el administrador. No estoy seguro de por qué no es tan simple como enviar los datos. Cualquier ayuda sería muy apreciada.

    
pregunta ezekielDFM 14.02.2013 - 22:49

2 respuestas

9

Descubrí este. Me faltaban un par de parámetros necesarios para agregar un producto variable a mi carrito. Los parámetros que faltan son el variation_id y el tipo de atributo al que se refiere el variation_id . La identificación de la variación se puede encontrar en el administrador > woocomerce > productos y en la pestaña de variaciones junto a la variación de producto que ha creado.

El atributo param se forma a partir del prefijo attribute_ y luego el nombre del atributo saneado. Por ejemplo, mi atributo se llama Stock Colors, así que mi tipo de atributo param es attribute_stock-colors. Por lo que puedo decir, simplemente establece attribute_stock-colors=1 porque el método de agregar al carrito simplemente verifica si existe.

Este es un ejemplo simple de un enlace que agrega un producto a mi carrito con la ID de variación 261 de colores de stock:

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

Para usar esto en una situación real, necesitaría establecer el tipo de atributo y el ID de variación dinámicamente a partir de las opciones que el usuario seleccionó en un menú desplegable o algo así (a menos que cada producto tenga la misma variación, lo que básicamente lo haría un producto simpel).

    
respondido por el ezekielDFM 18.02.2013 - 16:10
10

Actualmente trabajo en una tienda de woocommerce v2.1.12 y parece que modificaron ese comportamiento.

mi url ajax para agregar artículos al carrito debe tener este aspecto:

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

ejemplo:

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

esto agrega un producto específico al carrito y también establece los atributos de variación en el carrito. incluso puede establecer la cantidad simplemente agregando &quantity=[VALUE]

al final, esto resulta útil ya que todos estos valores se configuran dentro de los campos de formulario de envío / selección, solo tienes que buscarlos ...

    
respondido por el honk31 28.08.2014 - 10:10

Lea otras preguntas en las etiquetas