Jaa


Commercen hinnoittelun ohjelmointirajapinnat

Tässä artikkelissa käsitellään Microsoft Dynamics 365 Commerce -hinnoittelumoduulin tarjoamia hinnoittelun ohjelmointirajapintoja.

Dynamics 365 Commerce -hinnoittelumoduuli tarjoaa seuraavat Retail Server -ohjelmointirajapinnat, joita ulkoiset sovellukset voivat käyttää tukeakseen erilaisia hinnoitteluskenaarioita:

  • GetActivePrices – Tämä ohjelmointirajapinta noutaa tuotteen lasketun hinnan, mukaan lukien yksinkertaiset alennukset.
  • CalculateSalesDocument – Tämä ohjelmointirajapinta laskee tuotteiden hinnat ja alennukset tietyille määrille, jos tuotteet ostetaan yhdessä.
  • GetAvailablePromotions – Tämä ohjelmointirajapinta noutaa ostoskorissa oleville tuotteille käytettävissä olevat alennukset.
  • AddCoupons – Tämä ohjelmointirajapinta lisää ostoskoriin kuponkeja.
  • RemoveCoupons – Tämä ohjelmointirajapinta poistaa kuponkeja ostoskorista.

Lisätietoja Retail Server -ohjelmointirajapintojen käyttämisestä ulkoisissa sovelluksissa on kohdassa Retail Serverin ohjelmointirajapintojen käyttäminen ulkoisissa sovelluksissa.

GetActivePrices

GetActivePrices-ohjelmointirajapinta otettiin käyttöön Commerce-versiossa 10.0.4. Tämä ohjelmointirajapinta noutaa tuotteen lasketun hinnan, mukaan lukien yksinkertaiset alennukset. Se ei laske monirivisiä alennuksia. Lisäksi se olettaa, että jokaisen ohjelmointirajapintapyyntöön sisältyvän tuotteen määrä on 1. Tämä ohjelmointirajapinta voi vastaanottaa luettelon tuotteita ja noutaa yksittäisten tuotteiden hinnan kerralla.

GetActivePrices-ohjelmointirajapinta tukee Commerce-rooleja Työntekijä, Asiakas, Anonyymi ja Sovellus.

GetActivePrices-ohjelmointirajapintaa käytetään ensisijaisesti tuotetietosivulla (PDP), jossa jälleenmyyjät näyttävät tuotteen parhaan hinnan, mukaan lukien voimassa olevat alennukset.

Huomautus

Jos vähemmän tuotteita palautetaan GetActivePriceskutsulle, voit seurata Kanavan myynninedistämismääritysten tarkistustoimintoa vahvistaaksesi myynninedistämismäärityksesi.

GetActivePrices-ohjelmointirajapinnan syöttöparametrit on kuvattu seuraavassa taulukossa.

