Bendrinti naudojant


„Commerce“ kainodaros API

Šiame straipsnyje aprašomos įvairios kainodaros API, kurias teikia Microsoft Dynamics 365 Commerce kainodaros variklis.

Kainų Dynamics 365 Commerce nustatymo variklis pateikia tokius "Retail Server" API, kuriuos išorinės programos gali naudoti, kad palaiky galėtų palaikyti įvairius kainodaros scenarijus:

  • GetActivePrices – Ši API gauna apskaičiuotą produkto kainą, įskaitant paprastas nuolaidas.
  • CalculateSalesDocument – Ši API apskaičiuoja kainas ir nuolaidas produktams nurodytais kiekiais, jei jie perkami kartu.
  • GetAvailablePromotions – Šiai API taikomos nuolaidos krepšelyje esantiems produktams.
  • AddCoupons – Ši API prideda kuponus į krepšelį.
  • RemoveCoupons– Ši API pašalina kuponus iš krepšelio.

Daugiau informacijos apie tai, kaip naudoti Retail Server API išorinėse programose, žr Naudokite mažmeninės prekybos serverio API išorinėse programose

GetActivePrices

GetActivePrices API buvo pristatyta Commerce 10.0.4 versijoje. Ši API gauna apskaičiuotą produkto kainą, įskaitant paprastas nuolaidas. Ji neskaičiuoja kelių eilučių nuolaidų ir daro prielaidą, kad kiekvieno produkto API užklausoje kiekis yra 1. Ši API taip pat gali naudoti produktų sąrašą kaip įvestį ir pateikti atskirų produktų kainos užklausą.

GetActivePrices API palaiko Darbuotojas, Klientas, Anonymous, ir Taikymas Komerciniai vaidmenys.

Pagrindinis naudojimo atvejis GetActivePrices API yra produkto informacijos puslapis (PDP), kuriame mažmenininkai rodo geriausią produkto kainą, įskaitant visas veiksmingas nuolaidas.

Banknotas

Jei matote mažiau grąžinamų prekių už a GetActivePrices skambinkite, galite sekti Kanalo prekybos konfigūracijos tikrintuvas kad patvirtintumėte savo prekybos konfigūracijas.

Šioje lentelėje pateikiami įvesties parametrai GetActivePrices API.

Pavadinimas Antrinis pavadinimas Tipas Būtina / pasirinktina Aprašymas
projectDomain ProjectionDomain Privaloma
Kanalo ID ilgai Privaloma
Katalogo ID ilgai Privaloma
produkto ID Įskaitomas<ilgai> Privaloma Produktų, kurių kainas reikia apskaičiuoti, sąrašas.
ActiveDate DateTimeOffset Privaloma Kainų skaičiavimo data.
Kliento ID eilutė Pasirinktinai Kliento sąskaitos numeris.
affiliationLoyaltyTiers Įskaitomas<AffiliationLoyaltyTier> Pasirinktinai Priklausomybės ir lojalumo lygiai.
AffiliationId ilgai Privaloma Priklausomybės ID.
Lojalumo pakopos ID ilgai Pasirinktinai Lojalumo lygio ID.
includeSimpleDiscountsInContextualPrice bool Pasirinktinai Nustatykite šį parametrą į tiesa į kainodaros skaičiavimą įtraukti paprastas nuolaidas. Numatytoji reikšmė yra klaidinga.
įtraukti VariantPriceRange bool Pasirinktinai Nustatykite šį parametrą į tiesa gauti minimalias ir maksimalias kainas tarp visų pagrindinio produkto variantų. Numatytoji reikšmė yra klaidinga.
includeAttainablePricesAndDiscounts bool Pasirinktinai Nustatykite šį parametrą į tiesa gauti prieinamas kainas ir nuolaidas. Numatytoji reikšmė yra klaidinga.
Pavyzdžio užklausos tekstas
{
    "projectDomain": 
    {
        "ChannelId": 5637144592,
        "CatalogId": 0
    },
    "productIds": 
    [
        68719489871
    ],
    "activeDate": "2022-06-20T14:40:05.873+08:00",
    "includeSimpleDiscountsInContextualPrice": true,
    "includeVariantPriceRange": false
}
Atsakymo korpuso pavyzdys
{
    "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": [],
        }
    ]
}

