Você pode criar um botão customiado, via Java Script, se for VTEX CMS, ou em React, se for VTEX IO.
Neste botão, você irá precisar ter o número do SKU da amostra que irá adicionar.
Uma boa solução para inserir esta informação na página de produto é criando um campo produto, por exemplo, “SKU da Amostra”, e no cadastro do produto voce faz este ‘vinculo’.
De resto, basta ao clicar no botão de “Adicionar Amostra”, puxar esta informação via API de Produto:
/api/catalog_system/pub/products/search?fq=productId:${skuJson.productId}
caso seja VTEX CMS
Ou usando o product-context, caso seja VTEX IO:
import { useProduct } from "vtex.product-context"
const productContextValue = useProduct()
E com o número do SKU da amostra em mãos, disparar o Adicionar ao Carrinho:
Para CMS:
function addToCart(skuId, qtd) {
$.ajax({
url: `/checkout/cart/add?sku=${skuId}&qty=${qtd}&seller=1&redirect=false&sc=1`,
type: "POST",
async: 1,
success: function (res) {
console.log(`Produto ${skuId} adicionado ao carrinho!`)
vtexjs.checkout.getOrderForm()
}
})
}
Ou se for em IO:
import { useOrderItems } from "vtex.order-items/OrderItems"
import { usePixel } from 'vtex.pixel-manager'
const { addItems } = useOrderItems()
const { push } = usePixel()
const handleAddToCart = (e, itemId) => {
const items = [
{
id: itemId,
seller: 1,
quantity: 1
}
]
addItems(items)
push({
event: "cart",
id: "add-to-cart-button"
})
}