createOrder
Criando um pedido no armazenamento de pedidos. 🔐 Este método requer autorização.
Descrição
O método adicionará o idioma padrão ao corpo da solicitação. Se você quiser mudar o idioma, basta passá-lo como o segundo argumento. Ele cria um pedido no armazenamento de pedidos especificado. Retorna uma Promise que resolve para um objeto IBaseOrdersEntity.
Pedidos.createOrder(
marker*,
body*,
langCode
);
Esquema de parâmetros
Esquema
marker(obrigatório): string
Identificador textual do objeto de armazenamento de pedidos
exemplo: "order_storage_1"
body(obrigatório): IOrderData
Objeto para criar um pedido
exemplo:
{
"formIdentifier": "bar-orders-form",
"paymentAccountIdentifier": "usd-payment",
"formData": {
"marker": "name_1",
"value": "Name",
"type": "string"
},
"products": [
{
"productId": 1,
"quantity": 2
}
]
}
body.formIdentifier(obrigatório): string
Identificador textual do objeto de formulário vinculado ao repositório de pedidos.
exemplo: "bar-orders-form"
body.paymentAccountIdentifier(obrigatório): string
Identificador textual do objeto de pagamento vinculado ao repositório de pedidos.
exemplo: "payment-1"
body.formData(obrigatório): IOrdersFormData | IOrdersFormData[]
Dados do formulário vinculados ao repositório de pedidos.
exemplo:
[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]
formData.marker(obrigatório): string
Marcador do campo do formulário.
exemplo: "name_1"
formData.type(obrigatório): string
Tipo de valor.
exemplo: "string"
formData.value(obrigatório): string
Valor.
exemplo: "Nome"
body.products(obrigatório): IOrderProductData[]
Um array de produtos pedidos.
exemplo: []
products.productId(obrigatório): number
Identificador do produto.
exemplo: 1
products.quantity(obrigatório): number
Quantidade do produto.
exemplo: 2
products.signedPrice: string
O preço assinado do produto é obtido junto com os dados do produto quando signPrice está definido.
exemplo: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
body.couponCode: string
Código do cupom.
body.additionalDiscountsMarkers: string[]
Array de marcadores de desconto adicionais.
body.bonusAmount: number
Valor do bônus a ser aplicado.
langCode: string
Código do idioma. Padrão: "en_US"
exemplo: "en_US"
🔒
signedPriceé o token assinado que carrega o preço bloqueado — passe-o de volta ao criar um pedido. Veja Preço fixo do produto (signedPrice).
Exemplos
Exemplo mínimo
const body = { "formIdentifier": "orderForm", "paymentAccountIdentifier": "cash", "formData": { { "marker": "order_name", "type": "string", "value": "Ivan" } }, "products": [ { "productId": 2, "quantity": 2 } ]};
const response = await Orders.createOrder("my-order", body);
Exemplo com preço fixo (signedPrice)
Busque os produtos com signPrice definido para o seu marcador de armazenamento de pedidos, e então passe cada token signedPrice retornado de volta no pedido para que o preço bloqueado seja respeitado:
const { items } = await Products.getProducts([], "en_US", { signPrice: "my-order"});
const body = { "formIdentifier": "orderForm", "paymentAccountIdentifier": "cash", "formData": [], "products": [ { "productId": items[0].id, "quantity": 2, "signedPrice": items[0].signedPrice } ]};
const response = await Orders.createOrder("my-order", body);
Exemplo de resposta
{
"id": 681,
"formIdentifier": "orderForm",
"paymentAccountIdentifier": "cash",
"formData": [
{
"marker": "order_name",
"value": "Ivan",
"type": "string"
}
],
"products": [
{
"productId": 2957,
"quantity": 2
}
],
"currency": "USD",
"totalSum": 285,
"bonusApplied": 0,
"totalDue": 285,
"discountConfig": {
"orderDiscounts": [
{
"id": 2,
"identifier": "personal_discount",
"type": "PERSONAL_DISCOUNT",
"localizeInfos": {
"title": "Personal discount"
},
"startDate": "2026-04-21T18:26:19.815Z",
"endDate": "2028-03-21T19:26:24.741Z",
"discountValue": {
"value": 15,
"maxAmount": null,
"discountType": "FIXED_AMOUNT",
"applicability": "TO_ORDER"
},
"exclusions": null,
"position": 1,
"conditionLogic": "AND",
"gifts": [],
"userGroups": null,
"userExclusions": null,
"conditions": [],
"coupon": null
}
],
"productDiscounts": [],
"coupon": null,
"settings": {
"allowStacking": true,
"maxDiscountValue": 50,
"allowGiftStacking": false,
"maxBonusPaymentPercent": null,
"minBonusAmount": null,
"minOrderAmountForBonus": null,
"giftRefundPolicy": "KEEP_GIFT"
},
"additionalDiscountsMarkers": [],
"totalRaw": 300,
"totalSumWithDiscount": 285,
"excludedGiftProductIds": [],
"bonus": {
"availableBalance": 0,
"maxBonusDiscount": 0,
"minBonusAmount": null,
"minOrderAmountForBonus": null,
"bonusApplied": 0
},
"bonusApplied": 0,
"totalDue": 285
},
"statusIdentifier": "inProgress",
"statusLocalizeInfos": {
"title": "In progress"
},
"createdDate": "2026-06-12T18:05:22.470Z"
}
Esquema de resposta
Esquema: IBaseOrdersEntity
id: number
Identificador do objeto.
exemplo: 1
formIdentifier: string
Identificador textual do formulário.
exemplo: "bar-orders-form"
paymentAccountIdentifier: string
Identificador textual do pagamento do pedido.
exemplo: "payment-1"
formData: IOrdersFormData[]
Dados submetidos pelo formulário vinculado ao armazenamento de pedidos.
exemplo:
[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]
formData.marker: string
Marcador do campo do formulário.
exemplo: "name_1"
formData.type: string
Tipo de valor.
exemplo: "string"
formData.value: string
Valor.
exemplo: "Nome"
products: IOrderProductsData[]
Array de produtos adicionados ao pedido.
exemplo:
[
{
"id": 2957,
"title": "Cosmo",
"sku": null,
"previewImage": null,
"price": 150,
"quantity": 2
}
]
products.productId: number
Identificador do produto.
exemplo: 1
products.quantity: number
Quantidade do produto.
exemplo: 2
currency: string
Moeda usada para pagar o pedido.
exemplo: "USD"
totalSum: string
Valor total do pedido.
exemplo: "150"
createdDate: string
Data de criação do pedido.
exemplo: "2023-10-01T12:00:00Z"
statusIdentifier: string
Identificador textual do objeto de status do pedido (se não definido, o status padrão será atribuído).
exemplo: "status-1"
couponCode: string
**
discountConfig: IOrderDiscountConfig
Configuração de desconto resolvida aplicada ao pedido.
discountConfig.bonus: IOrderDiscountBonus | null
Resultado do cálculo de bônus, nulo quando bônus não são usados, ou omitido completamente quando o pedido não tem contexto de bônus.
discountConfig.coupon: unknown | null
Cupom resolvido, ou nulo quando nenhum cupom é aplicado.
discountConfig.orderDiscounts: unknown[]
Descontos a nível de pedido que foram correspondidos e aplicados.
discountConfig.productDiscounts: unknown[]
Descontos a nível de produto que foram correspondidos e aplicados.
discountConfig.settings: IOrderDiscountSettings
Configurações de empilhamento e limite usadas durante o cálculo.
discountConfig.additionalDiscountsMarkers: string[]
Marcadores de descontos extras solicitados pelo cliente (omitidos nas respostas de pré-visualização).
discountConfig.bonusApplied: number
Valor do bônus aplicado ao pedido (omitido nas respostas de pré-visualização).
exemplo: 0
discountConfig.excludedGiftProductIds: string[]
IDs de produtos excluídos da seleção de presentes (omitidos nas respostas de pré-visualização).
discountConfig.totalDue: number
Valor total devido após descontos e bônus (omitido nas respostas de pré-visualização).
exemplo: 300
discountConfig.totalRaw: number
Valor total antes dos descontos (omitido nas respostas de pré-visualização).
exemplo: 300
discountConfig.totalSumWithDiscount: number
Valor total após descontos, mas antes dos bônus (omitido nas respostas de pré-visualização).
exemplo: 300
bonusAmount: number
Valor do bônus aplicado ao pedido.
bonusApplied: number
Bônus aplicado ao pedido.
totalDue: number
Total devido após bônus.
Exemplos de uso
Passo a passo na documentação:
- Pagamento de pedido — faça um pedido como um usuário autenticado e pague por ele.
- Pedido de ingressos — peça ingressos para eventos de ponta a ponta.
- Pedido de convidado — faça um pedido como um convidado sem registro.
Experimente ao vivo
Execute este método interativamente no sandbox do JS SDK — conecte sua URL do Projeto e Token do App na primeira visita, depois abra:
- Pagamento de pedido — faça um pedido como um usuário autenticado e pague por ele.
- Pedido de ingressos — peça ingressos para eventos de ponta a ponta.
- Pedido de convidado — faça um pedido como um convidado sem registro.