Группа заказа – Pixie Digital

Во многих деловых сценариях расчет Заказ всего включает в себя сложную логику, такую как динамическая плата за обработку на основе элементов, пакетов или пользовательских правил. По умолчанию IOrderGroupCalculator реализация в DefaultOrderGroupCalculator может недостаточно для этих передовых требований.

DefaultOrderGroupCalculator Служба вычисляет следующие, а пользовательский класс может переопределить связанный метод.

  • Общий – переопределить GetTotal (iorderGroup OrderGroup)
  • Подтотальный – переопределить GetSubtotal (iorderGroup OrderGroup)
  • Обработка всего – переопределить Gethandlingtotal (iordergroup ordergroup)
  • Доставка подтотала – переопределить getShippingSubtotal (iordergroup ordergroup)
  • Заказ скидка общая сумма – переопределить getorderdiscounttotal (iordergroup ordergroup)
  • Общая налог – переопределить gettaxtotal (iordergroup ordergroup)
  • Заказ группы Всего – переопределить getordergrouptotals (iordergroup ordergroup)

Расширение логики расчета

Вместо полной замены IOrderGroupCalculatorвы можете реализовать пользовательский калькулятор на основе DefaultOrderGroupCalculator и переопределить соответствующий метод расчета для сохранения встроенной функциональности и расширения только необходимых частей.

Пример: внедрение платы за обработку


using EPiServer.Commerce.Order.Calculator;
using Mediachase.Commerce.Markets;

namespace Foundation.Customizations
{
    public class OrderGroupCalculatorOverridingDefault : DefaultOrderGroupCalculator
    {
        public OrderGroupCalculatorOverridingDefault(IOrderFormCalculator orderFormCalculator, IReturnOrderFormCalculator returnOrderFormCalculator, IMarketService marketService) : base(orderFormCalculator, returnOrderFormCalculator, marketService)
        {
        }
        protected override Money CalculateHandlingTotal(IOrderGroup orderGroup)
        {
            // Use Handling service to calculate correct handling fee
            // var handlingFee - _handlingFeeCalculator.GetHandlingFee(orderGroup)
            return new Money(10, orderGroup.Currency);
        }
    }
}

Зарегистрируйте свой новый сервис в некотором модуле интриализации

_services.AddSingleton();

Версия: Оптимизируем коммерция Connect v14

Ссылки: https://docs.developers.optimizely.com/commerce-connect/docs/calculate-orders-rord-roup-calculator

Read more:  Онлайн-форма с результатами Саркари, группа D Высокого суда Аллахабада, 2024 г.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.