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

  1. 1No Dashboard Rivet, adicione produtos com link do produto e URL da imagem para o chat mostrar cards.
  2. 2Opcionalmente defina external_id como seu SKU/variant id para o callback adicionar o item exato.
  3. 3Defina window.RivetChat.onAddToCart antes de SmartReply.init e 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.js integrado — 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.

Voltar ao embed de site personalizado · Setup Shopify

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