createOrder
Crear un pedido en el almacenamiento de pedidos. 🔐 Este método requiere autorización.
Descripción
El método añadirá el idioma predeterminado al cuerpo de la solicitud. Si deseas cambiar el idioma, simplemente pásalo como segundo argumento. Crea un pedido en el almacenamiento de pedidos especificado. Devuelve una Promesa que se resuelve en un objeto IBaseOrdersEntity.
Orders.createOrder(
marker*,
body*,
langCode
);
Esquema de parámetros
Esquema
marker(requerido): string
Identificador textual del objeto de almacenamiento de pedidos
ejemplo: "order_storage_1"
body(requerido): IOrderData
Objeto para crear un pedido
ejemplo:
{
"formIdentifier": "bar-orders-form",
"paymentAccountIdentifier": "usd-payment",
"formData": {
"marker": "name_1",
"value": "Name",
"type": "string"
},
"products": [
{
"productId": 1,
"quantity": 2
}
]
}
body.formIdentifier(requerido): string
Identificador textual del objeto de formulario vinculado al repositorio de pedidos.
ejemplo: "bar-orders-form"
body.paymentAccountIdentifier(requerido): string
Identificador textual del objeto de pago vinculado al repositorio de pedidos.
ejemplo: "payment-1"
body.formData(requerido): IOrdersFormData | IOrdersFormData[]
Datos del formulario vinculados al repositorio de pedidos.
ejemplo:
[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]
formData.marker(requerido): string
Marcador del campo del formulario.
ejemplo: "name_1"
formData.type(requerido): string
Tipo de valor.
ejemplo: "string"
formData.value(requerido): string
Valor.
ejemplo: "Nombre"
body.products(requerido): IOrderProductData[]
Un array de productos pedidos.
ejemplo: []
products.productId(requerido): number
Identificador del producto.
ejemplo: 1
products.quantity(requerido): number
Cantidad del producto.
ejemplo: 2
products.signedPrice: string
El precio firmado del producto se obtiene junto con los datos del producto cuando signPrice está configurado.
ejemplo: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
body.couponCode: string
Código de cupón.
body.additionalDiscountsMarkers: string[]
Array de marcadores de descuentos adicionales.
body.bonusAmount: number
Cantidad de bonificación a aplicar.
langCode: string
Código de idioma. Predeterminado: "en_US"
ejemplo: "en_US"
🔒
signedPricees el token firmado que lleva el precio bloqueado — devuélvelo cuando crees un pedido. Consulta Precio fijo del producto (signedPrice).
Ejemplos
Ejemplo mínimo
const body = { "formIdentifier": "orderForm", "paymentAccountIdentifier": "cash", "formData": { { "marker": "order_name", "type": "string", "value": "Iván" } }, "products": [ { "productId": 2, "quantity": 2 } ]};
const response = await Orders.createOrder("my-order", body);
Ejemplo con un precio fijo (signedPrice)
Obtén los productos con signPrice configurado en el marcador de tu almacenamiento de pedidos, luego pasa cada token signedPrice devuelto en el pedido para que se respete el precio bloqueado:
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);
Ejemplo de respuesta
{
"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 respuesta
Esquema: IBaseOrdersEntity
id: number
Identificador del objeto.
ejemplo: 1
formIdentifier: string
Identificador textual del formulario.
ejemplo: "bar-orders-form"
paymentAccountIdentifier: string
Identificador textual del pago del pedido.
ejemplo: "payment-1"
formData: IOrdersFormData[]
Datos enviados por el formulario vinculado a la tienda de pedidos.
ejemplo:
[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]
formData.marker: string
Marcador del campo del formulario.
ejemplo: "name_1"
formData.type: string
Tipo de valor.
ejemplo: "string"
formData.value: string
Valor.
ejemplo: "Nombre"
products: IOrderProductsData[]
Array de productos añadidos al pedido.
ejemplo:
[
{
"id": 2957,
"title": "Cosmo",
"sku": null,
"previewImage": null,
"price": 150,
"quantity": 2
}
]
products.productId: number
Identificador del producto.
ejemplo: 1
products.quantity: number
Cantidad del producto.
ejemplo: 2
currency: string
Moneda utilizada para pagar el pedido.
ejemplo: "USD"
totalSum: string
Monto total del pedido.
ejemplo: "150"
createdDate: string
Fecha de creación del pedido.
ejemplo: "2023-10-01T12:00:00Z"
statusIdentifier: string
Identificador textual del objeto de estado del pedido (si no se establece, se asignará el estado predeterminado).
ejemplo: "status-1"
couponCode: string
**
discountConfig: IOrderDiscountConfig
Configuración de descuento resuelta aplicada al pedido.
discountConfig.bonus: IOrderDiscountBonus | null
Resultado del cálculo de bonificación, null cuando no se utilizan bonificaciones, o omitido por completo cuando el pedido no tiene contexto de bonificación.
discountConfig.coupon: unknown | null
Cupón resuelto, o null cuando no se aplica ningún cupón.
discountConfig.orderDiscounts: unknown[]
Descuentos a nivel de pedido que fueron coincidentes y aplicados.
discountConfig.productDiscounts: unknown[]
Descuentos a nivel de producto que fueron coincidentes y aplicados.
discountConfig.settings: IOrderDiscountSettings
Configuraciones de apilamiento y límite utilizadas durante el cálculo.
discountConfig.additionalDiscountsMarkers: string[]
Marcadores de descuentos adicionales solicitados por el cliente (omitidos en las respuestas de vista previa).
discountConfig.bonusApplied: number
Cantidad de bonificación aplicada al pedido (omitida en las respuestas de vista previa).
ejemplo: 0
discountConfig.excludedGiftProductIds: string[]
IDs de productos excluidos de la selección de regalos (omitidos en las respuestas de vista previa).
discountConfig.totalDue: number
Monto total a pagar después de descuentos y bonificaciones (omitido en las respuestas de vista previa).
ejemplo: 300
discountConfig.totalRaw: number
Monto total antes de descuentos (omitido en las respuestas de vista previa).
ejemplo: 300
discountConfig.totalSumWithDiscount: number
Monto total después de descuentos pero antes de bonificaciones (omitido en las respuestas de vista previa).
ejemplo: 300
bonusAmount: number
Cantidad de bonificación aplicada al pedido.
bonusApplied: number
Bonificación aplicada al pedido.
totalDue: number
Total a pagar después de bonificaciones.
Ejemplos de uso
Guías paso a paso en la documentación:
- Pago de pedido — realiza un pedido como usuario autenticado y págalo.
- Pedido de entradas — pide entradas para eventos de principio a fin.
- Pedido de invitado — realiza un pedido como invitado sin registro.
Pruébalo en vivo
Ejecuta este método de forma interactiva en el sandbox del SDK de JS — conecta tu URL de Proyecto y Token de Aplicación en la primera visita, luego abre:
- Pago de pedido — realiza un pedido como usuario autenticado y págalo.
- Pedido de entradas — pide entradas para eventos de principio a fin.
- Pedido de invitado — realiza un pedido como invitado sin registro.