Pré-Venda (Pre-Order) no Storefront
A pré-venda permite vender produtos ainda não disponíveis em estoque, com uma data de lançamento prevista. O cliente pode comprar antecipadamente e o pedido é identificado como pré-venda ao longo de todo o fluxo.
Do ponto de vista da API GraphQL do Storefront, a pré-venda é exposta por campos adicionais em queries já existentes — não há query nova. Estes campos permitem que a loja:
- identifique produtos/variantes em pré-venda e se ela é garantida;
- exiba a data de lançamento (mínima/máxima) na vitrine, no produto e no carrinho;
- filtre produtos por pré-venda garantida;
- sinalize no pedido que ele é de pré-venda e mostre a data de liberação por envio.
Regra geral: todos os campos de pré-venda são anuláveis. Retornam
null(oufalse, quando booleano de estoque) quando o produto/pedido não é de pré-venda.
Mapa rápido — Query × campos
| Query | Onde (caminho) | Campos de pré-venda |
|---|---|---|
products / product / search | nó do produto | preOrder, guaranteedPreOrder, productGuaranteedPreOrder, minimumPreOrderDate, maximumPreOrderDate |
products (filtro) | filters | guaranteedPreOrder |
products / product | stocks (estoque por CD) | preOrder, preOrderStock, allowsPreOrder, releaseDate |
product | attributeSelections.selectedVariant | guaranteedPreOrder |
checkout | products | minimumPreOrderDate, maximumPreOrderDate |
checkout | orders.delivery | releaseDate |
customer | orders.items (pedido) | isPreVenda |
customer | orders.items.shippings (envio) | releaseDate |
1. Produto (products / product / search)
products / product / search)Campos no produto
| Campo | Tipo | Descrição |
|---|---|---|
preOrder | Boolean | Indica se o produto está disponível para pré-venda. |
guaranteedPreOrder | Boolean | Indica se a pré-venda da variante é garantida. |
productGuaranteedPreOrder | Boolean | Indica se a pré-venda do produto é garantida. |
minimumPreOrderDate | DateTime | Data mínima de lançamento entre os itens em pré-venda. |
maximumPreOrderDate | DateTime | Data máxima de lançamento entre os itens em pré-venda. |
Filtro por pré-venda garantida
No argumento filters da query products:
| Filtro | Tipo | Descrição |
|---|---|---|
guaranteedPreOrder | Boolean | Retorna apenas variantes cuja pré-venda é garantida. |
Estoque por centro de distribuição (stocks)
stocks)| Campo | Tipo | Descrição |
|---|---|---|
preOrder | Boolean | Indica se o estoque deste CD está em pré-venda. |
preOrderStock | Int | Quantidade de estoque de pré-venda neste CD. |
allowsPreOrder | Boolean | Indica se este CD permite pré-venda. |
releaseDate | DateTime | Data de lançamento dos produtos em pré-venda neste CD, quando disponível. |
Exemplo
query {
products(first: 10, filters: { guaranteedPreOrder: true }) {
nodes {
productId
productName
preOrder
guaranteedPreOrder
productGuaranteedPreOrder
minimumPreOrderDate
maximumPreOrderDate
stocks {
distributionCenterId
preOrder
preOrderStock
allowsPreOrder
releaseDate
}
}
}
}Mostrar resposta
{
"data": {
"products": {
"nodes": [
{
"productId": 123014,
"productName": "Produto Pré-Venda Exemplo",
"preOrder": true,
"guaranteedPreOrder": true,
"productGuaranteedPreOrder": true,
"minimumPreOrderDate": "2026-08-01T00:00:00",
"maximumPreOrderDate": "2026-08-15T00:00:00",
"stocks": [
{
"distributionCenterId": 1,
"preOrder": true,
"preOrderStock": 50,
"allowsPreOrder": true,
"releaseDate": "2026-08-15T00:00:00"
}
]
}
]
}
}
}Variante selecionada (attributeSelections.selectedVariant)
attributeSelections.selectedVariant)O campo guaranteedPreOrder também está disponível na variante retornada pelo seletor de atributos da query product:
query {
product(productId: 123014) {
productName
attributeSelections {
selectedVariant {
productVariantId
guaranteedPreOrder
}
}
}
}2. Carrinho (checkout)
checkout)Produtos do carrinho (products)
products)| Campo | Tipo | Descrição |
|---|---|---|
minimumPreOrderDate | DateTime | Data mínima de lançamento dos produtos em pré-venda. |
maximumPreOrderDate | DateTime | Data máxima de lançamento dos produtos em pré-venda. |
Entrega do pedido (orders.delivery)
orders.delivery)| Campo | Tipo | Descrição |
|---|---|---|
releaseDate | DateTime | Data de lançamento dos produtos do envio, quando é pré-venda. |
Exemplo
query {
checkout(checkoutId: "02f9aa7a-7832-4664-8e5a-21741aa82133") {
products {
productVariantId
name
minimumPreOrderDate
maximumPreOrderDate
}
orders {
delivery {
name
releaseDate
}
}
}
}Mostrar resposta
{
"data": {
"checkout": {
"products": [
{
"productVariantId": 354312,
"name": "Produto Pré-Venda Exemplo",
"minimumPreOrderDate": "2026-08-01T00:00:00",
"maximumPreOrderDate": "2026-08-15T00:00:00"
}
],
"orders": [
{
"delivery": {
"name": "Transportadora Padrão",
"releaseDate": "2026-08-15T00:00:00"
}
}
]
}
}
}3. Pedido do cliente (customer)
customer)No pedido (orders.items)
orders.items)| Campo | Tipo | Descrição |
|---|---|---|
isPreVenda | Boolean | Indica se o pedido é de pré-venda (pedido com data de lançamento). |
No envio do pedido (orders.items.shippings)
orders.items.shippings)| Campo | Tipo | Descrição |
|---|---|---|
releaseDate | DateTime | Data de lançamento dos produtos em pré-venda naquele envio. |
Exemplo
query($customerAccessToken: String) {
customer(customerAccessToken: $customerAccessToken) {
orders {
items {
orderId
date
isPreVenda
shippings {
shippingName
releaseDate
}
}
totalCount
}
}
}Mostrar resposta
{
"data": {
"customer": {
"orders": {
"items": [
{
"orderId": 471797,
"date": "2026-06-23T16:00:00.000-03:00",
"isPreVenda": true,
"shippings": [
{
"shippingName": "Transportadora Padrão",
"releaseDate": "2026-08-15T00:00:00"
}
]
}
],
"totalCount": 1
}
}
}
}O campo
isPreVendatambém está disponível na consulta de um pedido específico (customer { order(orderId: ...) { isPreVenda } }) e nos pedidos de assinatura do cliente.
Boas práticas de uso
- Vitrine de lançamentos: use
preOrder+minimumPreOrderDate/maximumPreOrderDatepara exibir selo de pré-venda e contagem regressiva. - Pré-venda garantida: diferencie
guaranteedPreOrder(variante) deproductGuaranteedPreOrder(produto) ao decidir a comunicação de garantia de entrega. - Carrinho: a
releaseDateda entrega reflete o item de pré-venda daquele carrinho — tratenullcomo envio sem pré-venda. - Pós-compra: use
isPreVendapara rotular o pedido na área do cliente eshippings.releaseDatepara informar a data de liberação por envio.

