Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel werden verschiedene Preis-APIs beschrieben, die vom Microsoft Dynamics 365 Commerce Preismodul bereitgestellt werden.
Das Dynamics 365 Commerce Preismodul stellt die folgenden Einzelhandelsserver-APIs bereit, mit denen externe Anwendungen verschiedene Preisszenarien unterstützen können:
- GetActivePrices – Diese API erhält den berechneten Preis eines Produkts, einschließlich einfacher Rabatte.
- CalculateSalesDocument: Diese API berechnet Preise und Rabatte für Produkte in bestimmten Mengen, wenn sie zusammen gekauft werden.
- GetAvailablePromotions – Diese API erhält anwendbare Rabatte für Produkte im Warenkorb.
- AddCoupons – Diese API fügt Coupons zu einem Warenkorb hinzu.
- RemoveCoupons – Diese API entfernt Coupons aus einem Warenkorb.
Weitere Informationen zur Verwendung von Retail Server-APIs in externen Anwendungen finden Sie unter Verwenden Sie Retail-Server-APIs in externen Anwendungen.
GetActivePrices
Die API GetActivePrices wurde in der Commerce-Version 10.0.4 eingeführt. Diese API erhält den berechneten Preis eines Produkts, einschließlich einfacher Rabatte. Sie berechnet keine Rabatte für mehrere Zeilen und geht davon aus, dass jedes Produkt in einer API-Anforderung eine Menge von 1 hat. Diese API kann auch eine Liste von Produkten als Eingabe verwenden und den Preis einzelner Produkte in großen Mengen abfragen.
Die API GetActivePrices unterstützt die Commerce-Rollen Angestellter, Kunde, Anonym und Anwendung.
Der Hauptanwendungsfall für die API GetActivePrices ist die Produktdetailseite (PDP), auf der Einzelhändler den besten Preis für ein Produkt präsentieren, einschließlich gültiger Rabatte.
Hinweis
Wenn weniger Produkte für einen GetActivePrices-Aufruf zurückgegeben werden, können Sie Kanal-Merchandising-Konfiguration überprüfen folgen, um Ihre Merchandising-Konfigurationen zu überprüfen.
Die folgende Tabelle zeigt die Eingabeparameter für die API GetActivePrices.
| Name | Untername | Art | Erforderlich/Optional | Beschreibung |
|---|---|---|---|---|
| projectDomain | ProjectionDomain | Erforderlich | ||
| ChannelId | long | Erforderlich | ||
| CatalogId | long | Erforderlich | ||
| productIds | IEnumerable<long> | Erforderlich | Die Liste der Produkte, für die Preise berechnet werden sollen. | |
| activeDate | DateTimeOffset | Erforderlich | Das Datum, an dem die Preise berechnet werden. | |
| customerId | Zeichenfolge | Optional | Die Debitorenkontonummer. | |
| affiliationLoyaltyTiers | IEnumerable<ZugehörigkeitLoyalitätsstufe> | Optional | Die Zugehörigkeit und Treuestufen. | |
| AffiliationId | long | Erforderlich | Die Zugehörigkeitskennung. | |
| LoyaltyTierId | long | Optional | Die Treuestufekennung. | |
| includeSimpleDiscountsInContextualPrice | bool | Optional | Stellen Sie diesen Parameter auf true, um einfache Rabatte in die Preiskalkulation einzubeziehen. Der Standardwert ist false. | |
| includeVariantPriceRange | bool | Optional | Stellen Sie diesen Parameter auf true, um die Mindest- und Höchstpreise aller Varianten für ein Hauptprodukt zu erhalten. Der Standardwert ist false. | |
| includeAttainablePricesAndDiscounts | bool | Optional | Stellen Sie diesen Parameter auf true, um erreichbare Preise und Rabatte zu erhalten. Der Standardwert ist false. |
Beispiel für Anforderungstext
{
"projectDomain":
{
"ChannelId": 5637144592,
"CatalogId": 0
},
"productIds":
[
68719489871
],
"activeDate": "2022-06-20T14:40:05.873+08:00",
"includeSimpleDiscountsInContextualPrice": true,
"includeVariantPriceRange": false
}
Beispiel für Antworttext
{
"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“ verwenden
Die Commerce-Version 10.0.37 führt die PriceLookupContext-Klasse ein. Diese Klasse enthält alle Nachschlagekriterien für die GetActivePrices-API. Er ersetzt die vorherigen Parameter von "productIds", "activeDate", "customerId" und "affiliationLoyaltyTiers". Die Klasse verfügt auch über zusätzliche Eigenschaften, mit denen Entwickler Rabatte während der Rabattsuche filtern können.
Abhängig von den Anforderungen Ihrer Organisation kann die GetActivePrices-API entweder die vorherigen Parameter oder neue Parameter akzeptieren, die der PriceLookupContext-Klasse zugeordnet sind.
Eingabeparameter
| Name | Untername | Art | Erforderlich/Optional | Beschreibung |
|---|---|---|---|---|
| projectDomain | ProjectionDomain | Erforderlich | ||
| ChannelId | long | Erforderlich | ||
| CatalogId | long | Erforderlich | ||
| priceLookupContext | PriceLookupContext | Erforderlich | ||
| HeaderContext | PriceLookupHeaderContext | Erforderlich | Enthält Kundennummer, Mitgliedschaftsloyalitätsebene und Bestelleigenschaften | |
| LineContexts | IEnumerable<PriceLookupLineContext> | Erforderlich | Enthält ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId und SalesLineProperties. | |
| includeSimpleDiscountsInContextualPrice | bool | Optional | Stellen Sie diesen Parameter auf true, um einfache Rabatte in die Preiskalkulation einzubeziehen. Der Standardwert ist false. | |
| includeVariantPriceRange | bool | Optional | Stellen Sie diesen Parameter auf true, um die Mindest- und Höchstpreise aller Varianten für ein Hauptprodukt zu erhalten. Der Standardwert ist false. | |
| includeAttainablePricesAndDiscounts | bool | Optional | Stellen Sie diesen Parameter auf true, um erreichbare Preise und Rabatte zu erhalten. Der Standardwert ist false. |
Weitere Informationen finden Sie unter PriceLookupContext.
CalculateSalesDocument
Die API CalculateSalesDocument wurde in der Commerce-Version 10.0.25 eingeführt. Diese API berechnet Preise und Rabatte für Produkte in bestimmten Mengen, wenn sie zusammen in einer Bestellung gekauft werden. Die Preisberechnung hinter der CalculateSalesDocument-API berücksichtigt sowohl Einzelzeilenrabatte als auch mehrzeilige Rabatte.
Der Hauptanwendungsfall für die CalculateSalesDocument API ist die Preisberechnung in Szenarien, in denen der vollständige Warenkorbkontext nicht bestehen bleibt (z. B. Verkaufsangebote). Auch Szenarien im Point of Sale (POS) und Commerce E-Commerce können von diesem Anwendungsfall profitieren. Ein niedrigerer Gesamtpreis, wenn Einkaufswagenartikel als Satz berechnet werden (z. B. für diskrete Bündel, verknüpfte oder empfohlene Produkte oder Produkte, die sich bereits im Warenkorb befinden), könnten Kunden davon überzeugen, dem Warenkorb Produkte hinzuzufügen.
Das Datenmodell sowohl für die Anfrage als auch für die Antwort der CalculateSalesDocument API ist Einkaufskorb. Im Kontext dieser API wird jedoch das Datenmodell SalesDocument benannt. Da die meisten Eigenschaften optional sind und nur wenige die Preisberechnung beeinflussen, werden in der folgenden Tabelle nur preisbezogene Felder angezeigt. Fügen Sie keine anderen Felder in die API-Anforderung ein.
Der Geltungsbereich der CalculateSalesDocument API ist nur die Berechnung von Preisen und Rabatten. Steuern und Abgaben werden nicht inkludiert.
Die folgende Tabelle zeigt die Eingabeparameter innerhalb des benannten Objekts salesDocument.
| Name | Untername | Art | Erforderlich/Optional | Beschreibung |
|---|---|---|---|---|
| ID | Zeichenfolge | Erforderlich | Die Kennung des Verkaufsbelegs. | |
| CartLines | IList<CartLine> | Optional | Die Liste der Positionen, für die Preise und Rabatte berechnet werden sollen. | |
| Produktkennung | long | Erforderlich im Rahmen von CartLine | Die Produktdatensatzkennung. | |
| ItemId | Zeichenfolge | Optional | Der Artikelbezeichner. Wenn ein Wert angegeben wird, muss er mit dem Wert von ProductId Parameter übereinstimmen. | |
| InventoryDimensionId | Zeichenfolge | Optional | Der Bestandsdimensionsbezeichner. Wenn ein Wert angegeben wird, muss die Kombination der Werte ItemId und InventoryDimensionId mit dem Wert von ProductId übereinstimmen. | |
| Menge | dezimal | Erforderlich im Rahmen von CartLine | Die Menge des Produkts. | |
| UnitOfMeasureSymbol | Zeichenfolge | Optional | Die Einheit des Produkts. Wenn kein Wert angegeben wird, verwendet die API standardmäßig die Verkaufseinheit des Produkts. | |
| CustomerId | Zeichenfolge | Optional | Die Debitorenkontonummer. | |
| LoyaltyCardId | Zeichenfolge | Optional | Die Treuekartenkennung. Jedes Kundenkonto, das mit der Treuekarte verknüpft ist, muss dem Wert des CustomerId-Parameters (sofern vorhanden) entsprechen. Die Treuekarte wird nicht berücksichtigt, wenn sie nicht gefunden wird oder ihr Status Gesperrt ist. | |
| AffiliationLines | IList<AffiliationLoyaltyTier> | Optional | Zugehörigkeits- und Treuestufenpositionen. Wenn CustomerId und/oder LoyaltyCardId bereitgestellt werden, werden die entsprechenden Positionen der Zugehörigkeits-Treuestufe mit den Positionen zusammengeführt, die in AffiliationLines bereitgestellt werden. | |
| AffiliationId | long | Erforderlich im Rahmen von AffiliationLoyaltyTier | Die Zugehörigkeitsdatensatzkennung. | |
| LoyaltyTierId | long | Erforderlich im Rahmen von AffiliationLoyaltyTier | Die Treuestufedatensatzkennung. | |
| AffiliationTypeValue | int | Erforderlich im Rahmen von AffiliationLoyaltyTier | Ein Wert, der angibt, ob die Zugehörigkeitsposition vom Typ Allgemein (0) oder Zugehörigkeit (1) ist. Wenn der Parameter auf 0 eingestellt ist, übernimmt die API den Wert AffiliationId als Bezeichner und ignoriert den Wert LoyaltyTierId. Wenn der Parameter auf 1 eingestellt ist, übernimmt die API den Wert LoyaltyTierId als Bezeichner und ignoriert den Wert AffiliationId. | |
| ReasonCodeLines | Collection<ReasonCodeLine> | Erforderlich im Rahmen von AffiliationLoyaltyTier | Ursachencodepositionen. Dieser Parameter hat keinen Einfluss auf die Preiskalkulation, wird aber als Teil des Elements AffiliationLoyaltyTier benötigt. | |
| CustomerId | Zeichenfolge | Erforderlich im Rahmen von AffiliationLoyaltyTier | Die Debitorenkontonummer. | |
| Gutscheine | IList<Gutschein> | Optional | Gutscheine, die nicht anwendbar sind (inaktiv, abgelaufen oder nicht gefunden), werden bei der Preisberechnung nicht berücksichtigt. | |
| Code | Zeichenfolge | Erforderlich im Rahmen von Coupon | Der Couponcode. | |
| CodeId | Zeichenfolge | Optional | Der Couponcodebezeichner. Wenn ein Wert angegeben wird, muss er mit dem Wert des Code Parameters übereinstimmen. | |
| DiscountOfferId | Zeichenfolge | Optional | Der Rabattbezeichner. Wenn ein Wert angegeben wird, muss er mit dem Wert des Code Parameters übereinstimmen. |
Beispiel für Anforderungstext
{
"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"
}
]
}
}
Das gesamte Warenkorbobjekt wird als Antworttext zurückgegeben. Um Preise und Rabatte zu überprüfen, konzentrieren Sie sich auf die Felder in der folgenden Tabelle.
| Name | Untername | Art | Beschreibung |
|---|---|---|---|
| NetPrice | dezimal | Der Nettopreis des gesamten Verkaufsbelegs vor Abzug von Rabatten. | |
| DiscountAmount | dezimal | Der Gesamtrabattbetrag des gesamten Verkaufsbelegs. | |
| TotalAmount | dezimal | Der Gesamtbetrag des gesamten Verkaufsbelegs. | |
| CartLines | IList<CartLine> | Berechnete Zeilen, die Preis- und Rabattdetails enthalten. | |
| Preis | dezimal | Der Einheitspreis des Produkts. | |
| NetPrice | dezimal | Der Nettopreis für die Position vor Abzug von Rabatten (= Preis x Menge). | |
| DiscountAmount | dezimal | Der Rabattbetrag. | |
| TotalAmount | dezimal | Das endgültige Gesamtpreisergebnis der Position. | |
| PriceLines | IList<PriceLine> | Preisdetails, einschließlich der Quelle des Preises (Basispreis, Preisanpassung oder Handelsvereinbarung) und des Betrags. | |
| DiscountLines | IList<Rabattzeile> | Rabattdetails. |
GetAvailablePromotions
Zwei ähnliche GetAvailablePromotions-APIs sind verfügbar:
- Carts/GetAvailablePromotions akzeptiert eine Liste der Warenkorbzeilen-IDs als Parameter.
- GetAvailablePromotions akzeptiert ein DiscountsSearchCriteria-Objekt als Parameter.
Carts/GetAvailablePromotions
Bei einem Einkaufskorb mit mehreren Positionen gibt die API Carts/GetAvailablePromotions alle anwendbaren Rabatte für die Warenkorbpositionen zurück.
Der Hauptanwendungsfall für die Carts/GetAvailablePromotions-API ist die Warenkorbseite, auf der Einzelhändler angewendete Rabatte oder verfügbare Coupons für den aktuellen Warenkorb präsentieren.
Die folgende Tabelle führt die Eingabeparameter für die API Carts/GetAvailablePromotions.
| Name | Art | Erforderlich/Optional | Beschreibung |
|---|---|---|---|
| Schlüssel | Zeichenfolge | Erforderlich | Die Einkaufskorbkennung. |
| cartLineIds | IEnumerable<string> | Optional | Legen Sie diesen Parameter fest, um Rabatte nur für ausgewählte Warenkorbpositionen zurückzugeben. |
Beispiel für Antworttext
{
"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
Die GetAvailablePromotions-API gibt alle anwendbaren Rabatte für den jeweiligen Kanal zurück.
Der Hauptanwendungsfall für die GetAvailablePromotions-API ist die Seite "Alle Rabatte ", auf der Einzelhändler alle Rabatte für den aktuellen Kanal anzeigen.
Auf der folgenden Tabelle sind die Eingabeparameter für die API GetAvailablePromotions aufgeführt.
| Name | Untername | Art | Erforderlich/Optional | Beschreibung |
|---|---|---|---|---|
| searchCriteria | DiscountsSearchCriteria | Erforderlich | ||
| ChannelId | long | Erforderlich | ||
| Schlüsselwort | Zeichenfolge | Optional | ||
| IsDiscountCodeRequired | bool | Optional | Gibt an, ob der Gutscheincode erforderlich ist oder nicht. Wenn NULL übergeben wird, ruft die API alle Rabatte ab, unabhängig von den Couponcodeanforderungen. | |
| StartDate | DateTimeOffset | Erforderlich | Das Anfangsdatum (inklusive). | |
| EndDate | DateTimeOffset | Erforderlich | Das Enddatum (inklusive). |
Beispiel für Anforderungstext
{
"searchCriteria": {
"ChannelId": 5637144592,
"StartDate": "1900-01-01T00:00:00Z",
"EndDate": "2154-12-31T00:00:00Z"
}
}
Beispiel für Antworttext
{
"@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
Die API AddCoupons unterstützt das Hinzufügen einer Liste von Gutscheinen zu einem Einkaufskorb. Es gibt das Einkaufskorbelement zurück, nachdem die Gutscheine hinzugefügt wurden.
Die folgende Tabelle zeigt die Eingabeparameter für die API AddCoupons.
| Name | Art | Erforderlich/Optional | Beschreibung |
|---|---|---|---|
| Schlüssel | Zeichenfolge | Erforderlich | Die Einkaufskorbkennung. |
| couponCodes | IEnumerable<string> | Erforderlich | Die Gutscheincodes, die dem Warenkorb hinzugefügt werden sollen. |
| isLegacyDiscountCode | bool | Optional | Stellen Sie diesen Parameter auf true um anzuzeigen, dass es sich bei dem Gutschein um einen alten Rabattcode handelt. Der Standardwert ist false. |
RemoveCoupons
Die API RemoveCoupons unterstützt das Entfernen einer Liste von Gutscheinen aus einem Einkaufskorb. Es gibt das Einkaufskorbelement zurück, nachdem die Gutscheine entfernt wurden.
Die folgende Tabelle zeigt die Eingabeparameter für die API RemoveCoupons.
| Name | Art | Erforderlich/Optional | Beschreibung |
|---|---|---|---|
| Schlüssel | Zeichenfolge | Erforderlich | Die Einkaufskorbkennung. |
| couponCodes | IEnumerable<string> | Erforderlich | Die Gutscheincodes, die aus dem Warenkorb entfernt werden sollen. |
GetProductPromotions
Die API GetProductPromotions wurde in der Commerce-Version 10.0.38 eingeführt. Diese API erhält eine Liste von Werbeprodukten mit bestimmten Produktrabatten. Es kann auch eine Liste von Produktrabatt-IDs und Preiskontext als Eingabe und Abfrage der zugehörigen Werbeprodukte verwenden. Der Hauptanwendungsfall für die API GetProductPromotions sind Produktlistenseiten, auf denen Einzelhändler Produkte mit Rabatten präsentieren. Diese API unterstützt sowohl das eigenschaftsbasierte Preismodell als auch das Legacy-Preismodell.
Die folgende Tabelle zeigt die Eingabeparameter für die API GetProductPromotions.
| Name | Untername | Art | Erforderlich/Optional | Beschreibung |
|---|---|---|---|---|
| productDiscountIds | IEnumerable<string> | Erforderlich | Die Liste der Produktrabatt-IDs zur Suche nach Werbeprodukten. | |
| priceLookupContext | PriceLookupContext | Erforderlich | Der Kontext für die Preise. | |
| activeDate | DateTimeOffset | Optional | Das Berücksichtigungsdatum der Promotion. |
Beschränkungen und Einschränkungen:
- Es können maximal fünf Produktrabatt-IDs als Eingabe verwendet werden.
- Es werden nur einfache Rabatte unterstützt.
Beispiel für Anforderungstext
{
{
"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",
},
}
Beispiel für Antworttext
{
"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
}
]
}
]
}
Weitere Informationen finden Sie unter PriceLookupContext.
PriceLookupContext
Verwenden Sie die PriceLookupContext-Klasse für das eigenschaftenbasierte Preismodell in den GetProductPromotions - und GetActivePrices-APIs .
Das folgende Beispiel zeigt die Struktur der PriceLookupContext-Klasse.
{
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>
},
]
}
Beispiel für Anforderungstext
"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": []
}
Hinweis
- Die API leitet die Kundengruppe von der Kundenkontonummer ab, sodass die Anforderung keine Kundengruppe im PriceLookupHeaderContext-Parameter angibt.
- Sie können die ChannelId im PriceLookupHeaderContext-Parameter angeben. Wenn Sie sie nicht angeben, verwendet die API die ChannelId aus dem Anforderungskontext (dem aktuellen Kanal bei Verwendung von Store Commerce).