Developing a Configurable Pricing Program
        Posted  
        
            by 
                Ben DeMott
            
        on Programmers
        
        See other posts from Programmers
        
            or by Ben DeMott
        
        
        
        Published on 2011-12-13T02:02:31Z
        Indexed on 
            2012/03/31
            11:41 UTC
        
        
        Read the original article
        Hit count: 485
        
The organization I work at has some interesting requirements when it comes to pricing for online commerce. Currently the developers write different 'pricing rules' and those rules can be applied to our items based on attributes of the items.
For Example:
INPUTS: [cost, sug_retail, discontinued, warehouse_qty, orderable_qty, brand, type, days_available, shipping_rate, weight, map_protected, map_discount]
MATCH: brand=x, warehouse_qty > 1, discontinued=True, map_protected=False
SET: retail_price = (sug_retail * 0.95), offer_price1 = (cost * 1.25 + shipping_rate)
I am looking to allow the merchandising team to have more control over the pricing and formulas - they are afterall technical enough to write excel formulas.
I've been looking at writing a desktop application that uses something like numexpr http://code.google.com/p/numexpr/ or http://sympy.org/en/index.html to allow non-programmers to integrate their own logic into our pricing backend.
We have multiple price-tiers we have to set, for multiple markets, so an elegant solution is needed. It's getting frustrating for the dev team to continually tweak/manage all of the pricing rules (we sell over 200 brands in 3 markets).
My question is; does this seem like a decent approach?  Can you think of a better way to parse string-mathematical-grammer?  Can you think of a different way for users to provide formula's to integrate into a automated pricing system?
Does anyone know of any examples of existing applications that do this?
Excel, and Access are out of the question - the volume of data we manipulate has already proven the need to automate it - now we just need some visibility into that automation.
© Programmers or respective owner