Saltar al contenido principal

updateOrderByMarkerAndId

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

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.

.updateOrderByMarkerAndId(

, , ,

);

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.
ver: Precio fijo del producto
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. Ver Precio fijo del producto (signedPrice).

Ejemplos​

Ejemplo mínimo​


const body = {
,
,
{
,
,
}
},
{
,
}
]
};

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.([], "en_US", {
signPrice: "my-order"
});

const body = {
,
,
],
{
"productId": items[0].,
,
"signedPrice": items[0].
}
]
};

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-payment",
"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: number
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"

statusLocalizeInfos: ILocalizeInfo
Nombre de estado localizado asignado al pedido creado/actualizado.

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