Saltar al contenido principal

updateOrderByMarkerAndId

Modificación de pedidos en el almacenamiento de pedidos. 🔐 Este método requiere autorización.

Descripción

Este método actualiza un solo pedido dentro del almacenamiento de pedidos especificado por su marcador e id. Devuelve una Promesa que se resuelve en un objeto IBaseOrdersEntity con el pedido actualizado.

Pedidos.updateOrderByMarkerAndId(

marker*, id*, body*, langCode

);

Esquema de parámetros

Esquema

marker(requerido): string
El identificador de texto del objeto de almacenamiento de pedidos
ejemplo: "order_storage_1"

id(requerido): number
ID del objeto de pedido
ejemplo: 12345

body(requerido): IOrderData
Objeto para actualizar un pedido
ejemplo:

{
"formIdentifier": "bar-orders-form",
"paymentAccountIdentifier": "usd-payment",
"formData": {
"marker": "name_1",
"value": "Name",
"type": "string"
},
"products": [
{
"productId": 1,
"quantity": 2
}
],
"currency": "USD"
}

body.formIdentifier(requerido): string
Identificador de texto del objeto de formulario vinculado al repositorio de pedidos.
ejemplo: "bar-orders-form"

body.paymentAccountIdentifier(requerido): string
Identificador de texto 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"

🔒 signedPrice es 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.updateOrderByMarkerAndId("my-order", 1, body);

Ejemplo con un precio fijo (signedPrice)

Pasa el token signedPrice de cada producto (obtenido cuando los productos fueron recuperados con signPrice configurado) para que el pedido actualizado mantenga 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.updateOrderByMarkerAndId("my-order", 1, body);

Ejemplo de respuesta

{
"id": 55,
"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": null,
"bonusApplied": 0,
"totalDue": 285
},
"statusIdentifier": "inProgress",
"statusLocalizeInfos": {
"title": "In progress"
}
}

Esquema de respuesta

Esquema: IBaseOrdersEntity

id: number
Identificador del objeto.
ejemplo: 1

formIdentifier: string
Identificador de texto del formulario.
ejemplo: "bar-orders-form"

paymentAccountIdentifier: string
Identificador de texto 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 de texto 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.