Naudoti PriceLookupContext

Klasė PriceLookupContext buvo įvesta į "Commerce" versiją 10.0.37. Klasėje yra visi GetActivePrices API peržvalgos kriterijai ir pakeisti ankstesni produktų ID, activeDate, customerId ir affiliationLoyaltyTiers parametrai. Be to, klasė turi papildomų ypatybės, kurias programuotojai gali naudoti nuolaidoms filtruoti peržvalgą.

Pagal jūsų organizacijos poreikius GetActivePrices API gali priimti ankstesnius parametrus arba naujus parametrus, susijusius su PriceLookupContext klase.

Įvesties parametrai

Pavadinimas Antrinis pavadinimas Tipas Būtina / pasirinktina Aprašymas
projectDomain ProjectionDomain Būtinas
Kanalo ID ilgai Būtinas
Katalogo ID ilgai Būtinas
priceLookupContext PriceLookupContext Būtinas
HeaderContext PriceLookupHeaderContext Būtinas Apima CustomerAccountNumber, AffiliationLoyaltyTierLines ir SalesOrderProperties
Eilutės kontekstai IEnumerable<PriceLookupLineContext> Būtinas Yra ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId ir SalesLineProperties.
includeSimpleDiscountsInContextualPrice bool Pasirinktinai Nustatykite šį parametrą į tiesa į kainodaros skaičiavimą įtraukti paprastas nuolaidas. Numatytoji reikšmė yra klaidinga.
įtraukti VariantPriceRange bool Pasirinktinai Nustatykite šį parametrą į tiesa gauti minimalias ir maksimalias kainas tarp visų pagrindinio produkto variantų. Numatytoji reikšmė yra klaidinga.
includeAttainablePricesAndDiscounts bool Pasirinktinai Nustatykite šį parametrą į tiesa gauti prieinamas kainas ir nuolaidas. Numatytoji reikšmė yra klaidinga.

Daugiau informacijos rasite PriceLookupContext.

CalculateSalesDocument

CalculateSalesDocument API buvo pristatyta Commerce 10.0.25 versijoje. Ši API apskaičiuoja produktų kainas ir nuolaidas nurodytais kiekiais, jei jie perkami kartu užsakyme. Kainos apskaičiavimas už CalculateSalesDocument API atsižvelgia ir į vienos eilutės nuolaidas, ir į kelių eilučių nuolaidas.

Pagrindinis naudojimo atvejis CalculateSalesDocument API yra kainodaros apskaičiavimas scenarijuose, kai nelieka viso krepšelio konteksto (pvz., pardavimo kainos). Šis naudojimo atvejis taip pat gali būti naudingas pardavimo vietoje (POS) ir prekybos el. prekybai. Mažesnė bendra kaina, kai krepšelio prekės skaičiuojamos kaip rinkinys (pavyzdžiui, atskiriems paketams, susietiems ar rekomenduojamiems produktams arba produktams, kurie jau buvo įtraukti į krepšelį), gali įtikinti klientus įtraukti produktus į krepšelį.

Tiek užklausos, tiek atsakymo duomenų modelis CalculateSalesDocument API yra Krepšelis. Tačiau šios API kontekste duomenų modelis yra pavadintas SalesDocument. Kadangi dauguma ypatybių yra neprivalomos ir tik kelios iš jų turi įtakos kainodaros skaičiavimui, šioje lentelėje rodomi tik su kainodara susiję laukai. Nerekomenduojame įtraukti jokių kitų laukų į API užklausą.