Nimi Toissijainen nimi Laji Pakollinen/valinnainen Kuvaus
projectDomain ProjectionDomain Pakollinen
ChannelId long Pakollinen
CatalogId long Pakollinen
productIds IEnumerable<long> Pakollinen Luettelo tuotteista, joiden hinnat lasketaan.
activeDate DateTimeOffset Pakollinen Päivämäärä, jolloin hinnat lasketaan.
customerId merkkijono Valinnainen Asiakkaan tilinumero.
affiliationLoyaltyTiers IEnumerable<AffiliationLoyaltyTier> Valinnainen Liitos ja kanta-asiakkuustasot.
AffiliationId long Pakollinen Liitoksen tunnus.
LoyaltyTierId long Valinnainen Kanta-asiakkuustason tunnus.
includeSimpleDiscountsInContextualPrice bool Valinnainen Määritä tämä parametrin arvoksi true, jos haluat sisällyttää yksinkertaiset alennukset hinnoittelun laskentaan. Oletusarvo on epätosi.
includeVariantPriceRange bool Valinnainen Aseta tämän parametrin arvoksi true, jos haluat noutaa vähimmäis- ja enimmäishinnat päätuotteen kaikkien muuttujien kanssa. Oletusarvo on epätosi.
includeAttainablePricesAndDiscounts bool Valinnainen Määritä tämän parametrin arvoksi true, jos haluat noutaa saavutettavissa olevat hinnat ja alennukset. Oletusarvo on epätosi.
Mallipyynnön tekstiosa
{
    "projectDomain": 
    {
        "ChannelId": 5637144592,
        "CatalogId": 0
    },
    "productIds": 
    [
        68719489871
    ],
    "activeDate": "2022-06-20T14:40:05.873+08:00",
    "includeSimpleDiscountsInContextualPrice": true,
    "includeVariantPriceRange": false
}
Mallivastauksen tekstiosa
{
    "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-luokan käyttö

PriceLookupContext-luokka otettiin käyttöön Commerce-versiossa 10.0.37. Luokka sisältää kaikki GetActivePrices-ohjelmointirajapinnan hakuehdot ja korvaa aiemmat parametrit productIds, activeDate, customerId ja affiliationLoyaltyTiers. Luokalla on myös lisäominaisuuksia, joita kehittäjät voivat käyttää alennusten suodattamiseen alennusten hakemisen yhteydessä.

Organisaation tarpeiden mukaan GetActivePrices-ohjelmointirajapinta voi joko hyväksyä aiemmat parametrit tai priceLookupContext-luokkaan liittyvät uudet parametrit.

Syöttöparametrit

Nimi Toissijainen nimi Laji Pakollinen/valinnainen Kuvaus
projectDomain ProjectionDomain Vaadittu
ChannelId pitkä Vaadittu
CatalogId pitkä Vaadittu
priceLookupContext PriceLookupContext Vaadittu
HeaderContext PriceLookupHeaderContext Vaadittu Sisältää seuraavat: CustomerAccountNumber, AffiliationLoyaltyTierLines ja SalesOrderProperties
LineContexts IEnumerable<PriceLookupLineContext> Vaadittu Sisältää seuraavat: ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId ja SalesLineProperties.
includeSimpleDiscountsInContextualPrice bool Valinnainen Määritä tämä parametrin arvoksi true, jos haluat sisällyttää yksinkertaiset alennukset hinnoittelun laskentaan. Oletusarvo on epätosi.
includeVariantPriceRange bool Valinnainen Aseta tämän parametrin arvoksi true, jos haluat noutaa vähimmäis- ja enimmäishinnat päätuotteen kaikkien muuttujien kanssa. Oletusarvo on epätosi.
includeAttainablePricesAndDiscounts bool Valinnainen Määritä tämän parametrin arvoksi true, jos haluat noutaa saavutettavissa olevat hinnat ja alennukset. Oletusarvo on epätosi.

Lisätietoja: PriceLookupContext.

CalculateSalesDocument

CalculateSalesDocument-ohjelmointirajapinta otettiin käyttöön Commerce-versiossa 10.0.25. Tämä ohjelmointirajapinta laskee tuotteiden hinnat ja alennukset tietyille määrille, jos tuotteet ostetaan yhdessä tilauksessa. CalculateSalesDocument-ohjelmointirajapinnan perustana oleva hintojen laskenta huomioi sekä yksiriviset että moniriviset alennukset.

CalculateSalesDocument-ohjelmointirajapintaa käytetään ensisijaisesti skenaarioissa, jossa ostoskorin koko konteksti ei säily (esimerkiksi myyntitarjouksissa). Myös myyntipisteessä ja Commercessa tapahtuvat skenaariot voivat hyötyä tästä käyttötavasta. Kun ostoskorin nimikkeet lasketaan joukkona (esimerkiksi erilliset niput, linkitetyt tai suositellut tuotteet tai jo ostoskoriin lisätyt tuotteet), alhaisempi kokonaishinta voi houkutella asiakasta lisäämään ostoskoriin lisää tuotteita.

CalculateSalesDocument-ohjelmointirajapintojen pyynnön ja vastauksen tietomalli on molemmille Cart. Tämän ohjelmointirajapinnan kontekstissa tietomallin nimi on kuitenkin SalesDocument. Koska useimmat ominaisuudet ovat valinnaisia ja vain muutamat niistä vaikuttavat hinnoittelun laskentaan, seuraavassa taulukossa näytetään vain hinnoitteluun liittyvät kentät. Emme suosittele muiden kenttien käyttämistä ohjelmointirajapintapyynnössä.

CalculateSalesDocument-ohjelmointirajapinta on tarkoitettu vain hintojen ja alennusten laskemiseen. Se ei huomioi veroja tai maksuja.

Seuraavassa taulukossa esitetään salesDocument-objektin syöttöparametrit.

Nimi Toissijainen nimi Laji Pakollinen/valinnainen Kuvaus
Tunnus merkkijono Vaadittu Myyntiasiakirjan tunniste.
CartLines IList<CartLine> Valinnainen Luettelo riveistä, joiden hinnat ja alennukset lasketaan.
Tuotetunnus long Pakollinen CartLine-objektin kontekstissa Tuotetietueen tunnus.
ItemId merkkijono Valinnainen Nimikkeen tunniste. Jos arvo on määritetty, sen täytyy vastata ProductId-parametrin arvoa.
InventoryDimensionId merkkijono Valinnainen Varastodimension tunniste. Jos arvo on määritetty, ItemId- ja InventoryDimensionId-arvojen yhdistelmän täytyy vastata ProductId-parametrin arvoa.
Määrä desimaali Pakollinen CartLine-objektin kontekstissa Tuotteen määrä.
UnitOfMeasureSymbol merkkijono Valinnainen Tuotteen yksikkö. Jos arvoa ei ole määritetty, ohjelmointirajapinta käyttää oletusarvoisesti tuotteen myyntiyksikköä.
Asiakastunnus merkkijono Valinnainen Asiakkaan tilinumero.
LoyaltyCardId merkkijono Valinnainen Kanta-asiakaskortin tunniste. Kaikkien kanta-asiakaskorttiin liitettyjen asiakastilien täytyy vastata CustomerId-parametrin arvoa (jos määritetty). Kanta-asiakaskorttia ei oteta huomioon, jos sitä ei löydy tai jos sen tila on Estetty.
AffiliationLines IList<AffiliationLoyaltyTier> Valinnainen Liitoksen kanta-asiakkuustasorivit. Jos CustomerId- ja/tai LoyaltyCardId-arvo on määritetty, vastaavat liitoksen kanta-asiakkuustasorivit yhdistetään AffiliationLines-arvossa annettujen rivien kanssa.
AffiliationId long Pakollinen AffiliationLoyaltyTier-objektin kontekstissa Liitostietueen tunnus.
LoyaltyTierId long Pakollinen AffiliationLoyaltyTier-objektin kontekstissa Kanta-asiakkuustasotietueen tunnus.
AffiliationTypeValue int Pakollinen AffiliationLoyaltyTier-objektin kontekstissa Arvo, joka ilmaisee, onko liitosrivin tyyppi Yleinen (0) vai Kanta-asiakkuus (1). Jos parametrin arvoksi on määritetty 0, ohjelmointirajapinta ottaa AffiliationId-arvon tunnisteeksi ja jättää LoyaltyTunnus-arvon huomiotta. Jos parametrin arvoksi on määritetty 1, ohjelmointirajapinta ottaa LoyaltyTierId-arvon tunnisteeksi ja jättää AffiliationId-arvon huomiotta.
ReasonCodeLines Collection<ReasonCodeLine> Pakollinen AffiliationLoyaltyTier-objektin kontekstissa Syykoodien rivit. Tämä parametri ei vaikuta hinnoittelun laskentaan, mutta se on pakollinen osana AffiliationLoyaltyTier-objektia.
Asiakastunnus merkkijono Pakollinen AffiliationLoyaltyTier-objektin kontekstissa Asiakkaan tilinumero.
Kupongit IList<Coupon> Valinnainen Hinnoittelun laskennassa ei oteta huomioon kuponkeja, joita ei voida käyttää (jotka eivät ole aktiivisia, jotka ovat vanhentuneet tai joita ei löydy).
Koodi merkkijono Pakollinen Coupon-objektin kontekstissa Kuponkikoodi.
CodeId merkkijono Valinnainen Kuponkikoodin tunniste. Jos arvo on määritetty, sen täytyy vastata Code-parametrin arvoa.
DiscountOfferId merkkijono Valinnainen Alennuksen tunniste. Jos arvo on määritetty, sen täytyy vastata Code-parametrin arvoa.
Mallipyynnön tekstiosa
{
    "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"
            }
        ]
    }
}

