Promotions are divided into three general types:
  • Item Discount Promotions
  • Order Discount Promotions
  • Shipping Discount Promotions
Several options to deliver the promotion to users.
  • Create a coupon or batch of coupons
  • Create a scenario that determines the visitors and adding the promotion to their activePromotions profile attribute.
  • You can also set up promotions that are provided to all customers automatically – for these, you do not need to set up a scenario or a coupon.
When a customer adds an item to their cart or performs any other action that involves requesting a price from the system, ATG Commerce checks their visitor profile to see whether they currently qualify to receive any of the promotions you have set up. If a customer qualifies, ATG Commerce uses the promotion discounts to calculate the price of the product for the customer, and it adjusts the price accordingly.

You can inform site visitors about promotions in several ways.
  • visitor simply sees the adjusted price on the checkout page.
  • You could use the GetApplicablePromotions droplet to identify promotions that apply to particular items, and display this information on the product page. 
  • Or you could send an e-mail that describes the promotion, perhaps including a discount coupon code in the message.

Note: Promotions you create in the ACC can be edited in Merchandising; however, not all promotion types can be created using the ACC. Also, promotions created using Merchandising templates cannot be edited in the ACC, due to differences in the PMDL generated.

Promotion Repository :


If a user’s session is created after a new global promotion addition but before the next scheduled job, the user will not receive the new global promotion. You can prevent this situation by manually calling the :
  • pricingEngine.loadGlobalPromotions method when you add the new global promotion. 

Additionally, if a user’s session was created before you added a new promotion (either targeted or global), that user will never receive the new promotion. This is because the user’s list of pricing models has already been collected and stored in the user’s UserPricingModels. To prevent this situation, manually call the
  • pricingModelHolder.initalizePromotions method when you add any new promotion (targeted or global). 
  • The initializePromotions method generates a new list of pricing models to store in the user’s UserPricingModels. 

Note : The pricingModelHolder.initializePromotions method should be called after the pricingEngine.loadGlobalPromotions method in order to collect all new global promotions.

 A customer’s profile has an activePromotions property that contains a list of PromotionStatus RepositoryItems. Each PromotionStatus item contains the following information:
  • The number of times that a customer can use the promotion.
  • The date on which the user was granted the promotion.
  • During the pricing process, pricing engines inspect the customer’s profile to see which promotions should be considered when generating prices.

No comments :