Share via


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 ที่คล้ายกันสองรายการ:

  • Carts/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)