Apimtis CalculateSalesDocument API yra tik kainų ir nuolaidų skaičiavimas. Mokesčiai ir rinkliavos neįtraukiami.

Šioje lentelėje pateikiami įvesties parametrai objekte, kuriam suteiktas pavadinimas pardavimo dokumentas.

Pavadinimas Antrinis pavadinimas Tipas Būtina / pasirinktina Aprašymas
ID eilutė Būtinas Pardavimo dokumento identifikatorius.
CartLines IList<CartLine> Pasirinktinai Eilučių, kurioms reikia apskaičiuoti kainas ir nuolaidas, sąrašas.
Produkto ID ilgai Reikalingas CartLine srityje Produkto įrašo ID.
ItemId eilutė Pasirinktinai Prekės identifikatorius. Jei pateikiama reikšmė, ji turi atitikti reikšmę ProductId parametras.
InventoryDimensionId eilutė Pasirinktinai Atsargų aspekto identifikatorius. Jei pateikiama vertė, derinys ItemId ir InventoryDimensionId reikšmės turi atitikti reikšmę ProductId parametras.
Kiekis dešimtainis Reikalingas CartLine srityje Produkto kiekis.
UnitOfMeasureSymbol eilutė Pasirinktinai Produkto vienetas. Pagal numatytuosius nustatymus, jei vertė nepateikiama, API naudoja produkto pardavimo vienetą.
Kliento ID eilutė Pasirinktinai Kliento sąskaitos numeris.
LoyaltyCardId eilutė Pasirinktinai Lojalumo kortelės identifikatorius. Bet kuri kliento sąskaita, susieta su lojalumo kortele, turi atitikti Parametro CustomerId vertę (jei pateikta). Lojalumo kortelės nelaikoma, jei ji nerasta arba jos būsena užblokuota .
AffiliationLines IList<AffiliationLoyaltyTier> Pasirinktinai Partnerystės lojalumo lygio linijos. Jei pateiktos CustomerId ir ( arba) LoyaltyCardId vertės, atitinkamos priskyrimo lojalumo pakopos eilutės suliejamos su eilutėmis, kurios pateiktos affiliationLines vertėje.
AffiliationId ilgai Reikalingas „AffiliationLoyaltyTier“ apimtyje Priklausomybės įrašo ID.
LoyaltyTierId ilgai Reikalingas „AffiliationLoyaltyTier“ apimtyje Lojalumo lygio įrašo ID.
AffiliationTypeValue tarpt Reikalingas „AffiliationLoyaltyTier“ apimtyje Reikšmė, nurodanti, ar priklausomybės eilutė yra Generolas tipas (0) arba Lojalumas tipas (1). Jei parametras nustatytas kaip0 , API kaip identifikatorių paima priskyrimoId vertę ir nepaiso LoyaltyTierId vertės. Jei parametras nustatytas kaip1 , API kaip identifikatorių paima LoyaltyTierId vertę ir nepaiso AffiliationId vertės.
ReasonCodeLines Kolekcija<ReasonCodeLine> Reikalingas „AffiliationLoyaltyTier“ apimtyje Priežasties kodo eilutės. Šis parametras neturi įtakos apskaičiuojant kainodarą, bet yra būtinas kaip dalis AffiliationLoyaltyTier objektas.
Kliento ID eilutė Reikalingas „AffiliationLoyaltyTier“ apimtyje Kliento sąskaitos numeris.
Kuponai IList<Kuponas> Pasirinktinai Skaičiuojant kainą atsižvelgiama į kuponus, kurie nėra taikomi (neaktyvūs, nebegalioja arba nelaikomi).
Kodas eilutė Reikalingas kupono apimtyje Kupono kodas.
CodeId eilutė Pasirinktinai Kupono kodo identifikatorius. Jei pateikiama reikšmė, ji turi atitikti reikšmę Kodas parametras.
DiscountOfferId eilutė Pasirinktinai Nuolaidos identifikatorius. Jei pateikiama reikšmė, ji turi atitikti reikšmę Kodas parametras.
Pavyzdžio užklausos tekstas
{
    "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"
            }
        ]
    }
}

