Workflows and activities
2 min
In Optimizely Commerce Connect, 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 Connect 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 Connect 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.