Rozszerzenia ceny

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:

  1. Dodaj wstępnego do CalculatePricesServiceRequest i zaktualizuj jego wartość DateWhenActive do daty, w którym powinno nastąpić obliczanie.

  2. Dodaj wstępnego do CalculateDiscountsServiceRequest i zaktualizuj jego wartość DateWhenActive do daty, w którym powinno nastąpić obliczanie.

    Uwaga / Notatka

    Można zmodyfikować wartość DateWhenActive właściwości CalculateDiscountsServiceRequest tylko w wersji Commerce w wersji 10.0.37 lub nowszej.

  3. 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
  4. 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.