Looking for Best Practice to Add 25% to Specific Parts on a Price List
I was asked by my manager to look into how difficult it would be to add a 25% markup to a specific price list of parts.
Right now, prices are automatically calculated when a new line is added to a sales order, so manually adjusting each line isn’t ideal.
I’m trying to figure out the best‑practice approach to apply a 25% increase to only certain parts, while still letting the system calculate pricing normally when the sales order, new line is created.
A few things I’m trying to avoid:
Manually overriding prices on each sales order line
Breaking existing price calculations or future updates
Applying the markup globally instead of only to specific parts
If you have some number of parts on a price list and only want to add the increase to a subset, export that price list and make the increases to only the parts you want to. Then DMT that subset into a new price list and put that price list first in the customer price list hierarchy. Sales orders will look there first and go to the next price list if it isn’t part of the icreased subset.
There are many ways to handle prices in Epicor- its possible this won’t work for your setup. More details would help.
To provide more context: this request is intended to accommodate a 25% tariff increase for Canada, applied only to specific parts, not globally.
I’m still becoming familiar with how Epicor handles price lists and pricing calculations, as this is my first time working with the system. I do have a background as a software development, so I’m actively learning the platform and its pricing logic as I go.
My overall goal is to implement this change in a way that is:
Easy to maintain
Limited to specific parts
Does not interfere with existing price calculations
Avoids manual overrides on sales orders
I was asked to evaluate the best approach within Epicor and would appreciate guidance on recommended or best‑practice methods for handling a targeted price adjustment like this (e.g., separate price lists, pricing modifiers, or other built‑in mechanisms).
Any insight from those with more Epicor pricing experience would be greatly appreciated.
Unlike POs and setting duties and tariffs that can be applied in landed cost, you don’t have that ability for SO.
Options as I see it are:
Specific price list for those specific parts and apply to your customers that are in Canada. That price list can be fairly simply managed based on the application or removal of said tariffs.
You could use misc charges on the sale order lines and automate that. I started writing up how that would be like, but it started getting rather complicated by the time you considered the list of parts and customers etc. It gives you the guist…
Personally the price list approach is the simplest and retains the integrity of base system without adding additional customisations that need to be developed and tested..
That being said, there is a big argument for Epicor to have a simpler way of managing this sort of pricing on Sales side of things.
I am assuming you are passing on Tariff costs for parts/products you import/source from Canada (AFAIK Canada is not charging tariffs at this point and that would only be an issue for you if you were also the importer of record in Canada)?
In general the first thing you have to do is determine what parts get the upcharge and when. If all the parts are set with CoO Canada, or a specific product group, custom flag, etc, you will need something (static list can be done but is a bit more painful to manage) to be able to select against.
From there you can either decide to create a new price list with those parts and apply that PL to applicable customers, setting it higher in the list than others.
OR you can create a BPM that checks against some flag on the Part and potentially a flag on the Customer as well (if you want to handle customers differently). The BPM Cookbook that is available on EpicWeb has an example of how to create a BPM to apply Misc Charges that you can use as a basis for doing this, IIRC it focuses on the OrderMisc level, not LineMisc but also IIRC I have tweaked it to do exactly this, evaluate against Line Level details and then add LineMisc charges.
I like option two personally though it takes a bit more experimentation vs just creating a new list and applying that.
An extra, added bonus of the Misc route is that your finance team can setup the Misc code to post to a GL Specific to the tariffs so they don’t end up in the general revenue accounts.
This approach aligns well with how we could realistically implement a solution. One of the challenges with the Price List is that we use a tiered pricing model there are multiple price lists per customer, and the unit price can vary based on quantity thresholds or shipment timing. Given that complexity, adding a miscellaneous charge through a BPM that triggers when a new line is added and only when the part has a specific flag would be a practical and manageable solution.