Chuyển đến nội dung chính

updateOrderByMarkerAndId

Sửa đổi đơn hàng trong kho đơn hàng. 🔐 Phương thức này yêu cầu ủy quyền.

Mô tả

Phương thức này cập nhật một đơn hàng duy nhất trong kho đơn hàng được chỉ định theo marker và id của nó. Nó trả về một Promise mà khi hoàn thành sẽ trả về một đối tượng IBaseOrdersEntity với đơn hàng đã được cập nhật.

Orders.updateOrderByMarkerAndId(

marker*, id*, body*, langCode

);

Sơ đồ tham số

Sơ đồ

marker(bắt buộc): string
Định danh văn bản của đối tượng kho đơn hàng
ví dụ: "order_storage_1"

id(bắt buộc): number
ID của đối tượng đơn hàng
ví dụ: 12345

body(bắt buộc): IOrderData
Đối tượng để cập nhật một đơn hàng
ví dụ:

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

body.formIdentifier(bắt buộc): string
Định danh văn bản của đối tượng biểu mẫu liên kết với kho đơn hàng.
ví dụ: "bar-orders-form"

body.paymentAccountIdentifier(bắt buộc): string
Định danh văn bản của đối tượng thanh toán liên kết với kho đơn hàng.
ví dụ: "payment-1"

body.formData(bắt buộc): IOrdersFormData | IOrdersFormData[]
Dữ liệu biểu mẫu liên kết với kho đơn hàng.
ví dụ:

[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]

formData.marker(bắt buộc): string
Đánh dấu của trường biểu mẫu.
ví dụ: "name_1"

formData.type(bắt buộc): string
Loại giá trị.
ví dụ: "string"

formData.value(bắt buộc): string
Giá trị.
ví dụ: "Name"

body.products(bắt buộc): IOrderProductData[]
Mảng các sản phẩm đã đặt hàng.
ví dụ: []

products.productId(bắt buộc): number
Định danh sản phẩm.
ví dụ: 1

products.quantity(bắt buộc): number
Số lượng sản phẩm.
ví dụ: 2

products.signedPrice: string
Giá đã ký của sản phẩm được lấy cùng với dữ liệu sản phẩm khi signPrice được thiết lập.
ví dụ: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

body.couponCode: string
Mã giảm giá.

body.additionalDiscountsMarkers: string[]
Mảng các đánh dấu giảm giá bổ sung.

body.bonusAmount: number
Số tiền thưởng để áp dụng.

langCode: string
Mã ngôn ngữ. Mặc định: "en_US"
ví dụ: "en_US"

🔒 signedPrice là token đã ký mang giá đã khóa — hãy truyền lại khi bạn tạo một đơn hàng. Xem Giá sản phẩm cố định (signedPrice).

Ví dụ

Ví dụ tối thiểu


const body = {
"formIdentifier": "orderForm",
"paymentAccountIdentifier": "cash",
"formData": {
{
"marker": "order_name",
"type": "string",
"value": "Ivan"
}
},
"products": [
{
"productId": 2,
"quantity": 2
}
]
};

const response = await Orders.updateOrderByMarkerAndId("my-order", 1, body);

Ví dụ với giá cố định (signedPrice)

Truyền token signedPrice của mỗi sản phẩm (được lấy khi các sản phẩm được truy xuất với signPrice được thiết lập) để đơn hàng đã cập nhật giữ giá đã khóa:


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

Ví dụ phản hồi

{
"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"
}
}

Sơ đồ phản hồi

Sơ đồ: IBaseOrdersEntity

id: number
Định danh đối tượng.
ví dụ: 1

formIdentifier: string
Định danh văn bản của biểu mẫu.
ví dụ: "bar-orders-form"

paymentAccountIdentifier: string
Định danh văn bản của thanh toán đơn hàng.
ví dụ: "payment-1"

formData: IOrdersFormData[]
Dữ liệu được gửi bởi biểu mẫu liên kết với kho đơn hàng.
ví dụ:

[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]

formData.marker: string
Đánh dấu của trường biểu mẫu.
ví dụ: "name_1"

formData.type: string
Loại giá trị.
ví dụ: "string"

formData.value: string
Giá trị.
ví dụ: "Name"

products: IOrderProductsData[]
Mảng các sản phẩm đã được thêm vào đơn hàng.
ví dụ:

[
{
"id": 2957,
"title": "Cosmo",
"sku": null,
"previewImage": null,
"price": 150,
"quantity": 2
}
]

products.productId: number
Định danh sản phẩm.
ví dụ: 1

products.quantity: number
Số lượng sản phẩm.
ví dụ: 2

currency: string
Tiền tệ được sử dụng để thanh toán cho đơn hàng.
ví dụ: "USD"

totalSum: string
Tổng số tiền của đơn hàng.
ví dụ: "150"

createdDate: string
Ngày tạo đơn hàng.
ví dụ: "2023-10-01T12:00:00Z"

statusIdentifier: string
Định danh văn bản của trạng thái đơn hàng (nếu không được thiết lập, trạng thái mặc định sẽ được gán).
ví dụ: "status-1"

couponCode: string
**

discountConfig: IOrderDiscountConfig
Cấu hình giảm giá đã được áp dụng cho đơn hàng.

discountConfig.bonus: IOrderDiscountBonus | null
Kết quả tính toán bonus, null khi không sử dụng bonus, hoặc bị bỏ qua hoàn toàn khi đơn hàng không có ngữ cảnh bonus.

discountConfig.coupon: unknown | null
Coupon đã được giải quyết, hoặc null khi không có coupon nào được áp dụng.

discountConfig.orderDiscounts: unknown[]
Giảm giá cấp đơn hàng đã được khớp và áp dụng.

discountConfig.productDiscounts: unknown[]
Giảm giá cấp sản phẩm đã được khớp và áp dụng.

discountConfig.settings: IOrderDiscountSettings
Cài đặt xếp chồng và giới hạn được sử dụng trong quá trình tính toán.

discountConfig.additionalDiscountsMarkers: string[]
Các đánh dấu giảm giá bổ sung được yêu cầu bởi khách hàng (bị bỏ qua trong các phản hồi xem trước).

discountConfig.bonusApplied: number
Số tiền thưởng đã áp dụng cho đơn hàng (bị bỏ qua trong các phản hồi xem trước).
ví dụ: 0

discountConfig.excludedGiftProductIds: string[]
ID sản phẩm bị loại trừ khỏi lựa chọn quà tặng (bị bỏ qua trong các phản hồi xem trước).

discountConfig.totalDue: number
Tổng số tiền phải trả sau khi giảm giá và bonus (bị bỏ qua trong các phản hồi xem trước).
ví dụ: 300

discountConfig.totalRaw: number
Tổng số tiền trước khi giảm giá (bị bỏ qua trong các phản hồi xem trước).
ví dụ: 300

discountConfig.totalSumWithDiscount: number
Tổng số tiền sau khi giảm giá nhưng trước khi áp dụng bonus (bị bỏ qua trong các phản hồi xem trước).
ví dụ: 300

bonusAmount: number
Số tiền thưởng đã áp dụng cho đơn hàng.

bonusApplied: number
Số tiền thưởng đã áp dụng cho đơn hàng.

totalDue: number
Tổng số tiền phải trả sau khi áp dụng bonus.