Visas krepšelio objektas grąžinamas kaip atsakymo korpusas. Norėdami patikrinti kainas ir nuolaidas, sutelkite dėmesį į šios lentelės laukus.

Pavadinimas Antrinis pavadinimas Tipas Aprašymas
NetPrice dešimtainis Grynoji viso pardavimo dokumento kaina prieš pradedant taikyti bet kokias nuolaidas.
DiscountAmount dešimtainis Bendra viso pardavimo dokumento nuolaidos suma.
TotalAmount dešimtainis Bendra viso pardavimo dokumento suma.
CartLines IList<CartLine> Apskaičiuotos eilutės, kuriose yra išsami informacija apie kainą ir nuolaidą.
Kaina dešimtainis Produkto vieneto kaina.
NetPrice dešimtainis Grynoji eilutės kaina prieš pradedant taikyti nuolaidas (= Price × Quantity).
DiscountAmount dešimtainis Nuolaidos suma.
TotalAmount dešimtainis Galutinis bendras linijos kainodaros rezultatas.
PriceLines IList<PriceLine> Kainos informacija, įskaitant kainos šaltinį (bazinę kainą, kainos koregavimą arba prekybos sutartį) ir sumą.
DiscountLines IList<DiscountLine> Informacija apie nuolaidą.

GetAvailablePromotions

Yra du panašūs GautiAvailablePromotions API:

  • Carts/GetAvailablePromotions kaip parametrą priima krepšelio eilutės identifikatorių sąrašą.
  • GetAvailablePromotions priima a DiscountsSearchCriteria objektas kaip parametras.

Carts/GetAvailablePromotions

Atsižvelgiant į vežimėlį, kuriame yra kelios vežimėlio linijos, Carts/GetAvailablePromotions API grąžina visas taikomas nuolaidas krepšelio eilutėms.

Pagrindinis naudojimo atvejis Carts/GetAvailablePromotions API yra krepšelio puslapis, kuriame mažmenininkai rodo pritaikytas nuolaidas arba galimus kuponus dabartiniam krepšeliui.

Šioje lentelėje pateikiami įvesties parametrai Carts/GetAvailablePromotions API.

