Personyze Wiki Personyze Wiki docs
Español
  • English
  • Español
  • Français
  • Deutsch
  • Italiano
  • Nederlands
  • Português
  • Polski
  • 日本語
  • العربية
Open Personyze
Documentación/ Widgets y complementos/ Botón de agregado rápido al carrito para el widget de recomendaciones
Widgets y complementos

Botón de agregado rápido al carrito para el widget de recomendaciones

La plantilla de código add_to_cart_for_personyze que permite añadir productos al carrito directamente desde un widget de recomendaciones.

2 min read Actualizado hace 3 minutos

El código siguiente se usará para añadir productos al carrito de un visitante cuando haga clic en «Añadir al carrito» en un widget de recomendaciones (algunos widgets tienen esta función).

Si lo configura correctamente, podrá usar la función de agregado rápido al carrito al recomendar un artículo a un visitante, para que pueda añadir uno o varios productos a su carrito de forma rápida y cómoda, sin tener que ir a la página de cada producto. Para Magento, Shopify, etc., puede pedir a su gestor de cuenta las plantillas existentes que funcionan directamente con esta función.

Edite esta plantilla de código en la configuración de interacciones de producto de su cuenta:

Puede cambiar la variable que se pasa a la función de su sitio desde la configuración del widget

/** Este código debe contener la función llamada «add_to_cart_for_personyze».
@param products – array de objetos, en el que cada objeto tiene los campos «internal_id» y «quantity».
Personyze pasará el «internal_id» que aparece en el catálogo de productos.
@param arg – undefined de forma predeterminada, pero puede indicar un valor arbitrario en la configuración de cada acción.
@return {Promise} – Promise que se cumple cuando termina la operación.
**/
function add_to_cart_for_personyze(products, arg)
{ // Queremos añadir cada uno de estos productos en una solicitud aparte.
// Si la API de su sitio permite añadir varios productos en una sola solicitud, el código siguiente será más sencillo.
let all = []
for (let i=0; i<products.length; i++)
{ // Sustituya esto por su solicitud real.
all[i] = fetch
( ‘/cart/add’,
{ mode: ‘cors’,
credentials: ‘include’,
method: ‘POST’,
body: ‘product=’+products[i].internal_id+’&qty=’+products[i].quantity
}
).then
( response =>
{ if (!response.ok)
{ throw new Error(response.statusText)
}
return response.text()
}
)
}
// Listo.
returnPromise.all(all)
// O, si su respuesta contiene el estado actual del carrito, conviene actualizar el estado de Personyze.
returnPromise.all(all).then
( responses =>
{ personyze.push([‘Products Removed from cart’])
for (let response of responses)
{ response = JSON.parse(response) // o use response.json() en fetch
for (let product of response.currently_in_cart)
{ personyze.push([‘Product Added to cart’, product.id])
}
}
}
)
}
Did this page answer your question?
Thank you — that goes to whoever maintains this page.