Vastauksen tekstiosana palautetaan ostoskoriobjekti. Jos haluat tarkistaa hinnat ja alennukset, sinun tulisi keskittyä seuraavan taulukon kenttiin.

Nimi Toissijainen nimi Laji Kuvaus
NetPrice desimaali Koko myyntiasiakirjan nettohinta ennen mahdollisten alennusten lisäämistä.
DiscountAmount desimaali Koko myyntiasiakirjan kokonaisalennuksen summa.
TotalAmount desimaali Koko myyntiasiakirjan kokonaissumma.
CartLines IList<CartLine> Lasketut rivit, jotka sisältävät hintojen ja alennusten tiedot.
Hinta desimaali Tuotteen yksikköhinta.
NetPrice desimaali Rivin nettohinta ennen mahdollisten alennusten lisäämistä (= Hinta × Määrä).
DiscountAmount desimaali Alennuksen summa.
TotalAmount desimaali Rivin hinnoittelun lopullinen kokonaistulos.
PriceLines IList<PriceLine> Hintatiedot, mukaan lukien hinnan lähde (perushinta, hinnanoikaisu tai kauppasopimus) ja summa.
DiscountLines IList<DiscountLine> Alennuksen tiedot.

GetAvailablePromotions

GetAvailablePromotions-ohjelmointirajapintaa on kaksi samanlaista:

  • Carts/GetAvailablePromotions hyväksyy parametriksi luettelon ostoskoririvin tunnuksista.
  • GetAvailablePromotions hyväksyy DiscountsSearchCriteria-objektin parametriksi.

