FROM CACHE - es_header
RESUELTAS

Agregar productos al carrito al hacer click en checkout

ghuerta
Novato(a)
17 0 1

Hola comunidad!

 

Estoy tratando de implementar una funcionalidad en el carrito de mi sitio y no logro que funcione al 100%.

 

Consiste en que si el usuario marca (o no) unos radio buttons, se agregue unos productos al carrito luego de hacer click en el botón de checkout. Son dos radio buttons con dos productos distintos. El problema es que a veces agrega solo uno, a veces ninguno y a veces los dos pero no es consistente en su funcionamiento.

 

La función que estoy utilizando para agregar el producto al carrito es esta:

 

 

 

function agregarProductoAlCarrito(variant_id){ 
      let data = {
        'items':[{
          'id': variant_id,
          'quantity': 1
        }]
      };
    
      fetch('/cart/add.js', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
      })
      .then(response => {
        return response.json();
      })
      .catch((error) => {
        console.error('Error:', error);
      });
    }

 

 

 

Para eliminar el producto (en caso de que ya esté en el carrito):

 

 

 

function eliminarProductoDelCarrito(variant_id){
    let data = {
      'items':[{
        'id': variant_id,
        'quantity': 0
      }]
    };

    fetch('/cart/change.js', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(data)
    })
    .then(response => {
      return response.json();
    })
    .catch((error) => {
      console.error('Error:', error);
    });
  }

 

 

 

Luego, en el onclick del botón de checkout hago lo siguiente: 

 

 

 

$(".custom-btn-checkout").click( function(e){
          e.preventDefault();
            if(radio1Si.checked){
              agregarProductoAlCarrito({{ variant1_id }});
            }

            if(radio1No.checked){
              eliminarProductoDelCarrito({{ variant1_id }});
            }

            if(radio2Si.checked){
              agregarProductoAlCarrito({{variant2_id }});
            }

            if(radio2No.checked){	
              eliminarProductoDelCarrito({{ variant2_id }});
            }
              $(this).submit();
            
          }  
    });

 

 

 

Alguien podría darme una idea de que puede estar pasando? Quizás sea algo referido al tiempo de la ejecución de las funciones de agregar y eliminar. Probé agregandoles setTimeout pero no termina de funcionar al 100%.

 

Agradecería mucho si alguien puede brindarme alguna ayuda.

 

Muchas gracias!

1 SOLUCIÓN ACEPTADA

Javier
Shopify Staff
1785 476 231

Éxito.

Hola @ghuerta,

 

Gracias por tu pregunta y por detallar los códigos que estás intentando usar en tu tienda.

 

Para preguntas como estas, recomiendo que te diriges al subforo en nuestro foro en inglés para los desarrolladores que se llama 'Shopify APIs and SDKs'.

 

Muchos de los participantes son desarrolladores asociados (Partners) de Shopify, conocen bien la plataforma e intentan responder a todas las inquietudes puestas en ese subforo. Es posible que recibes una respuesta detallada para solucionar tu problema allá.

 

Un otro consejo sería participar en el grupo de Discord para los desarrolladores de Shopify aquí y subir tu pregunta allá también.

 

Saludos,

Javier | Shopify 
 - ¿Te resultó útil mi respuesta? Dale Me gusta para hacérmelo saber 
 - ¿Resolvimos tu pregunta? Dale a Aceptar como solución
 - Para saber más visita el Centro de ayuda de Shopify o nuestro Blog de Shopify

Ver la solución en mensaje original publicado

2 RESPUESTAS 2

Javier
Shopify Staff
1785 476 231

Éxito.

Hola @ghuerta,

 

Gracias por tu pregunta y por detallar los códigos que estás intentando usar en tu tienda.

 

Para preguntas como estas, recomiendo que te diriges al subforo en nuestro foro en inglés para los desarrolladores que se llama 'Shopify APIs and SDKs'.

 

Muchos de los participantes son desarrolladores asociados (Partners) de Shopify, conocen bien la plataforma e intentan responder a todas las inquietudes puestas en ese subforo. Es posible que recibes una respuesta detallada para solucionar tu problema allá.

 

Un otro consejo sería participar en el grupo de Discord para los desarrolladores de Shopify aquí y subir tu pregunta allá también.

 

Saludos,

Javier | Shopify 
 - ¿Te resultó útil mi respuesta? Dale Me gusta para hacérmelo saber 
 - ¿Resolvimos tu pregunta? Dale a Aceptar como solución
 - Para saber más visita el Centro de ayuda de Shopify o nuestro Blog de Shopify

ghuerta
Novato(a)
17 0 1

Muchas gracias por la información, Javier!

 

Me estaré pasando por esos lados entonces.

 

Saludos!