---
title: "Agentes de compras com IA e lojas personalizadas"
description: "Agentes de compras com IA e links do app Shop ainda não conseguem escolher uma data de entrega, mas suas regras de data continuam valendo no checkout. Avise os agentes de que é preciso uma data e deixe lojas Hydrogen ou headless gravarem a data para o checkout aceitá-la."
contentType: "docs"
locale: "pt-br"
localized: true
source: "https://orderrules.com/pt-br/docs/delivery/ai-shopping-agents-and-headless"
slug: "delivery/ai-shopping-agents-and-headless"
---
## 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](/docs/delivery/orders-without-a-delivery-date).

### 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.

![O quadro do OrderRules para avisar agentes de IA que uma data é necessária, com uma FAQ pronta para copiar no app Knowledge Base da Shopify](/images/docs/delivery-ai-agents-faq.png)

## 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

```graphql
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 `allowedDates` da regra;
- ela não está em `blackouts`;
- `capacity[date]._all` nã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:

```graphql
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 exemplo `d|2026-11-04|`.
- `delivery_date` e `delivery_slot` sã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:

```graphql
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](/docs/delivery/checkout-links-with-delivery-date). Ele cria um link de carrinho com a data já definida.

## Relacionados

- [Pedidos sem data de entrega](/docs/delivery/orders-without-a-delivery-date) · [Proteção do checkout](/docs/delivery/checkout-protection) · [Data de entrega depois do pedido](/docs/delivery/delivery-date-after-order)
