We need a real flexible pricing system, flexibility is needed on product level and on shopping basket level.
Example:
1) We've new products in stock and we want to offer our best customers (e.g. which already bought > 300 Euro) a discount on this product. We want to show this price in the catalog when customer is browsing through the products (and when logged on). In the shopping basket, this discount must be shown as well.
2) Shopping Basket level: when a user allows us to write on his facebook wall, he/she will get a discount of 1% on the total value of the shopping basket. This discount is shown in the price decomposition.
3) Prices may vary in time. It should be possible to set-up time-dependend prices per product.
Probably this has to be programmed with the API? But which methods should be used to:
- Show the price reductions in the shopping basket
- Calculate the total value (and show it) of the Shopping basket
- Show the discount in the catalog.
Should be something like next:
- Mobile Phone : 200 USD
- Gold customer: 10 USD
- Shopping Basket Value: 210 USD
- Discount FB connect(1%): 2.1 USD
- Total Value: 207.9 USD
Our problem is: how to hook-up our price calculation schemes & program logic with the standard coding?
We've a lot of experience in price calculations (working lots of years in SAP environments) and need a similar fexibility in price determination for a web-shop.
We've have the concept of price groups which will help you get some of the way. Each product in uCommerce can have multiple prices associated with them so you could do something along the lines of having a Standard Price, a Gold price, and whatever else you need. To make it work though you'd have to specify the total price for each product so given your example your phone would be priced:
Mobile phone (Standard price): USD 200
Gold customer (Gold price): USD 210
Price Groups and Catalogs
To display the appropriate price you can create two catalogs: One for standard customers and one for Gold Customers and select the appropriate price group for each of these.
Selecting the Catalog and Updating Customer Status
With this in place you'd select the proper catalog based on log in status of the customer and whatever criteria you'd need. Ideally you'd have an indication on the Umbraco member of customer status, e.g. Standard or Gold, which you can update during check out based on the dollar amount of the orders for a particular client.
For modifying prices in the basket you can hook into the price calculations by modifying the basket pipeline found in /umbraco/ucommerce/pipelines/basket.config. Some process as for the checkout pipline.
If you need to display the discounts during checkout you can use dynamic order properties to store the original pricing on the order line using the following API:
// in XSLT
CommerceLibrary:SetOrderProperty("OriginalPrice", theOriginalPrice);
// in .NET
purchaseOrder["orginalPrice"] = theOriginalPrice;
orderLine["orignalPrice"] = theOriginalPrice;
Unfortunately uCommerce doesn't have any time based pricing support so you'd have to build that piece yourself. I'd like to hear your requirements on this front as it might be an interesting feature to add to uCommerce at some future point.
We'll develop our own pricing logic and post this as a new package (if you're interested). Also our price of a product (as shown in catalog) can be very flexible (much more flexible than what can be provided with different catalogs), so what's the correct way to show "at runtime calculated" prices in the catalog?
In the next version of uCommerce (1.0.4.3) our PricingService will be exposed as an extension point for you to extend or replace. This will give you the flexbility needed to do on the fly price calculations.
uCommerce flexible price calculation schemes
Dear,
We need a real flexible pricing system, flexibility is needed on product level and on shopping basket level.
Example:
1) We've new products in stock and we want to offer our best customers (e.g. which already bought > 300 Euro) a discount on this product. We want to show this price in the catalog when customer is browsing through the products (and when logged on). In the shopping basket, this discount must be shown as well.
2) Shopping Basket level: when a user allows us to write on his facebook wall, he/she will get a discount of 1% on the total value of the shopping basket. This discount is shown in the price decomposition.
3) Prices may vary in time. It should be possible to set-up time-dependend prices per product.
Probably this has to be programmed with the API? But which methods should be used to:
- Show the price reductions in the shopping basket
- Calculate the total value (and show it) of the Shopping basket
- Show the discount in the catalog.
Should be something like next:
- Mobile Phone : 200 USD
- Gold customer: 10 USD
- Shopping Basket Value: 210 USD
- Discount FB connect(1%): 2.1 USD
- Total Value: 207.9 USD
Our problem is: how to hook-up our price calculation schemes & program logic with the standard coding?
We've a lot of experience in price calculations (working lots of years in SAP environments) and need a similar fexibility in price determination for a web-shop.
Thanks for your reply.
Hello Filip,
We've have the concept of price groups which will help you get some of the way. Each product in uCommerce can have multiple prices associated with them so you could do something along the lines of having a Standard Price, a Gold price, and whatever else you need. To make it work though you'd have to specify the total price for each product so given your example your phone would be priced:
Mobile phone (Standard price): USD 200
Gold customer (Gold price): USD 210
Price Groups and Catalogs
To display the appropriate price you can create two catalogs: One for standard customers and one for Gold Customers and select the appropriate price group for each of these.
Selecting the Catalog and Updating Customer Status
With this in place you'd select the proper catalog based on log in status of the customer and whatever criteria you'd need. Ideally you'd have an indication on the Umbraco member of customer status, e.g. Standard or Gold, which you can update during check out based on the dollar amount of the orders for a particular client.
The steps required to extend the checkout pipeline are outlined in the article uCommerce Pipelines Explained.
Modifying Prices in the Basket
For modifying prices in the basket you can hook into the price calculations by modifying the basket pipeline found in /umbraco/ucommerce/pipelines/basket.config. Some process as for the checkout pipline.
If you need to display the discounts during checkout you can use dynamic order properties to store the original pricing on the order line using the following API:
Unfortunately uCommerce doesn't have any time based pricing support so you'd have to build that piece yourself. I'd like to hear your requirements on this front as it might be an interesting feature to add to uCommerce at some future point.
Hope this helps.
Thanks a lot Soren.
We'll develop our own pricing logic and post this as a new package (if you're interested). Also our price of a product (as shown in catalog) can be very flexible (much more flexible than what can be provided with different catalogs), so what's the correct way to show "at runtime calculated" prices in the catalog?
Mechanism for basket is clear.
Thanks,
In the next version of uCommerce (1.0.4.3) our PricingService will be exposed as an extension point for you to extend or replace. This will give you the flexbility needed to do on the fly price calculations.
is working on a reply...