De code hieronder wordt gebruikt om producten aan de winkelwagen van een bezoeker toe te voegen als die in een aanbevelingswidget op “In winkelwagen” klikt (sommige widgets hebben deze functie).
Als je dit correct instelt, kun je de functie “snel toevoegen aan winkelwagen” gebruiken als je een bezoeker een item aanbeveelt, zodat die snel en gemakkelijk een of meer producten aan de winkelwagen kan toevoegen, zonder naar de afzonderlijke productpagina’s te gaan. Voor Magento, Shopify enz. kun je je accountmanager vragen om bestaande templates die direct met deze functie werken.

Bewerk deze codetemplate in de instellingen voor productinteracties van je account:

Je kunt de variabele die aan de functie van je site wordt doorgegeven, wijzigen in de instellingen van de widget

/** Deze code moet de functie met de naam “add_to_cart_for_personyze” bevatten.
@param products – array van objecten, waarbij elk object de velden “internal_id” en “quantity” heeft.
Personyze geeft de “internal_id” door die in de productcatalogus staat.
@param arg – standaard undefined, maar je kunt in de instellingen van elke afzonderlijke actie een willekeurige waarde opgeven.
@return {Promise} – Promise die wordt vervuld als de bewerking klaar is.
**/
function add_to_cart_for_personyze(products, arg)
{ // We willen al deze producten elk in een apart verzoek toevoegen.
// Ondersteunt de API van je site het toevoegen van meerdere producten in één verzoek, dan wordt de code hieronder eenvoudiger.
let all = []
for (let i=0; i<products.length; i++)
{ // Vervang dit door je echte verzoek.
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()
}
)
}
// Klaar.
returnPromise.all(all)
// Of: bevat je antwoord de huidige staat van de winkelwagen, dan is het goed om de staat van Personyze bij te werken.
returnPromise.all(all).then
( responses =>
{ personyze.push([‘Products Removed from cart’])
for (let response of responses)
{ response = JSON.parse(response) // of gebruik response.json() in fetch
for (let product of response.currently_in_cart)
{ personyze.push([‘Product Added to cart’, product.id])
}
}
}
)
}