Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak rozšířit funkce tvorby cen a slev v Microsoft Dynamics 365 Commerce.
Rozšíření cenového modulu Commerce
Cenový modul Commerce je centrem tvorby cen a slev v Dynamics 365 Commerce. Pokud chcete rozšířit cenový modul Commerce, nejprve se seznamte s terminologií v následující tabulce.
| Name | Description |
|---|---|
| Slevový balíček | Slevový balíček je třída, která implementuje rozhraní IDiscountPackage, jež slouží jako jiný typ slevy. Můžete definovat různé chování v souvislosti se slevami vytvořením různých slevových balíčků. |
| Filtr slev | Pokud chcete přizpůsobit použitelnost slev, vyfiltrujte některé slevy implementací rozhraní IDiscountFilter na základě vašich obchodních požadavků. |
Cenový modul Commerce je sestavení, které je sdíleno napříč Commerce headquarters a jednotkami Commerce Scale Unit (CSU). Proto potřebujete napsat jenom jednu část rozšíření cenového modulu (například nový balíček slev). Toto rozšíření můžete použít jak v ústředí, tak v prodejním místě (POS).
Registrace vlastních rozšíření
Po vytvoření rozšíření cenového modulu ho zaregistrujte prostřednictvím PricingEngineExtensionRepository. Proces registrace se liší v závislosti na produktu, se kterým jej integrujete.
JOK a Store Commerce
Pro žádosti o služby, na které chcete použít balíčky rozšíření, můžete přidat předběžné triggery. Následující tabulka obsahuje popis žádostí o služby.
| Požadavek na službu | Description |
|---|---|
| CalculatePricesServiceRequest | Tato žádost o službu vypočítá ceny za prodejní transakci. Tyto ceny zahrnují základní cenu, cena obchodní smlouvy a úpravy cen. |
| CalculateDiscountsServiceRequest | Tato žádost o službu vypočítá slevy pro prodejní transakci. Tyto slevy zahrnují obchodní smlouvy o slevách, jednoduché slevy, kombinované slevy, množstevní slevy a prahové slevy. |
| GetIndependentPriceDiscountServiceRequest | Tato žádost o službu počítá pouze ceny a slevy na jednom řádku. Můžete ho použít pro stránky s výpisem produktů a podrobnostmi o produktech, kde se ceny produktů počítají nezávisle. |
| CalculateShippingDiscountsServiceRequest | Tato žádost o službu vypočítá slevy na dodávku pro prodejní transakci. |
Když například vytvoříte nový slevový balíček, můžete přidat předběžný trigger k CalculateDiscountsServiceRequest žádosti o službu a zavolat PricingEngineExtensionRepository.RegisterDiscountPackage(new DiscountPackage()); uvnitř předběžného triggeru.
Poznámka:
Když nahradíte předpřipravené obslužné rutiny za CalculateDiscountsServiceRequest, při výpočtu slev nezapomeňte označit žádost request.Transaction.IsDiscountFullyCalculated jako true. Pokud tuto hodnotu nenastavíte, může proces pokladny blokovat transakci s chybou podobnou Součty transakcí musí být vypočítány před dokončením nákupu.
Finanční a provozní aplikace
U aplikací pro finance a provoz zaregistrujte slevy prostřednictvím rozšíření X++ na základě vašich uživatelských scénářů. Chcete-li například použít přizpůsobený slevový balíček pro prodejní objednávky call centra, můžete přidat předběžné triggery pro RetailSalesOrderCalculator::setPricesDiscountsOnOrder a zavolat Microsoft.Dynamics.Commerce.Runtime.Services.PricingEngine::RegisterDiscountPackage(new DiscountPackage()); uvnitř předběžného triggeru.
Počítání cen a slev k jinému než dnešnímu datu
Ve výchozím nastavení cenový modul Commerce uplatňuje ceny a slevy na základě data, kdy dojde k prodejní transakci. Obvykle je toto datum „dnes“.
Chcete-li přepsat výchozí chování, postupujte takto:
Přidejte do souboru pretrigger
CalculatePricesServiceRequesta aktualizujte jehoDateWhenActivehodnotu na datum, kdy má dojít k výpočtu.Přidejte do souboru pretrigger
CalculateDiscountsServiceRequesta aktualizujte jehoDateWhenActivehodnotu na datum, kdy má dojít k výpočtu.Poznámka:
Hodnotu
DateWhenActiveuCalculateDiscountsServiceRequestmůžete změnit pouze ve verzi Commerce 10.0.37 a novější.V centrále přejděte na Retail a Commerce>Nastavení centrály>Parametry>Parametry Commerce a přidejte následující konfigurační klíč a hodnotu:
- Klíč: Pricing.ResetSalesDateKillSwitch
- Hodnota: true
Spusťte úlohu 1070 (konfigurace kanálu) v Commerce Data Exchange (CDX).
Poznámka:
Musíte zajistit, aby hodnota SalesDate pro všechny řádky prodeje odpovídala datu, které je nastaveno pro DateWhenActive.