es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo agregar un botón agregar al carrito en los productos mostrados en la sección de recomendaciones de productos en Shopify?

Estoy usando el tema dawn, e intenté agregar un botón en el archivo product-card.liquid, aquí está el código …

{% for image in product.images limit:1 %}
<a href="{{ product_card_product.url | default: '#' }}">
<img src="{{ product_card_product.featured_media | img_url: '533x' }}" />
</a>
{% endfor %}
<form method="post" action="/cart/add" style="text-align: center">
<input type="hidden" name="id" value="{{ product.variants.first.id }}" />
<button type="submit" class="addCart" {% unless product.available %} disabled="disabled" {% endunless %}>
{% unless product.available %}
{{ "products.product.sold_out" | t }}
{% else %}
{{ "products.product.add_to_cart" | t }}
{% endunless %}
</button>
</form>

Lo que sucede es que esta sección en particular está en la página del producto, y al hacer clic en el botón agregar al carrito, se agrega el producto de esa página en particular, que ya tiene un botón dedicado y no agrega el producto que se recomienda. Intenté imprimir el objeto del id del producto.variants.first junto con el botón agregar al carrito, y este id es el mismo para todos los productos recomendados. He revisado todos los bucles for y todo está cerrado y correcto.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema que estás enfrentando es que al agregar el botón de agregar al carrito en el archivo product-card.liquid, se agrega el producto que pertenece a esa tarjeta específica en lugar del producto recomendado. La razón de esto es que el formulario utiliza product.variants.first.id como ID del producto, que es el mismo para todos los productos recomendados.

    Para solucionar este problema, debes modificar el código para pasar el ID de producto correcto al formulario de agregar al carrito. Una manera de hacer esto es pasar el ID del producto como un parámetro en la URL del formulario de agregar al carrito. Puedes hacer esto agregando un parámetro de cadena de consulta a la URL, como este:

    <form method="post" action="/cart/add?product_id={{ product.id }}" style="text-align: center">
    

    Esto pasará el ID del producto actual al formulario de agregar al carrito, de modo que se agregue el producto correcto cuando se haga clic en el botón. Ten en cuenta que también deberás modificar el controlador del formulario de agregar al carrito en tu tema de Shopify para buscar este parámetro y utilizarlo como ID del producto en lugar del ID de variante.

    ¡Espero que esto te ayude! Avísame si tienes alguna otra pregunta.

Comments are closed.