Agentes de compras com IA e lojas personalizadas
Agentes de compras com IA (ChatGPT, Gemini, Copilot) e links do app Shop
Eles ainda não conseguem escolher uma data de entrega. A Shopify não dá aos apps nenhum jeito de pedir uma a um agente. Suas regras de data continuam valendo para os pedidos deles no checkout:
- Com Bloquear, o checkout pede que o cliente termine na sua loja e escolha a data.
- Com Aceitar, o pedido passa e o cliente escolhe a data na página de confirmação do pedido (agradecimento), ou depois na página de status do pedido, quando estiver conectado à sua conta.
Veja Pedidos sem data de entrega.
Avise os agentes de que é preciso uma data
OrderRules → Datas de entrega → Pedidos e processamento → Diga aos agentes de IA que é preciso uma data. Copie a FAQ pronta e adicione-a ao app gratuito Knowledge Base da Shopify, que os agentes de IA leem quando os clientes perguntam sobre a sua loja. Adicionar a mesma frase à sua política de envio também ajuda.

Lojas personalizadas (Hydrogen, headless, agentes próprios)
O seletor de data de entrega do OrderRules é um bloco de app de tema, então só aparece em temas da Online Store. Uma loja criada com a Storefront API o ignora, seja Hydrogen ou um app React ou Next.js personalizado. O checkout continua aplicando suas regras.
Para deixar os compradores escolherem a data na sua própria loja, grave-a no carrinho com os mesmos campos que o seletor usa. As consultas abaixo são para a Storefront API 2026-10.
1. Leia as datas abertas
query OrderRulesDelivery {
shop {
metafield(namespace: "order_rules", key: "delivery") { value }
}
}
value é JSON. As partes de que você precisa:
| Campo | Significado |
|---|---|
rules[] | Regras de entrega: id, scope (storewide / product / collection / tag), requireDate, requireSlot, slotTemplateId, allowedDates (YYYY-MM-DD, já descontados o horário limite e o prazo de preparação) |
defaultRuleId | A regra para toda a loja, se houver |
productRuleMap | Id numérico do produto → id da regra |
collectionProductIds / tagProductIds | Quais produtos uma regra de coleção ou de tag cobre |
blackouts | Datas fechadas (YYYY-MM-DD) |
slotTemplates[id].windows[] | Faixas de horário: id, label, start, end |
capacity[date][slotId or "_all"] | Reservas restantes; 0 significa lotado |
Mostre uma data apenas quando todas estas condições forem verdadeiras:
- ela está em
allowedDatesda regra; - ela não está em
blackouts; capacity[date]._allnão é0.
Quando requireDate é true, a data é obrigatória. O metacampo é atualizado sempre que você altera as configurações de entrega e depois que chegam pedidos. Trate-o como somente leitura: o formato é interno e pode mudar.
2. Grave a data escolhida
Uma data para o pedido inteiro. Atributos do carrinho:
mutation SetDeliveryDate($cartId: ID!) {
cartAttributesUpdate(cartId: $cartId, attributes: [
{ key: "_os_dp", value: "d|2026-11-04|am" }
{ key: "delivery_date", value: "2026-11-04" }
{ key: "delivery_slot", value: "am" }
]) {
cart { id }
userErrors { field message }
}
}
_os_dpé o que a verificação do checkout lê. O formato éd|YYYY-MM-DD|slotId; deixe a faixa vazia quando não houver faixas de horário, por exemplod|2026-11-04|.delivery_dateedelivery_slotsão o que a sua lista de pedidos, as tags, a exportação CSV e as contagens de capacidade leem.
Ou uma data por produto. Um atributo de linha:
mutation AddDatedLine($cartId: ID!) {
cartLinesAdd(cartId: $cartId, lines: [{
merchandiseId: "gid://shopify/ProductVariant/123"
quantity: 1
attributes: [{ key: "_os_dpl", value: "d|2026-11-04|am" }]
}]) {
cart { id }
userErrors { field message }
}
}
O _os_dpl da própria linha prevalece sobre o _os_dp do pedido. As linhas sem ele usam a data do pedido.
3. Teste
Vá ao checkout com um produto de data obrigatória.
- Sem data: o checkout mostra "Please choose a delivery date…".
- Com uma data válida: o checkout continua, e o pedido mostra a data nos detalhes adicionais.
Links em vez de uma loja
Para vendas por chat, e-mail ou redes sociais, use o Link de checkout com data de entrega. Ele cria um link de carrinho com a data já definida.