Integrações / Adicionar ao carrinho personalizado
Adicionar ao carrinho em lojas personalizadas
Lojas Shopify têm suporte Ajax cart integrado. Em site self-hosted ou headless, implemente RivetChat.onAddToCart para que os cards adicionem itens ao seu carrinho e abram seu drawer ou badge.
Como funciona
- 1No Dashboard Rivet, adicione produtos com link do produto e URL da imagem para o chat mostrar cards.
- 2Opcionalmente defina
external_idcomo seu SKU/variant id para o callback adicionar o item exato. - 3Defina
window.RivetChat.onAddToCartantes deSmartReply.inite chame sua API de carrinho dentro.
Exemplo de embed por script
Cole no footer ou layout do site. Substitua o tenant id e endpoints pelos seus.
<!-- Rivet AI customer service widget -->
<link rel="stylesheet" href="https://rivet-chat.com/static/chat.css?v=39">
<script src="https://rivet-chat.com/static/chat.js?v=39" defer></script>
<script>
// Hook Add to cart before SmartReply.init
window.RivetChat = {
onAddToCart: function (item) {
// item: name, price, product_url, image_url, external_id, handle, variants…
return fetch("/api/cart/add", {
method: "POST",
headers: { "Content-Type": "application/json" },
credentials: "same-origin",
body: JSON.stringify({
id: item.external_id || item.id,
url: item.product_url,
quantity: 1
})
}).then(function (r) {
if (!r.ok) throw new Error("cart failed");
// Open your side cart / update bag badge here
if (window.MyStore && typeof window.MyStore.openCart === "function") {
window.MyStore.openCart();
}
});
}
};
window.addEventListener("DOMContentLoaded", function () {
SmartReply.init({
server: "https://rivet-chat.com",
tenantId: "t-xxxxxxxx",
platform: "custom"
});
});
</script>Exemplo React / Next.js
Rode apenas num client component. Retorne uma Promise do hook para o Rivet mostrar toast de sucesso/erro.
// Client component (Next.js / React)
useEffect(() => {
window.RivetChat = {
onAddToCart: async (item) => {
await yourCart.add({
id: item.external_id || item.id,
url: item.product_url,
qty: 1,
});
yourCart.openDrawer();
},
};
SmartReply.init({
server: 'https://rivet-chat.com',
tenantId: 'your-tenant-id',
platform: 'custom',
});
}, []);Shopify vs personalizado
- Shopify:
/cart/add.jsintegrado — sem callback. Link + imagem (ou App sync) basta para cards e ATC. - Personalizado / Woo / headless: implemente
onAddToCart. Sem isso, o botão abre a página do produto em vez de adicionar ao carrinho.
Transforme páginas de produto em balcão de vendas
Recomende o item que o cliente está vendo, responda com dados ao vivo e deixe-o adicionar ao carrinho no chat.
Começar grátis