updateOrderByMarkerAndId
تعديل الطلب في تخزين الطلبات. 🔐 تتطلب هذه الطريقة التفويض.
الوصف
تقوم هذه الطريقة بتحديث طلب واحد داخل تخزين الطلبات المحدد بواسطة العلامة و id. تعيد Promise التي تحل إلى كائن IBaseOrdersEntity مع الطلب المحدث.
الطلبات.updateOrderByMarkerAndId(
marker*,
id*,
body*,
langCode
);
مخطط المعلمات
المخطط
marker(مطلوب): string
المعرف النصي لكائن تخزين الطلبات
مثال: "order_storage_1"
id(مطلوب): number
معرف كائن الطلب
مثال: 12345
body(مطلوب): IOrderData
كائن لتحديث الطلب
مثال:
{
"formIdentifier": "bar-orders-form",
"paymentAccountIdentifier": "usd-payment",
"formData": {
"marker": "name_1",
"value": "Name",
"type": "string"
},
"products": [
{
"productId": 1,
"quantity": 2
}
],
"currency": "USD"
}
body.formIdentifier(مطلوب): string
المعرف النصي لكائن النموذج المرتبط بمستودع الطلبات.
مثال: "bar-orders-form"
body.paymentAccountIdentifier(مطلوب): string
المعرف النصي لكائن الدفع المرتبط بمستودع الطلبات.
مثال: "payment-1"
body.formData(مطلوب): IOrdersFormData | IOrdersFormData[]
بيانات النموذج المرتبطة بمستودع الطلبات.
مثال:
[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]
formData.marker(مطلوب): string
علامة حقل النموذج.
مثال: "name_1"
formData.type(مطلوب): string
نوع القيمة.
مثال: "string"
formData.value(مطلوب): string
القيمة.
مثال: "Name"
body.products(مطلوب): IOrderProductData[]
مصفوفة من المنتجات المطلوبة.
مثال: []
products.productId(مطلوب): number
معرف المنتج.
مثال: 1
products.quantity(مطلوب): number
كمية المنتج.
مثال: 2
products.signedPrice: string
سعر المنتج الموقّع يتم الحصول عليه مع بيانات المنتج عندما يتم تعيين signPrice.
مثال: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
body.couponCode: string
رمز القسيمة.
body.additionalDiscountsMarkers: string[]
مصفوفة من علامات الخصم الإضافية.
body.bonusAmount: number
مبلغ المكافأة للتطبيق.
langCode: string
رمز اللغة. الافتراضي: "en_US"
مثال: "en_US"
🔒
signedPriceهو الرمز الموقّع الذي يحمل السعر المقفل — أعده عند إنشاء الطلب. انظر سعر المنتج الثابت (signedPrice).
أمثلة
مثال بسيط
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);
مثال مع سعر ثابت (signedPrice)
مرر كل رمز signedPrice للمنتجات (الذي تم الحصول عليه عند جلب المنتجات مع تعيين signPrice) بحيث يحتفظ الطلب المحدث بالسعر المقفل:
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);
استجابة المثال
{
"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"
}
}
مخطط الاستجابة
المخطط: IBaseOrdersEntity
id: number
معرف الكائن.
مثال: 1
formIdentifier: string
المعرف النصي للنموذج.
مثال: "bar-orders-form"
paymentAccountIdentifier: string
المعرف النصي لدفع الطلب.
مثال: "payment-1"
formData: IOrdersFormData[]
البيانات المقدمة بواسطة النموذج المرتبط بمستودع الطلبات.
مثال:
[
{
"marker": "name_1",
"value": "Name",
"type": "string"
}
]
formData.marker: string
علامة حقل النموذج.
مثال: "name_1"
formData.type: string
نوع القيمة.
مثال: "string"
formData.value: string
القيمة.
مثال: "Name"
products: IOrderProductsData[]
مصفوفة من المنتجات المضافة إلى الطلب.
مثال:
[
{
"id": 2957,
"title": "Cosmo",
"sku": null,
"previewImage": null,
"price": 150,
"quantity": 2
}
]
products.productId: number
معرف المنتج.
مثال: 1
products.quantity: number
كمية المنتج.
مثال: 2
currency: string
العملة المستخدمة لدفع الطلب.
مثال: "USD"
totalSum: string
إجمالي مبلغ الطلب.
مثال: "150"
createdDate: string
تاريخ إنشاء الطلب.
مثال: "2023-10-01T12:00:00Z"
statusIdentifier: string
المعرف النصي لكائن حالة الطلب (إذا لم يتم تعيينه، سيتم تعيين حالة افتراضية).
مثال: "status-1"
couponCode: string
**
discountConfig: IOrderDiscountConfig
إعدادات الخصم المحسوبة المطبقة على الطلب.
discountConfig.bonus: IOrderDiscountBonus | null
نتيجة حساب المكافأة، null عندما لا يتم استخدام المكافآت، أو يتم حذفها تمامًا عندما لا يكون للطلب سياق مكافأة.
discountConfig.coupon: unknown | null
القسيمة المحسوبة، أو null عندما لا يتم تطبيق أي قسيمة.
discountConfig.orderDiscounts: unknown[]
خصومات على مستوى الطلب التي تم مطابقتها وتطبيقها.
discountConfig.productDiscounts: unknown[]
خصومات على مستوى المنتج التي تم مطابقتها وتطبيقها.
discountConfig.settings: IOrderDiscountSettings
إعدادات التكديس والحد المستخدمة أثناء الحساب.
discountConfig.additionalDiscountsMarkers: string[]
علامات الخصومات الإضافية المطلوبة من العميل (تم حذفها في استجابات المعاينة).
discountConfig.bonusApplied: number
مبلغ المكافأة المطبق على الطلب (تم حذفه في استجابات المعاينة).
مثال: 0
discountConfig.excludedGiftProductIds: string[]
معرفات المنتجات المستبعدة من اختيار الهدايا (تم حذفها في استجابات المعاينة).
discountConfig.totalDue: number
إجمالي المبلغ المستحق بعد الخصومات والمكافآت (تم حذفه في استجابات المعاينة).
مثال: 300
discountConfig.totalRaw: number
إجمالي المبلغ قبل الخصومات (تم حذفه في استجابات المعاينة).
مثال: 300
discountConfig.totalSumWithDiscount: number
إجمالي المبلغ بعد الخصومات ولكن قبل المكافآت (تم حذفه في استجابات المعاينة).
مثال: 300
bonusAmount: number
مبلغ المكافأة المطبق على الطلب.
bonusApplied: number
المكافأة المطبقة على الطلب.
totalDue: number
الإجمالي المستحق بعد المكافآت.