Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób rozszerzenia funkcji cen i rabatów w Microsoft Dynamics 365 Commerce.
Rozszerzanie mechanizmu cenowego Commerce
Aparat cen w Commerce to centrum funkcji ustalania cen i rabatów w aplikacji Dynamics 365 Commerce. Aby rozszerzyć aparat cen handlu, najpierw zapoznaj się z terminologią w poniższej tabeli.
| Name | Description |
|---|---|
| Pakiet rabatowy | Pakiet rabatowy to klasa implementuje interfejs IDiscountPackage, który służy jako inny typ rabatu. Różne działania rabatu można zdefiniować, tworząc różne pakiety rabatów. |
| Filtr rabatów | Aby dostosować stosowanie rabatów, odfiltruj niektóre rabaty, implementując interfejs IDiscountFilter na podstawie wymagań biznesowych. |
Aparat cen w Commerce jest zestawem współużytkowym w centralach Commerce headquarters i Commerce Scale Units (CSUs). W związku z tym wystarczy napisać tylko jeden kawałek rozszerzenia aparatu cenowego (na przykład nowy pakiet rabatowy). Można użyć tego rozszerzenia zarówno w siedzibie, jak i w punkcie sprzedaży (POS).
Zarejestruj rozszerzenia
Po utworzeniu rozszerzenia aparatu cenowego zarejestruj je za pomocą polecenia PricingEngineExtensionRepository. Proces rejestracji zmienia się w zależności od produktu, z którym jest integrowany.
CSU i Store Commerce
Dodaj pretriggery dla żądań serwisowych, w których chcesz zastosować pakiety rozszerzeń. W poniższej tabeli opisano dostępne żądania serwisu.
| Zlecenie usługi | Description |
|---|---|
| CalculatePricesServiceRequest | To żądanie usługi oblicza ceny dla transakcji sprzedaży. Te ceny zawierają cenę podstawową, cenę umowy handlowej i korekty cen. |
| CalculateDiscountsServiceRequest | To żądanie usługi oblicza rabaty dla transakcji sprzedaży. Te rabaty zawierają umowy handlowe z rabatami, proste rabaty, rabaty mieszane, rabaty ilościowe i rabaty progowe. |
| GetIndependentPriceDiscountServiceRequest | To żądanie usługi oblicza tylko ceny i rabaty jedno wierszowe. Służy do wyświetlania listy produktów i stron szczegółów produktu, na których ceny produktów są obliczane niezależnie. |
| CalculateShippingDiscountsServiceRequest | To żądanie usługi oblicza rabaty wysyłki dla transakcji sprzedaży. |
Na przykład podczas tworzenia nowego pakietu rabatu można dodać wstępny wyzwalacz do żądania usługi CalculateDiscountsServiceRequest i wywołać PricingEngineExtensionRepository.RegisterDiscountPackage(new DiscountPackage()); wewnątrz tego wyzwalacza wstępnego.
Uwaga / Notatka
Podczas zastąpienia gotowych programów do obsługi dla CalculateDiscountsServiceRequest upewnij się, że request.Transaction.IsDiscountFullyCalculated jest oznaczone jako Prawda, gdy obliczane są rabaty. Jeśli nie ustawisz tej wartości, proces finalizacji może zablokować transakcję z błędem podobnym do suma transakcji musi być obliczona przed finalizacją.
Aplikacje finansowe i operacyjne
W przypadku aplikacji finansowych i operacyjnych zarejestruj rabaty za pomocą rozszerzeń X++, w zależności od scenariuszy użytkownika. Na przykład, jeśli chcesz zastosować niestandardowy pakiet rabatu dla zamówień sprzedaży w centrum obsługi, możesz dodać wstępny wyzwalacz w RetailSalesOrderCalculator::setPricesDiscountsOnOrder i wywołać Microsoft.Dynamics.Commerce.Runtime.Services.PricingEngine::RegisterDiscountPackage(new DiscountPackage()); wewnątrz tego wyzwalacza wstępnego.
Obliczanie cen i rabatów dla daty innej niż dzisiejsza
Domyślnie aparat cen commerce stosuje ceny i rabaty na podstawie daty, kiedy transakcja sprzedaży nastąpi. Zazwyczaj datą jest „dzisiaj”.
Aby zastąpić zachowanie domyślne, wykonaj następujące kroki:
Dodaj wstępnego do
CalculatePricesServiceRequesti zaktualizuj jego wartośćDateWhenActivedo daty, w którym powinno nastąpić obliczanie.Dodaj wstępnego do
CalculateDiscountsServiceRequesti zaktualizuj jego wartośćDateWhenActivedo daty, w którym powinno nastąpić obliczanie.Uwaga / Notatka
Można zmodyfikować wartość
DateWhenActivewłaściwościCalculateDiscountsServiceRequesttylko w wersji Commerce w wersji 10.0.37 lub nowszej.W Headquarters przejdź do opcji Handel detaliczny i inny>Ustawienia headquarters>Parametry>Parametry Commerce i dodaj następujący klucz konfiguracji i wartość:
- Klucz: Pricing.ResetSalesDateKillSwitch
- Wartość: prawda
Uruchom zadanie 1070 (Konfiguracja kanału) Commerce Data Exchange (CDX).
Uwaga / Notatka
Musisz upewnić się, że wartość SalesDate wszystkich wierszy sprzedaży odpowiada dacie ustawionej dla DateWhenActive.