API การกําหนดราคาพาณิชย์
บทความนี้จะอธิบาย API การกำหนดราคาต่างๆ ที่ให้ไว้โดยกลไกจัดการการกำหนดราคาของ Microsoft Dynamics 365 Commerce
กลไกจัดการการกำหนดราคาของ Dynamics 365 Commerce มี Retail Server API ต่อไปนี้ที่แอปพลิเคชันภายนอกสามารถใช้สนับสนุนสถานการณ์การกําหนดราคาต่างๆ ได้
- GetActivePrices – API นี้จะได้รับราคาที่คำนวณได้ของผลิตภัณฑ์ รวมทั้งส่วนลดแบบง่าย
- CalculateSalesDocument – API นี้จะคำนวณราคาและส่วนลดต่อผลิตภัณฑ์ที่ปริมาณที่มอบ ถ้าซื้อพร้อมกัน
- GetAvailablePromotions – API นี้จะมีส่วนลดที่ใช้ได้กับผลิตภัณฑ์ในรถเข็น
- AddCoupons – API นี้เพิ่มคูปองลงในรถเข็น
- RemoveCoupons – API นี้จะลบคูปองออกจากรถเข็น
หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้ API ของ Retail Server ในแอปพลิเคชันภายนอก โปรดดูที่ การใช้ API ของ Retail Server ในแอปพลิเคชันภายนอก
GetActivePrices
API GetActivePrices มีการใช้งานใน Commerce รุ่น 10.0.4 API นี้จะได้รับราคาที่คํานวณได้ของผลิตภัณฑ์ รวมทั้งส่วนลดแบบง่าย ซึ่งไม่ได้คํานวณส่วนลดต่อสินค้าหลายรายการ และสันนิษฐานว่าผลิตภัณฑ์แต่ละรายการในคำขอ API มีปริมาณเป็น 1 API นี้ยังสามารถใช้รายการผลิตภัณฑ์เป็นอินพุทและสอบถามราคาของผลิตภัณฑ์แต่ละรายการเป็นกลุ่ม
API GetActivePrices สนับสนุนบทบาทการค้าของ พนักงาน ลูกค้า การไม่ระบุชื่อ และ แอปพลิเคชัน
กรณีการใช้หลัก API GetActivePrices คือหน้ารายละเอียดผลิตภัณฑ์ (PDP) ซึ่งผู้ค้าปลีกแสดงราคาที่ดีที่สุดให้กับผลิตภัณฑ์ รวมถึงส่วนลดใดๆ ที่มีผลบังคับ
หมายเหตุ
หากคุณเห็นผลิตภัณฑ์ที่ส่งคืนสำหรับการเรียก GetActivePrices
น้อยลง คุณสามารถปฏิบัติตาม ตัวตรวจสอบการกำหนดค่าการบริหารสินค้าของช่องทาง เพื่อตรวจสอบการกำหนดค่าการบริหารสินค้าของคุณ
ตารางต่อไปนี้แสดงพารามิเตอร์อินพุทของ API GetActivePrices
ชื่อ | ชื่อย่อย | ชนิดข้อมูล | จำเป็น/ไม่จำเป็นต้องระบุ | คำอธิบาย |
---|---|---|---|---|
projectDomain | ProjectionDomain | ต้องระบุ | ||
ChannelId | ยาว | จำเป็นต้องระบุ | ||
CatalogId | ยาว | จำเป็นต้องระบุ | ||
productIds | IEnumerable<long> | จำเป็นต้องระบุ | รายการของผลิตภัณฑ์ที่จะคํานวณราคา | |
activeDate | DateTimeOffset | ต้องระบุ | วันที่ที่คํานวณราคา | |
customerId | สตริง | ไม่จำเป็นต้องระบุ | หมายเลขรหัสลูกค้า | |
affiliationLoyaltyTiers | IEnumerable<AffiliationLoyaltyTier> | ไม่จำเป็นต้องระบุ | ระดับการเข้าร่วมและความภักดี | |
AffiliationId | ยาว | ต้องระบุ | รหัสสังกัด | |
LoyaltyTierId | ยาว | ไม่จำเป็นต้องระบุ | รหัสระดับสมาชิก | |
includeSimpleDiscountsInContextualPrice | ค่าบูลีน | ไม่จำเป็นต้องระบุ | ตั้งค่าพารามิเตอร์นี้เป็น จริง เพื่อรวมส่วนลดแบบง่ายในการคํานวณการกําหนดราคา ค่าเริ่มต้นคือ เท็จ | |
includeVariantPriceRange | ค่าบูลีน | ไม่จำเป็นต้องระบุ | ตั้งค่าพารามิเตอร์นี้เป็น จริง เพื่อให้ได้ราคาต่ำสุดและสูงสุดระหว่างผลิตภัณฑ์ย่อยทั้งหมดของผลิตภัณฑ์หลัก ค่าเริ่มต้นคือ เท็จ | |
includeAttainablePricesAndDiscounts | ค่าบูลีน | ไม่จำเป็นต้องระบุ | ตั้งค่าพารามิเตอร์นี้เป็น จริง เพื่อให้ได้ราคาและส่วนลดที่บรรลุได้ ค่าเริ่มต้นคือ เท็จ |
เนื้อหาการร้องขอตัวอย่าง
{
"projectDomain":
{
"ChannelId": 5637144592,
"CatalogId": 0
},
"productIds":
[
68719489871
],
"activeDate": "2022-06-20T14:40:05.873+08:00",
"includeSimpleDiscountsInContextualPrice": true,
"includeVariantPriceRange": false
}
ตัวอย่างการตอบเนื้อหา
{
"value":
[
{
"ProductId": 68719489871,
"ListingId": 68719489871,
"BasePrice": 0,
"TradeAgreementPrice": 0,
"AdjustedPrice": 0,
"MaxVariantPrice": 0,
"MinVariantPrice": 0,
"CustomerContextualPrice": 0,
"DiscountAmount": 0,
"CurrencyCode": "USD",
"ItemId": "82000",
"InventoryDimensionId": null,
"UnitOfMeasure": "ea",
"ValidFrom": "2022-06-20T01:40:05.873-05:00",
"ProductLookupId": 0,
"ChannelId": 5637144592,
"CatalogId": 0,
"SalesAgreementPrice": 0,
"PriceSourceTypeValue": 1,
"DiscountLines": [],
"AttainablePriceLines": [],
}
]
}
ใช้ PriceLookupContext
คลาส PriceLookupContext มีการใช้งานใน Commerce รุ่นเวอร์ชัน 10.0.37 คลาสนี้มีเกณฑ์การค้นหาทั้งหมดสำหรับ GetActivePrices API และแทนที่พารามิเตอร์ก่อนหน้าของ productIds, activeDate, customerId และ affiliationLoyaltyTiers คลาสนี้ยังมีคุณสมบัติเพิ่มเติมที่นักพัฒนาสามารถใช้กรองข้อมูลส่วนลดในระหว่างการค้นหาส่วนลดด้วย
GetActivePrices API สามารถยอมรับพารามิเตอร์ก่อนหน้าหรือพารามิเตอร์ใหม่ที่เชื่อมโยงกับคลาส PriceLookupContext ตามความต้องการขององค์กรของคุณ
พารามิเตอร์อินพุท
ชื่อ | ชื่อย่อย | ชนิดข้อมูล | จำเป็น/ไม่จำเป็นต้องระบุ | คำอธิบาย |
---|---|---|---|---|
projectDomain | ProjectionDomain | ต้องใช้ | ||
ChannelId | ยาว | ต้องใช้ | ||
CatalogId | ยาว | ต้องใช้ | ||
priceLookupContext | PriceLookupContext | ต้องใช้ | ||
HeaderContext | PriceLookupHeaderContext | ต้องใช้ | มี CustomerAccountNumber, AffiliationLoyaltyTierLines และ SalesOrderProperties | |
LineContexts | IEnumerable<PriceLookupLineContext> | ต้องใช้ | มี ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId และ SalesLineProperties | |
includeSimpleDiscountsInContextualPrice | ค่าบูลีน | ไม่บังคับ | ตั้งค่าพารามิเตอร์นี้เป็น จริง เพื่อรวมส่วนลดแบบง่ายในการคํานวณการกําหนดราคา ค่าเริ่มต้นคือ เท็จ | |
includeVariantPriceRange | ค่าบูลีน | ไม่จำเป็นต้องระบุ | ตั้งค่าพารามิเตอร์นี้เป็น จริง เพื่อให้ได้ราคาต่ำสุดและสูงสุดระหว่างผลิตภัณฑ์ย่อยทั้งหมดของผลิตภัณฑ์หลัก ค่าเริ่มต้นคือ เท็จ | |
includeAttainablePricesAndDiscounts | ค่าบูลีน | ไม่จำเป็นต้องระบุ | ตั้งค่าพารามิเตอร์นี้เป็น จริง เพื่อให้ได้ราคาและส่วนลดที่บรรลุได้ ค่าเริ่มต้นคือ เท็จ |
สำหรับข้อมูลเพิ่มเติม โปรดดู PriceLookupContext
CalculateSalesDocument
API CalculateSalesDocument มีการใช้งานใน Commerce รุ่น 10.0.25 API นี้คํานวณราคาและส่วนลดของผลิตภัณฑ์ในปริมาณที่กำหนด หากมีการซื้อพร้อมกันในใบสั่ง การคํานวณการกําหนดราคาที่อยู่หลัง API ของ CalculateSalesDocument จะพิจารณาทั้งส่วนลดต่อรายการสินค้าเดียวและส่วนลดต่อรายการสินค้าหลายบรรทัด
กรณีการใช้หลักใน API ของ CalculateSalesDocument คือการคํานวณการกําหนดราคาในสถานการณ์ที่บริบทรถเข็นทั้งหมดจะไม่ยังคงอยู่ (เช่น ใบเสนอราคาขาย) สถานการณ์สมทบในการขายหน้าร้าน (POS) และพาณิชย์ e-commerce ยังสามารถได้รับประโยชน์จากกรณีการใช้งานนี้ด้วย ราคารวมที่ต่ำกว่าเมื่อมีการคํานวณสินค้าในรถเข็นเป็นชุด (ตัวอย่างเช่น เพื่อแยกกลุ่ม ผลิตภัณฑ์ที่เชื่อมโยงหรือผลิตภัณฑ์ที่แนะนำ หรือผลิตภัณฑ์ที่แนะนำซึ่งถูกเพิ่มลงในรถเข็นแล้ว) อาจออกลูกค้าใหม่เพื่อเพิ่มผลิตภัณฑ์ลงในรถเข็น
รูปแบบข้อมูลของทั้งคำขอและการตอบสนองของ API CalculateSalesDocument คือ รถเข็น อย่างไรก็ตาม ในบริบทของ API นี้ แบบโมเดลข้อมูลจะตั้งชื่อเป็น SalesDocument เนื่องจากคุณสมบัติส่วนใหญ่จะเป็นตัวเลือก และมีเพียงสองสามอย่างเท่านั้นที่มีผลกระทบต่อการคํานวณการกําหนดราคา ฟิลด์ที่เกี่ยวข้องกับการกําหนดราคาเท่านั้นจะแสดงอยู่ในตารางต่อไปนี้ เราไม่แนะนำให้ฟิลด์อื่นๆ เกี่ยวข้องกับคำขอ API
ขอบเขตของ API CalculateSalesDocument คือเพียงการคํานวณราคาและส่วนลดเท่านั้น ภาษีและค่าธรรมเนียมไม่เกี่ยวข้อง
ตารางต่อไปนี้แสดงพารามิเตอร์อินพุทภายในออบเจ็กต์ที่ชื่อ salesDocument
ชื่อ | ชื่อย่อย | ชนิดข้อมูล | จำเป็น/ไม่จำเป็นต้องระบุ | คำอธิบาย |
---|---|---|---|---|
รหัส | สตริง | ต้องใช้ | รหัสของเอกสารการขาย | |
CartLines | IList<CartLine> | ไม่จำเป็นต้องระบุ | รายการของบรรทัดที่จะคํานวณราคาและส่วนลด | |
รหัสผลิตภัณฑ์ | ยาว | ต้องใช้ในขอบเขตของ CartLine | รหัสเรกคอร์ดผลิตภัณฑ์ | |
ItemId | สตริง | ไม่จำเป็นต้องระบุ | ตัวระบุสินค้า ถ้ามีการระบุค่า ค่าต้องตรงกับค่าของพารามิเตอร์ ProductId | |
InventoryDimensionId | สตริง | ไม่จำเป็นต้องระบุ | ตัวระบุมิติสินค้าคงคลัง หากมีการระบุค่า ชุดค่า ItemId และ InventoryDimensionId ต้องตรงกับค่าของพารามิเตอร์ ProductId | |
ปริมาณ | ทศนิยม | ต้องใช้ในขอบเขตของ CartLine | ปริมาณของสินค้า | |
UnitOfMeasureSymbol | สตริง | ไม่จำเป็นต้องระบุ | หน่วยของผลิตภัณฑ์ ตามค่าเริ่มต้น ถ้าไม่ได้แสดงค่า API จะใช้หน่วยการขายของผลิตภัณฑ์ | |
CustomerId | สตริง | ไม่จำเป็นต้องระบุ | หมายเลขรหัสลูกค้า | |
LoyaltyCardId | สตริง | ไม่จำเป็นต้องระบุ | ตัวระบุบัตรสมาชิก บัญชีลูกค้าใดๆ ที่เชื่อมโยงกับบัตรสมาชิกต้องตรงกับค่าของพารามิเตอร์ CustomerId (ถ้ามีให้ไว้) ไม่พิจารณาบัตรสมาชิกถ้าไม่พบหรือสถานะบัตรสมาชิก ถูกบล็อค | |
AffiliationLines | IList<AffiliationLoyaltyTier> | ไม่จำเป็นต้องระบุ | ระดับการเข้าร่วมบัตรสมาชิก หากมีค่า CustomerId และ/หรือ LoyaltyCardId รายการระดับสมาชิกที่เกี่ยวข้องถูกรวมกับรายการที่ระบุในค่า AffiliationLines | |
AffiliationId | ยาว | ต้องใช้ในขอบเขตของ AffiliationLoyaltyTier | รหัสเรกคอร์ดสังกัด | |
LoyaltyTierId | ยาว | ต้องใช้ในขอบเขตของ AffiliationLoyaltyTier | รหัสเรกคอร์ดระดับสมาชิก | |
AffiliationTypeValue | int | ต้องใช้ในขอบเขตของ AffiliationLoyaltyTier | ค่าที่ระบุว่ารายการสังกัดเป็นชนิด ทั่วไป (0) หรือชนิด สมาชิก (1) ถ้าพารามิเตอร์ถูกตั้งค่าเป็น 0 API จะรับค่า AffiliationId เป็นตัวระบุและละเว้นค่า LoyaltyTierId ถ้าพารามิเตอร์ถูกตั้งค่าเป็น 1 API จะรับค่า LoyaltyTierId เป็นตัวระบุและละเว้นค่า AffiliationId | |
ReasonCodeLines | Collection<ReasonCodeLine> | ต้องใช้ในขอบเขตของ AffiliationLoyaltyTier | รายการรหัสเหตุผล พารามิเตอร์นี้จะไม่มีผลกระทบต่อการคํานวณการกําหนดราคา แต่เป็นพารามิเตอร์ที่บังคับโดยเป็นส่วนหนึ่งของออบเจ็กต์ AffiliationLoyaltyTier | |
CustomerId | สตริง | ต้องใช้ในขอบเขตของ AffiliationLoyaltyTier | หมายเลขรหัสลูกค้า | |
คูปอง | IList<Coupon> | ไม่จำเป็นต้องระบุ | คูปองที่ใช้ไม่ได้ (ไม่ได้ใช้งาน หมดอายุ หรือหาไม่พบ) ไม่ได้รับการพิจารณาในการคํานวณการกําหนดราคา | |
รหัส | สตริง | ต้องใช้ในขอบเขตของ Coupon | รหัสคูปอง | |
CodeId | สตริง | ไม่จำเป็นต้องระบุ | ตัวระบุรหัสคูปอง ถ้ามีการระบุค่า ค่าต้องตรงกับค่าของพารามิเตอร์ Code | |
DiscountOfferId | สตริง | ไม่จำเป็นต้องระบุ | รหัสส่วนลด ถ้ามีการระบุค่า ค่าต้องตรงกับค่าของพารามิเตอร์ Code |
เนื้อหาการร้องขอตัวอย่าง
{
"salesDocument":
{
"Id": "CalculateSalesDocument",
"CartLines":
[
{
"ProductId": 68719491408,
"ItemId": "91003",
"InventoryDimensionId": "",
"Quantity": 1,
"UnitOfMeasureSymbol": "ea"
},
{
"ProductId": 68719493014,
"Quantity": 2,
"UnitOfMeasureSymbol": "ea"
}
],
"CustomerId": "3003",
"AffiliationLines":
[
{
"AffiliationId": 68719476742,
"LoyaltyTierId": 0,
"AffiliationTypeValue": 0,
"ReasonCodeLines": [],
"CustomerId": null
}
],
"LoyaltyCardId": "55103",
"Coupons":
[
{
"CodeId": "CODE-0005",
"Code": "CPN0004",
"DiscountOfferId": "ST100077"
}
]
}
}
ออบเจ็กต์รถเข็นทั้งหมดจะถูกส่งคืนเป็นเนื้อหาการตอบสนอง ในการตรวจสอบราคาและส่วนลด คุณควรโฟกัสที่ฟิลด์ในตารางต่อไปนี้
ชื่อ | ชื่อย่อย | ชนิดข้อมูล | คำอธิบาย |
---|---|---|---|
NetPrice | ทศนิยม | ราคาสุทธิของเอกสารการขายทั้งหมดก่อนที่จะใช้ส่วนลด | |
DiscountAmount | ทศนิยม | ยอดส่วนลดรวมของเอกสารการขายทั้งหมด | |
TotalAmount | ทศนิยม | ยอดรวมของเอกสารการขายทั้งหมด | |
CartLines | IList<CartLine> | บรรทัดที่คํานวณได้ที่รวมรายละเอียดราคาและส่วนลด | |
ราคา | ทศนิยม | ราคาต่อหน่วยของผลิตภัณฑ์ | |
NetPrice | ทศนิยม | ราคาสุทธิของรายการก่อนที่จะใช้ส่วนลด (= ราคา × ปริมาณ) | |
DiscountAmount | ทศนิยม | ยอดส่วนลด | |
TotalAmount | ทศนิยม | ผลลัพธ์การกําหนดราคารวมสุดท้ายของรายการ | |
PriceLines | IList<PriceLine> | รายละเอียดราคา รวมทั้งแหล่งที่มาของราคา (ราคาพื้นฐาน การปรับปรุงราคา หรือข้อตกลงทางการค้า) และยอดเงิน | |
DiscountLines | IList<DiscountLine> | รายละเอียดส่วนลด |
GetAvailablePromotions
มี GetAvailablePromotions API ที่คล้ายกันสองรายการ:
- รถเข็น/GetAvailablePromotions ยอมรับรายการรหัสรายการรถเข็นเป็นพารามิเตอร์
- GetAvailablePromotions ยอมรับออบเจ็กต์ DiscountsSearchCriteria เป็นพารามิเตอร์
Carts/GetAvailablePromotions
รถเข็นที่มีรายการรถเข็นหลายรายการ Carts/GetAvailablePromotions API จะส่งคืนส่วนลดที่เกี่ยวข้องทั้งหมดต่อรายการรถเข็น
กรณีการใช้งานหลักใน Carts/GetAvailablePromotions API คือหน้ารถเข็นที่ผู้ค้าปลีกใช้ส่วนลดหรือคูปองที่มีอยู่ของรถเข็นปัจจุบัน
ตารางต่อไปนี้แสดงรายการพารามิเตอร์อินพุตของ Carts/GetAvailablePromotions API
ชื่อ | ชนิดข้อมูล | จำเป็น/ไม่จำเป็นต้องระบุ | คำอธิบาย |
---|---|---|---|
คีย์ | สตริง | จำเป็นต้องระบุ | รหัสรถเข็น |
cartLineIds | IEnumerable<string> | ไม่จำเป็นต้องระบุ | ตั้งค่าพารามิเตอร์เพื่อส่งคืนส่วนลดต่อรายการในรถเข็นที่เลือกเท่านั้น |
ตัวอย่างการตอบเนื้อหา
{
"value":
[
{
"LineId": "f495ffa507bc4f63a47a409cd8713dd7",
"Promotion": {
"OfferId": "ST100012",
"OfferName": "Loyalty 5% off over $100",
"PeriodicDiscountTypeValue": 4,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": null,
"AdditionalRestrictions": null,
"Description": "All loyalty members get 5% with transaction total above $10 unless some exclusive or best price discounts are already applied on the transaction",
"ValidFromDate": "2022-06-20T06:52:56.2460219Z",
"ValidToDate": "2022-06-20T06:52:56.2460224Z",
"CouponCodes": [],
"ValidationPeriod": null
}
}
]
}
GetAvailablePromotions
GetAvailablePromotions API ส่งคืนส่วนลดที่ใช้ได้ทั้งหมดสำหรับช่องทางที่กำหนด
กรณีการใช้งานหลักใน GetAvailablePromotions API คือหน้า "ส่วนลดทั้งหมด" ที่ผู้ค้าปลีกแสดงส่วนลดสำหรับช่องทางปัจจุบัน
ตารางต่อไปนี้แสดงรายการพารามิเตอร์อินพุตของ GetAvailablePromotions API
ชื่อ | ชื่อย่อย | ชนิดข้อมูล | จำเป็น/ไม่จำเป็นต้องระบุ | คำอธิบาย |
---|---|---|---|---|
searchCriteria | DiscountsSearchCriteria | จำเป็น | ||
ChannelId | ยาว | จำเป็น | ||
คำสำคัญ | สตริง | ไม่จำเป็นต้องระบุ | ||
IsDiscountCodeRequired | ค่าบูลีน | ไม่จำเป็นต้องระบุ | ระบุว่าจำเป็นต้องระบุรหัสคูปองหรือไม่ ถ้ามีการส่งเป็นไม่มีค่า ส่วนลดทั้งหมดจะถูกดึงข้อมูล โดยไม่พิจารณาถึงความต้องการรหัสคูปอง | |
StartDate | DateTimeOffset | ต้องใช้ | วันที่เริ่มต้น (รวม) | |
EndDate | DateTimeOffset | ต้องใช้ | วันที่สิ้นสุด (รวม) |
เนื้อหาการร้องขอตัวอย่าง
{
"searchCriteria": {
"ChannelId": 5637144592,
"StartDate": "1900-01-01T00:00:00Z",
"EndDate": "2154-12-31T00:00:00Z"
}
}
ตัวอย่างการตอบเนื้อหา
{
"@odata.context": "https://usnconeboxax1ret.cloud.onebox.dynamics.com/Commerce/$metadata#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.Promotion)",
"value": [
{
"OfferId": "ST100024",
"OfferName": "Weekly ad",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": true,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100019",
"OfferName": "Take 20 off anything",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": true,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100015",
"OfferName": "Watches",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100012",
"OfferName": "Loyalty 5% off over $100",
"PeriodicDiscountTypeValue": 4,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "All loyalty members get 5% with transaction total above $10 unless some exclusive or best price discounts are already applied on the transaction",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100011",
"OfferName": "Loyalty 50% off sunglasses",
"PeriodicDiscountTypeValue": 1,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "Gold tier Loyalty customers get 50% on Sunglasses when purchased with a Top, Scarf or Men's Casual shirts",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100009",
"OfferName": "Student discount",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "Students get 10% off for on Jeans and Backpacks",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100004",
"OfferName": "Soccer sale",
"PeriodicDiscountTypeValue": 3,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "Providing you great discounts ranging from 10% to 20% on all branded Soccer balls. We carry a full line of soccer balls. Buy one for yourself or gift it to someone. We promise you that you won't be disappointed. If you don't see something that you are looking for please call us. This offer is only valid at our Retail Malls.",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100003",
"OfferName": "BMX helmet sale",
"PeriodicDiscountTypeValue": 0,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "Get 20% off on all branded youth BMX helmets when you buy two or more. Choose from our great selection of BMX bike helmets from top brands, including ProTec, Giro, Bell and SixSixOne BMX helmets. This offer is only available at our Retail Mall stores",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
}
]
}
AddCoupons
API AddCoupons สนับสนุนการเพิ่มรายการคูปองลงในรถเข็น ส่งคืนออบเจ็กต์รถเข็นหลังจากที่เพิ่มคูปอง
ตารางต่อไปนี้แสดงพารามิเตอร์อินพุทของ API AddCoupons
ชื่อ | ชนิด | จำเป็น/ไม่บังคับ | คำอธิบาย |
---|---|---|---|
คีย์ | สตริง | จำเป็นต้องระบุ | รหัสรถเข็น |
couponCodes | IEnumerable<string> | จำเป็นต้องระบุ | รหัสคูปองที่จะเพิ่มลงในรถเข็น |
isLegacyDiscountCode | ค่าบูลีน | ไม่จำเป็นต้องระบุ | ตั้งค่าพารามิเตอร์นี้เป็น จริง เพื่อบ่งชี้ว่าคูปองเป็นรหัสส่วนลดที่สืบทอดมา ค่าเริ่มต้นคือ เท็จ |
RemoveCoupons
API RemoveCoupons สนับสนุนการลบรายการคูปองออกจากรถเข็น ส่งคืนออบเจ็กต์รถเข็นหลังจากที่ลบคูปอง
ตารางต่อไปนี้แสดงพารามิเตอร์อินพุทของ API RemoveCoupons
ชื่อ | ชนิด | จำเป็น/ไม่บังคับ | คำอธิบาย |
---|---|---|---|
คีย์ | สตริง | จำเป็นต้องระบุ | รหัสรถเข็น |
couponCodes | IEnumerable<string> | ต้องใช้ | รหัสคูปองที่จะลบออกจากรถเข็น |
GetProductPromotions
GetProductPromotions API มีการใช้งานใน Commerce รุ่น 10.0.38 API นี้รับรายการผลิตภัณฑ์ส่งเสริมการขายที่มีส่วนลดของผลิตภัณฑ์ที่กำหนด และยังสามารถใช้รายการรหัสส่วนลดของผลิตภัณฑ์และบริบทการกำหนดราคาเป็นอินพุตและสอบถามผลิตภัณฑ์ส่งเสริมการขายที่เกี่ยวข้อง กรณีการใช้งานหลักสำหรับ GetProductPromotions API อยู่ในหน้าการแสดงรายการผลิตภัณฑ์ ซึ่งผู้ค้าปลีกแสดงผลิตภัณฑ์ที่มีส่วนลด API นี้สนับสนุนทั้งแบบโมเดลการกำหนดราคาตามคุณสมบัติและแบบโมเดลการกำหนดราคาของเดิม
ตารางต่อไปนี้แสดงพารามิเตอร์อินพุตของ GetProductPromotions API
ชื่อ | ชื่อย่อย | ชนิดข้อมูล | จำเป็น/ไม่จำเป็นต้องระบุ | คำอธิบาย |
---|---|---|---|---|
productDiscountIds | IEnumerable<string> | ต้องใช้ | รายการรหัสส่วนลดของผลิตภัณฑ์ที่จะค้นหาผลิตภัณฑ์ส่งเสริมการขาย | |
priceLookupContext | PriceLookupContext | ต้องใช้ | บริบทของการกำหนดราคา | |
activeDate | DateTimeOffset | ไม่บังคับ | วันที่ที่พิจารณาการส่งเสริมการขาย |
ข้อจํากัดและขีดจํากัด:
- สามารถใช้รหัสส่วนลดของผลิตภัณฑ์เป็นอินพุตได้สูงสุดห้ารหัสเท่านั้น
- สนับสนุนเฉพาะส่วนลดแบบง่ายเท่านั้น
เนื้อหาการร้องขอตัวอย่าง
{
{
"productDiscountIds":
[
"ST100009",
"ST100024"
],
"priceLookupContext":
{
"HeaderContext":
{
"AffiliationLoyaltyTierLines":
[
{
"AffiliationId": 5637144577,
"LoyaltyTierId": 0,
"AffiliationTypeValue": 0,
"ReasonCodeLines": [],
"CustomerId": "2001"
}
]
},
"LineContexts": []
},
"activeDate": "2023-08-20T14:40:05.873+08:00",
},
}
ตัวอย่างการตอบเนื้อหา
{
"value":
[
{
"ProductId": 68719489871,
"ProductDiscounts":
[
{
"OfferId": "ST100009",
"OfferName": "Student discount",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": null,
"AdditionalRestrictions": null,
"Description": "Students get 10% off on Jeans and Backpacks",
"ValidFromDate": "1900-01-01T00:00:00.0000000Z",
"ValidToDate": "2154-12-31T00:00:00.0000000Z",
"CouponCodes": [],
"DateValidationTypeValue": 1
},
{
"OfferId": "ST100024",
"OfferName": "Weekly ad",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": null,
"AdditionalRestrictions": null,
"Description": "",
"ValidFromDate": "1900-01-01T00:00:00.0000000Z",
"ValidToDate": "2154-12-31T00:00:00.0000000Z",
"CouponCodes": [],
"DateValidationTypeValue": 1
}
]
},
{
"ProductId": 68719489872,
"ProductDiscounts":
[
{
"OfferId": "ST100009",
"OfferName": "Student discount",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": null,
"AdditionalRestrictions": null,
"Description": "Students get 10% off on Jeans and Backpacks",
"ValidFromDate": "1900-01-01T00:00:00.0000000Z",
"ValidToDate": "2154-12-31T00:00:00.0000000Z",
"CouponCodes": [],
"DateValidationTypeValue": 1
}
]
}
]
}
สำหรับข้อมูลเพิ่มเติม โปรดดู PriceLookupContext
PriceLookupContext
คลาส PriceLookupContext ใช้โมเดลการกำหนดราคาตามคุณสมบัติใน GetProductPromotions และ GetActivePrices API
โครงสร้างของคลาส PriceLookupContext จะแสดงในตัวอย่างต่อไปนี้
{
HeaderContext: PriceLookupHeaderContext
{
CustomerAccountNumber: string
AffiliationLoyaltyTierLines: IEnumerable<AffiliationLoyaltyTier>
ChannelId: long?
SalesOrderProperties: IEnumerable<AttributeValueBase>
},
LineContexts: IEnumerable<PriceLookupLineContext>
[
{
ProductRecordId: string
UnitOfMeasureSymbol: string
InventorySiteId: string
InventoryLocationId: string
DeliveryMode: string
CatalogId: string
SalesLineProperties: IEnumerable<AttributeValueBase>
},
]
}
เนื้อหาการร้องขอตัวอย่าง
"PriceLookupContext":
{
"HeaderContext":
{
"CustomerAccount": 2001,
"AffiliationLoyaltyTierLines":
[
{
"AffiliationId": 5637144577,
"LoyaltyTierId": 0,
"AffiliationTypeValue": 0,
"ReasonCodeLines": [],
"CustomerId": "2001"
}
],
"SalesOrderProperties":
[
{
"@odata.type": "#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue",
"Name": "CalcDate",
"TextValue": "2022-10-10"
}
]
},
"LineContexts": []
}
หมายเหตุ
- ไม่มีกลุ่มลูกค้าที่ระบุในพารามิเตอร์ PriceLookupHeaderContext เนื่องจากถูกระบุโดยหมายเลขรหัสลูกค้า
- สามารถระบุ ChannelId ในพารามิเตอร์ PriceLookupHeaderContext หากไม่ได้ระบุ มีการใช้ ChannelId จากบริบทการร้องขอ (ช่องทางปัจจุบันเมื่อใช้ Store Commerce)