Minimum Version Required: 22.01
Pre-Conditions
You must have permission to edit promotions (PromoEdit permission) to update or modify certain promotion fields
ProductID or ProductID_Translation must be mapped in your import file
For delete actions, PromotionID or PromotionID_Translation must be mapped
Steps
The Promotions EDBL routine allows you to import, update, or delete promotions and their associated product relationships. It handles single or multiple products per promotion and can work with different promotion types (e.g., FrontLine). The routine can process zone-specific promotions and supports customer-specific promotions.
Steps/General Instructions
Create an import file containing promotion data with the required fields
Map your file columns to the appropriate EDBL fields
Select the appropriate import action
Delete: Removes promotion-product relationships
Run the import routine
Review the processing results to confirm successful imports, updates, or deletions
Behavior Notes
When using Delete action, the routine removes promotion-product relationships but not the promotions themselves
Setting LimitLinesToASingleProduct restricts each promotion to a single product
The system will attempt to match records using translations if available
The routine supports zero-padding correction for product IDs when matching to existing products
Import performance may decrease with large numbers of promotions or products
Fields And Definitions
Promotion Information:
PromotionName: Name of the promotion (text, max 50 characters)
PromotionType: Type of promotion (integer, default is FrontLine)
StartDate: Beginning date for the promotion (date, defaults to today's date)
Memo: Notes or additional information about the promotion (text, max 500 characters)
Active: Whether the promotion is active (yes/no, default is Yes)
Product Information:
ProductID: Internal product identifier (required if ProductID_Translation is not provided)
ProductID_Translation: External product identifier used for matching to internal product records
Location and Zone Information:
LocationID: Internal location identifier
LocationID_Translation: External location identifier
ZoneID: Internal zone identifier
ZoneID_Translation: External zone identifier
Customer Information:
CustomerID: Internal customer identifier
CustomerID_Translation: External customer identifier
Pricing Information:
Amount: General discount amount (currency, default is 0)
CaseAmount: Discount amount per case (currency, default is 0)
UnitAmount: Discount amount per unit (currency, default is 0)
Participation: Supplier participation amount (currency, default is 0)
CaseParticipation: Supplier participation amount per case (currency, default is 0)
UnitParticipation: Supplier participation amount per unit (currency, default is 0)
Quantity Information:
FreeUnits: Number of free units in promotion (integer, default is 0)
minNumUnits: Minimum number of units required (integer, default is 0)
minProductCount: Minimum number of products required (integer, default is 0)
Advanced Fields:
PromotionID: Internal promotion identifier (used for updating or deleting)
PromotionID_Translation: External promotion identifier
Condition: Conditional rule for the promotion
MarketID: Market identifier for the promotion
EndDate: Ending date for the promotion
OverrideLevel: Defines how the promotion overrides other promotions
OverrideLevel_Value: Text version of override level ("All Rules", "Min Num Units", etc.)
Best Practices
Always include ProductID or ProductID_Translation in your import file
Map as many fields as possible to ensure complete promotion data
Use consistent external IDs across imports to maintain translation integrity
Consider splitting large imports into smaller batches for better performance
When updating existing promotions, include the PromotionID or PromotionID_Translation for accurate matching
Include LocationID or LocationID_Translation to ensure promotions are associated with the correct location
Set proper StartDate and EndDate values to control promotion availability
Consider using PromotionName consistently across imports for easier identification
Test your imports with a small sample before running full production imports