Magento Open Source can run contract pricing when the agreement is modeled explicitly. A reliable price list needs a name, owner, website, customers, products, calculation type, quantity thresholds, validity dates, and a rule for conflicts. Importing a spreadsheet without those decisions only moves ambiguity into Magento.
1. Define the agreement boundary
Decide whether one list represents one legal contract, one sales program, one region, or one customer level. The name should make sense to sales, support, and operations. Avoid names such as "List 7" that require a separate lookup.
Record who owns changes and who approves them. Magento can calculate prices, but it cannot decide whether a sales representative or ERP administrator was authorized to alter a contract.
2. Choose the assignment method
Direct assignment works for a negotiated customer. Group assignment works for a standard dealer program. Attribute assignment works when stable customer data, such as account class or country, determines eligibility.
Do not use a mutable field for automatic assignment without understanding its lifecycle. A changed address or group can change the applicable agreement.
3. Model prices and quantities
For each SKU, decide whether the agreement stores a fixed price or a change from another price. SoftwareSilo supports fixed values, nominal and percentage surcharges, and nominal and percentage discounts.
Add only meaningful quantity breaks. Duplicate thresholds across matching lists need a predictable strategy, otherwise two correct source files can still produce an unexpected final price.
4. Use dates deliberately
The list period describes the agreement. Product-level dates describe exceptions within it. For example, an annual distributor list may start in January while one supplier increase begins in March.
Agree on the time zone and deployment moment. Test the old price immediately before the boundary and the new price immediately after it.
5. Define fallback and priority
A base price list can cover buyers without a specific match. Priorities decide which agreement leads when several lists apply. Document the examples in plain language, including equal priorities and quantity merging.
6. Pilot before bulk loading
Use a small set containing a direct customer, a group customer, an attribute-assigned customer, a buyer using the base list, a configurable product, two quantity levels, and a date change. Verify category, product, cart, checkout, order, My Prices, and export before importing the full catalog.
Related reading
Last reviewed: August 9, 2026.
