HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Workflows and activities

Describes how you can work with validation services and processors, in replacement of workflows and activities that were made obsolete by Optimizely Customized Commerce version 14.

In Optimizely Commerce (PaaS), activity flows were used to validate and calculate checkout totals. An activity flow is a container of steps or activities that can be executed. When executing an activity flow, a list of configured activities and if/else conditions are executed.

Activities can be replaced by the following validation services and processors:

  • OrderValidationService
  • IPurchaseOrderProcessor
  • IPaymentPlanProcessor
  • IShipmentProcessor
  • IPlacedPriceProcessor
  • IInventoryProcessor
  • IPaymentProcessor
  • Order total calculators

These components mentioned here are available in the EPiServer.Commerce.Order and EPiServer.Commerce.Order.Calculator namespaces.

Activity flows

  • CartValidateActivityFlow
    Use OrderValidationService.ValidateOrder() instead.
  • CartPrepareActivityFlow
    Use OrderValidationService.ValidateOrder() and OrderGroupExtensions.CalculateTotals() instead.
  • CartCheckoutActivityFlow
    Use OrderValidationService.ValidateOrder() and OrderGroupExtensions.CalculateTotals() instead.

Example Commerce (PaaS) 14 and higher:

CartBuilder ch = new CartBuilder();
    foreach (VariationContent entry in entries)
    {
       ch.AddEntry(entry, quantity, false);
    }
    ch.Cart.ProviderId = "FrontEnd";
    OrderValidationService.ValidateOrder(ch.Cart);
    ch.Cart.AcceptChanges();

Example Commerce (PaaS) 10-13:

CartBuilder ch = new CartBuilder();
    foreach (VariationContent entry in entries)
    {
       ch.AddEntry(entry, quantity, false);
    }
    ch.Cart.ProviderId = "FrontEnd";
    ch.RunWorkflow(OrderGroupWorkflowManager.CartValidateWorkflowName);
    ch.Cart.AcceptChanges();

Activities

  • AdjustInventoryActivity
    Use IOrderGroupExtensions.AdjustInventoryOrRemoveLineItems() instead.
  • CalculateDiscountsActivity
    Use IOrderGroupExtensions.ApplyDiscounts() and IOrderGroupExtensions.UpdateInventoryOrRemoveLineItems() instead.
  • CalculateTotalsActivity
    Use IOrderGroupExtensions.CalculateTotals() instead.
  • CheckInventoryActivity
    Use IOrderGroupExtensions.UpdateInventoryOrRemoveLineItems() instead.
  • ProcessPaymentActivity
    Use IPaymentProcessor.ProcessPayment() instead.
  • RemoveDiscountsActivity
    Use IOrderGroupExtensions.ApplyDiscounts() instead.
  • ShipmentSplitActivity
    Use IOrderGroupExtensions.CalculateTotals() instead.
  • ValidateLineItemsActivity
    Use IPlacedPriceProcessor.UpdatePlacedPrice() instead.