Hide menu Last updated: Aug 08 2016

Hiding promotion types

This topic explains how to determine which promotion types appear on the Edit Discount view in Episerver Commerce. To do this, use the PromotionTypeHandler class.

Note: In the user interface, promotions are called "discounts."

How it works

The PromotionTypeHandler class provides methods to hide promotions on the Edit Discount view. Use it to prevent marketers from creating new promotion of those types.

  • DisablePromotions. To disable specific promotion types. These promotions do not appear in the Edit Discount view.
  • EnablePromotions. To enable specific promotion types.
  • DisableBuiltinPromotions. To disable all built-in promotion types. If this is set, only custom promotions are enabled in the UI.
  • GetAllPromotionTypes. Gets all promotion types in your site.

Examples

Disable the BuyQuantityGetFreeItems promotion.

var promotionTypeHandler = ServiceLocator.Current.GetInstance<PromotionTypeHandler>();
promotionTypeHandler.DisablePromotions(new[] { typeof(BuyQuantityGetFreeItems) });

Re-enable that promotion.

promotionTypeHandler.EnablePromotions(new[] { typeof(BuyQuantityGetFreeItems) });

Disable all built-in promotion types when a site is initialized.

namespace EPiServer.Commerce.Sample.Business.Initialization
{
    [ModuleDependency(typeof(EPiServer.Commerce.Initialization.InitializationModule))]
    public class InitializationModule : IConfigurableModule
    {
        public void Initialize(InitializationEngine context)
        {
            DisablePromotionTypes(context);
        }

public void Uninitialize(InitializationEngine context) { } public void ConfigureContainer(ServiceConfigurationContext context) { } private void DisablePromotionTypes(InitializationEngine context) { var promotionTypeHandler = context.Locate.Advanced.GetInstance<PromotionTypeHandler>();
// To disable all built-in promotion types promotionTypeHandler.DisableBuiltinPromotions(); } } }

Comments