Saltar al contenido principal

createOrder

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

Pedidos.createOrder(

marker*, body*, body.formIdentifier*, body.paymentAccountIdentifier*, body.formData*, formData.marker*, formData.type*, formData.value*, body.products*, products.productId*, products.quantity*, body.couponCode, body.additionalDiscountsMarkers, body.bonusAmount, 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 ordenados.
ejemplo: []

products.productId(requerido): number
Identificador del producto.
ejemplo: 1

products.quantity(requerido): number
Cantidad del producto.
ejemplo: 2

body.couponCode: string
Código de cupón.

body.additionalDiscountsMarkers: string[]
Array de marcadores de descuento adicionales.

body.bonusAmount: number
Monto de bonificación a aplicar.

langCode: string
Código de idioma. Predeterminado: "en_US"
ejemplo: "en_US"

Ejemplos

Ejemplo 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);

Ejemplo de respuesta

{
"id": 551,
"formIdentifier": "orderForm",
"paymentAccountIdentifier": "cash",
"formData": [
{
"marker": "order_name",
"value": "Ivan",
"type": "string"
}
],
"products": [
{
"productId": 2957,
"quantity": 2
}
],
"currency": "",
"totalSum": 300,
"bonusApplied": 0,
"totalDue": 300,
"discountConfig": {
"orderDiscounts": [],
"productDiscounts": [],
"coupon": null,
"settings": {
"allowStacking": false,
"maxDiscountValue": null,
"allowGiftStacking": false,
"maxBonusPaymentPercent": null,
"minBonusAmount": null,
"minOrderAmountForBonus": null,
"giftRefundPolicy": "KEEP_GIFT"
},
"additionalDiscountsMarkers": [],
"totalRaw": 300,
"totalSumWithDiscount": 300,
"excludedGiftProductIds": [],
"bonus": {
"availableBalance": 0,
"maxBonusDiscount": 0,
"minBonusAmount": null,
"minOrderAmountForBonus": null,
"bonusApplied": 0
},
"bonusApplied": 0,
"totalDue": 300
},
"createdDate": "2026-04-15T14:20:29.645Z"
}

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 al almacenamiento 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: number
Monto total del pedido.
ejemplo: NaN

createdDate: string
Fecha de creación del pedido.
ejemplo: "2023-10-01T12:00:00Z"

statusIdentifier: string
Identificador textual del 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, o null cuando no se utilizan bonificaciones.

bonus.availableBalance: number
Saldo de bonificación del usuario disponible en el momento del cálculo.
ejemplo: 0

bonus.bonusApplied: number
Monto de bonificación realmente aplicado a este pedido.
ejemplo: 0

bonus.maxBonusDiscount: number
Monto máximo de bonificación permitido para gastar en este pedido.
ejemplo: 0

bonus.minBonusAmount: number | null
Monto mínimo de bonificación requerido para usar bonificaciones, o null si no hay umbral.
ejemplo: null

bonus.minOrderAmountForBonus: number | null
Monto mínimo del pedido requerido para aplicar bonificaciones, o null si no hay umbral.
ejemplo: null

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.

settings.allowGiftStacking: boolean
Si se pueden combinar múltiples descuentos de regalo.
ejemplo: false

settings.allowStacking: boolean
Si se pueden combinar múltiples descuentos no de regalo.
ejemplo: false

settings.maxDiscountValue: number | null
Límite máximo en el valor total del descuento, o null si no tiene límite.
ejemplo: null

discountConfig.additionalDiscountsMarkers: string[]
Marcadores de descuentos adicionales solicitados por el cliente (omitidos en las respuestas de vista previa).

discountConfig.bonusApplied: number
Monto de bonificación aplicado al pedido (omitido 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
Monto de bonificación aplicado al pedido.

bonusApplied: number
Bonificación aplicada al pedido.

totalDue: number
Monto total a pagar después de bonificaciones.