Product Configurator - looking up Pricing of material based on price lists

I have a customer driven need where we need to determine the selling price of a configured part based on the customer pricing for the materials on the configured bom. I have not come across any information on how I might call a business object.
Ideally it would be nice to have a user defined method that would allow be to pass the custid, shiptonum and partnum to the GetPriceListInquiry.

Any ideas?

You can make the same call that the Price List Inquiry uses from a BPM or a Customization. I’ve needed this elsewhere. But the values aren’t always the same if you use multiple UOMs.

Our configurator guy has not tried any of the ‘advanced’ methods like using a custom DLL to create functions that call BO’s, but he has used LINQ to query the database to get data. You could just do that directly on the CustomerPriceList table using those values (custnum, shipttonum, partnum) yourself.

I was going down that path, except the customer record can have several price lists assigned to it and there are actually 2 tables involved. CustomerPriceList and PriceListParts, then if the part isn’t found there, I need to look at the part table. So my challenge is having to do multiple queries. I can easily to this in a BAQ, but not so easy in the Product Configurator…

Understood - nothing is ever plain and simple. You could do a SQL view that finds the right price given those three parameters and use the view in your LINQ statement…

Don’t forget the Discount Price Lists too.

1 Like

Okay. I found a resolution to this. It is just that the syntax is not obvious.

For quotes, you can use:
ExecutePricing.QuotePrice = Pricing.ComponentPricing;

You also have to check a couple of boxes on the Document Rules/Pricing Options Tab. Use Component Pricing and Use Resulting Job Method for Component Pricing. (I actually think you just need the first one for Quotes and orders).
Then you add the above syntax to the Document Rules.
There was no example of the correct syntax but a number of clues that this worked.
It evaluates the price lists assigned to the customer and pricing on the part and will consolidate the pricing of all the material selected as the quoted selling price (or sales price if you have it there as well).

Hi Rick,
Thank for your solution. I was trying to do as you suggested. But I could not able to assign the Rule Action as you did. It is showing syntax error. I am sure, I am missing something. I tried to go through the configurator technical reference doc, but there is no specific example about how to call the pricing rule finctions.
Did you put the code “ExecutePricing.QuotePrice = Pricing.ComponentPricing;” in a document rule action or somewhere else? is “ExecutePricing.QuotePrice” a UD method defined somewhere else?
Thanks in advance. Any suggestions will be highly appreciated.

Pricing.QuotePrice = Pricing.ComponentPricing;

See the summary here

https://epicweb.epicor.com/Education/OnlineHelpFeatureSummary/Epicor%20ERP%2010/10.2.200/enu/Standard/TechRefGuideConfiguration/techrefConfig.CodeEditorAvailableSelectionsPricing.html

I have a document rule which is assigned on the Configuration Entry, Document Rules, Detail tab. It is a simple Execute and the specific syntax in my situation is:
Pricing.OrderPrice = Pricing.ComponentPricing + (System.Convert.ToDecimal (UDMethods.LaborRat() / 6-)) * Inputs.epiPcNLaborHrs.Value;

In my case, the UD Methods is just getting the labor rate that we want to use. the Inputs.epiPcNLaborHrs.Value is a field on our configurator entry that is populated during the configuration entry session.

In order for the ExecutePricing portion, you need to check the Pricing Options tab and make sure that the Use Component Pricing is checked and I also have the Use Resulting Job Method For Component Pricing checked.