Pavadinimas / vardas ir pavardė Tipas Būtina / pasirinktina Aprašymas
raktas eilutė Privaloma Krepšelio ID.
cartLineIds Įskaitomas<styga> Pasirinktinai Nustatykite šį parametrą, kad grąžintumėte nuolaidas tik pasirinktoms krepšelio eilutėms.
Atsakymo į pavyzdžio tekstas
{
    "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 grąžina visas tam kanalui taikomas nuolaidas.

Pagrindinis naudojimo atvejis GetAvailablePromotions API yra puslapis „Visos nuolaidos“, kuriame mažmenininkai rodo visas dabartinio kanalo nuolaidas.

Šioje lentelėje pateikiami įvesties parametrai GetAvailablePromotions API.

Pavadinimas Antrinis pavadinimas Tipas Būtina / pasirinktina Aprašymas
searchCriteria DiscountsSearchCriteria Privaloma
ChannelId ilgai Privaloma
Raktažodis eilutė Pasirinktinai
IsDiscountCodeRequired bool Pasirinktinai Nurodo, ar kupono kodas reikalingas, ar ne. Jei nulinis patvirtinimas, visos nuolaidos gaunamos, neatsižvelgiant į kupono kodo reikalavimus.
StartDate DateTimeOffset Privaloma Pradžios data (imtinai).
EndDate DateTimeOffset Būtinas Pabaigos data (imtinai).
Pavyzdžio užklausos tekstas
{
    "searchCriteria": {
        "ChannelId": 5637144592,
        "StartDate": "1900-01-01T00:00:00Z",
        "EndDate": "2154-12-31T00:00:00Z"
    }
}
Atsakymo korpuso pavyzdys
{
    "@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

AddCoupons API palaiko kuponų sąrašo įtraukimą į krepšelį. Pridėjus kuponus, jis grąžina krepšelio objektą.

Šioje lentelėje pateikiami įvesties parametrai AddCoupons API.

Pavadinimas / vardas ir pavardė Tipas Būtina / pasirinktina Aprašymas
raktas eilutė Privaloma Krepšelio ID.
kupono kodai Įskaitomas<styga> Privaloma Kuponų kodai, kuriuos reikia įdėti į krepšelį.
isLegacyDiscountCode bool Pasirinktinai Nustatykite šį parametrą į tiesa nurodyti, kad kuponas yra senas nuolaidos kodas. Numatytoji reikšmė yra klaidinga.

RemoveCoupons

RemoveCoupons API palaiko kuponų sąrašo pašalinimą iš krepšelio. Pašalinus kuponus, jis grąžina krepšelio objektą.

Šioje lentelėje pateikiami įvesties parametrai RemoveCoupons API.

Pavadinimas / vardas ir pavardė Tipas Būtina / pasirinktina Aprašymas
raktas eilutė Privaloma Krepšelio ID.
couponCodes Įskaitomas<styga> Būtinas Kupono kodai, kuriuos reikia išimti iš krepšelio.

GetProductPromotions

GetProductPromotions API buvo pristatytas į "Commerce" 10.0.38 versiją. API gauna reklaminių produktų su duotais produktų nuolaidomis sąrašą ir taip pat gali pateikti produktų nuolaidų SF sąrašą ir kainos kontekstą kaip įvestį ir užklausą dėl susijusių akcijos produktų. Pagrindinis naudojimo atvejis, skirtas GetProductPromotions API, yra produktų sąrašo puslapiuose, kur mažmenininkai rodo produktus su nuolaidomis. API palaiko ir nuosavybės bazinės kainodaros modelį, ir senesnį kainos modelį.

Toliau pateikiamoje lentelėje pateikiami GetProductPromotions API įvesties parametrai.

Pavadinimas Antrinis pavadinimas Tipas Būtina / pasirinktina Aprašymas
productDiscountIds Įskaitomas<styga> Būtinas Produkto nuolaidų ID, pagal kuriuos ieškomi akcijos produktai, sąrašas.
priceLookupContext PriceLookupContext Būtinas Kainų kontekstas.
ActiveDate DateTimeOffset Pasirinktinai Data, kada atsižvelgiama į akciją.

Apribojimai ir apribojimai:

  • Kaip įvestį galima atlikti tik penkių produkto nuolaidų JAV kodą.
  • Palaikomos tik paprastos nuolaidos.
Pavyzdžio užklausos tekstas
{
    {
    "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",
    },
}
Atsakymo korpuso pavyzdys
{
    "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
                }
            ]   
        }
    ]
}

Daugiau informacijos rasite PriceLookupContext.

PriceLookupContext

Klasė PriceLookupContext naudojama ypatybių bazinės kainos modeliui GetProductPromotionsir GetActivePrices APIs.

Klasės PriceLookupContext struktūra parodyta šiame pavyzdyje.

{
    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>
        },
    ]
}
Pavyzdžio užklausos tekstas
"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": []
}

Banknotas

  • Nėra klientų grupės, nurodytos PriceLookupHeaderContext paramter, nes ji buvo numanoma pagal kliento sąskaitos numerį.
  • ChannelId galima nurodyti priceLookupHeaderContext parametre. Jei jis nenurodytas, naudojamas ChannelId iš užklausos konteksto (dabartinio kanalo, kai naudojama parduotuvės prekyba).