Carts/GetAvailablePromotions

Jos ostoskorissa on useita ostoskoririvejä, Carts/GetAvailablePromotions-ohjelmointirajapinta palauttaa kaikki ostoskoririveille soveltuvat alennukset.

Carts/GetAvailablePromotions-ohjelmointirajapintaa käytetään ensisijaisesti ostoskorisivulla, jossa vähittäismyyjät näyttävät ostoskorille saatavilla olevia alennuksia tai kuponkeja.

Carts/GetAvailablePromotions-ohjelmointirajapinnan syöttöparametrit on kuvattu seuraavassa taulukossa.

Nimi Tyyppi Pakollinen/valinnainen kuvaus
avain merkkijono Pakollinen Ostoskorin tunnus.
cartLineIds IEnumerable<string> Valinnainen Määritä tämä parametri palauttaaksesi alennuksia vain valituille ostoskoririveille.
Mallivastauksen tekstiosa
{
    "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-ohjelmointirajapinta palauttaa kaikki annetulle kanavalle käytettävissä olevat alennukset.

GetAvailablePromotions-ohjelmointirajapintaa käytetään ensisijaisesti Kaikki alennukset -sivulla, jossa vähittäismyyjät näyttävät kaikki nykyiselle kanavalle saatavilla olevat alennukset.

GetAvailablePromotions-ohjelmointirajapinnan syöttöparametrit on kuvattu seuraavassa taulukossa.

Nimi Toissijainen nimi Laji Pakollinen/valinnainen Kuvaus
searchCriteria DiscountsSearchCriteria Vaadittu
ChannelId long Vaadittu
Avainsana merkkijono Valinnainen
IsDiscountCodeRequired bool Valinnainen Ilmaisee, onko kuponkikoodi pakollinen vai ei. Jos välitetään tyhjäarvo, kaikki alennukset noudetaan riippumatta kuponkikoodivaatimuksista.
StartDate DateTimeOffset Vaadittu Aloituspäivämäärä (inklusiivinen).
EndDate DateTimeOffset Vaadittu Loppupäivämäärä (inklusiivinen).
Mallipyynnön tekstiosa
{
    "searchCriteria": {
        "ChannelId": 5637144592,
        "StartDate": "1900-01-01T00:00:00Z",
        "EndDate": "2154-12-31T00:00:00Z"
    }
}
Mallivastauksen tekstiosa
{
    "@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-ohjelmointirajapinta tukee kuponkiluettelon lisäämistä ostoskoriin. Se palauttaa ostoskoriobjektin, kun kupongit on lisätty.

AddCoupons-ohjelmointirajapinnan syöttöparametrit on kuvattu seuraavassa taulukossa.

Nimi Tyyppi Pakollinen/valinnainen kuvaus
avain merkkijono Pakollinen Ostoskorin tunnus.
couponCodes IEnumerable<string> Pakollinen Ostoskoriin lisättävät kuponkikoodit.
isLegacyDiscountCode bool Valinnainen Määritä tämän parametrin arvoksi true osoittaaksesi, että kuponki on vanha alennuskoodi. Oletusarvo on epätosi.

RemoveCoupons

RemoveCoupons-ohjelmointirajapinta tukee kuponkiluettelon poistamista ostoskorista. Se palauttaa ostoskoriobjektin, kun kupongit on poistettu.

RemoveCoupons-ohjelmointirajapinnan syöttöparametrit on kuvattu seuraavassa taulukossa.

Nimi Tyyppi Pakollinen/valinnainen kuvaus
avain merkkijono Pakollinen Ostoskorin tunnus.
couponCodes IEnumerable<string> Vaadittu Ostoskorista poistettavat kuponkikoodit.

GetProductPromotions

GetProductPromotions-ohjelmointirajapinta otettiin käyttöön Commerce-versiossa 10.0.38. Tämä ohjelmointirajapinta noutaa luettelon kampanjatuotteista, joilla on tietyt tuotealennukset, ja voi myös käyttää tuotealennusten tunnusten ja hinnoittelukontekstien luetteloa syötteenä ja kysellä niihin liittyviä kampanjatuotteita. GetProductPromotions-ohjelmointirajapinnan pääkäyttötarkoitus on tuoteluettelosivuilla, joilla vähittäismyyjät esittelevät alennettuja tuotteita. Tämä ohjelmointirajapinta tukee sekä ominaisuuspohjaista hinnoittelumallia että vanhaa hinnoittelumallia.

GetProductPromotions-ohjelmointirajapinnan syöttöparametrit on kuvattu seuraavassa taulukossa.

Nimi Toissijainen nimi Laji Pakollinen/valinnainen Kuvaus
productDiscountIds IEnumerable<string> Vaadittu Tuotealennustunnusten luettelo, josta etsitään kampanjatuotteita.
priceLookupContext PriceLookupContext Vaadittu Hinnoittelun konteksti.
activeDate DateTimeOffset Valinnainen Päivämäärä, jona kampanja otetaan huomioon.

Rajoitukset:

  • Syöte voi sisältää enintään viisi tuotealennustunnusta.
  • Vain yksinkertaisia alennuksia tuetaan.
Mallipyynnön tekstiosa
{
    {
    "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",
    },
}
Mallivastauksen tekstiosa
{
    "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
                }
            ]   
        }
    ]
}

Lisätietoja: PriceLookupContext.

PriceLookupContext

PriceLookupContext-luokkaa käytetään ominaisuuspohjaiseen hinnoittelumalliin ohjelmointirajapinnoissa GetProductPromotions ja GetActivePrices.

PriceLookupContext-luokan rakenne näkyy seuraavassa esimerkissä.

{
    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>
        },
    ]
}
Mallipyynnön tekstiosa
"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": []
}

Huomautus

  • PriceLookupHeaderContext-parametrissa ei ole määritetty asiakasryhmää, koska se oli johdettava asiakkaan tilinumerosta.
  • ChannelId voidaan määrittää PriceLookupHeaderContext-parametrissa. Jos sitä ei määritetä, käytetään pyynnön kontekstin ChannelId-tunnusta (nykyistä kanavaa, kun käytetään Store Commercea).