Volume Pricing
Copyright © 2001, William Weiland
Overview
Discount your product prices based on the number of items ordered of identical products, eg 1-3 = standard price, 4-6 = lower, etc.
Initial Setup
1) In admin, click Add Modules
2) Click the file upload button
3) Browse to find the cim_vol.mv file on your hard drive and upload
4) Click Add to add it to the domain
5) Click the image to the left of your store name
6) Click on the System Extension Configuration link
7) Check the box to the left of Volume Pricing and select Update
8) Click on Add Modules again
9) Click the file upload button
10) Browse to find the cim_log.mv file on your hard drive and upload
11) Click Add to add it to the domain
12) Click the image to the left of your store name
13) Click on the Logging Configuration link
14) Check the box to the left of CIM Activity Log and select Update
15) Once installed to the store, you can add volume pricing inputs in the individual product edit screen.
System Configuration (Optional)
To display the discount price table on the product or category screens, click the link for Volume Pricing under the store system extension configuration screen.
Editing Option (skip if using the OpenUI)
If you are using the Miva Merchant User Interface (mmui) you will need to make some very simple edits to the core files. Be sure to do that with a text editor (NO WYSIWYG editors) such as Programmer's File Editor (PFE) so as not to damage the mv files. ALWAYS BACKUP your unmodified mv files in case you make a mistake.

If you are using the OpenUI, the settings under the system configuration screen will determine whether the table of discount prices will display on the product and category screens. If you are using the mmui.mv and want to display the volume price discount table, you will also need to add the following line of code in the mmui.mv where you want the table to display. Most likely that will be in the MMUI_ProductDisplay and/or MMUI_Display_Product_ScreenExpand functions directly below the location where the normal Product price is displayed.
<MvDO FILE = "{g.Module_Root $ 'modules/system/cim_vol.mv'}" NAME = "l.showit" VALUE = "{ShowPriceTable()}">

Limitations
1) This module ignores price groups if you use the fixed amount. It applies the price in your low, high, cost groupings. If you do not include a grouping at the single item level, it will use the method for pricing in your store. It only activates if you include a low, high, cost grouping. So if you want price group customers to get their percent off on a single item, then don't include the 1 in your grouping; ie start with 2 or higher number. Or if you use the % (percent off), then price group prices are used. So they would get an additional discount in addition to their price group discount. In the compiled version there is an option to use the price group price, then discount or use the regular price and then discount. For example:
6|10|12%^
11|20|14%^
21|999|16%^

2) The percentage discounting method subtracts the percent discount from the price. To apply the percentage, simply include the percent symbol (%) in the line.

3) If you are using another third party module which overrides prices in the basket and recomputes them using the price in the product record, you will not be able to use this module. Other third party modules will not recognize that it needs to apply the calculations in this module.


Page Template Usage (compiled version)
The compiled version has support for tokens that can be used in the product page template to replace the price with "as low as" verbage.

Price:
<B>
%module|cim_vol|2|%
%module|cim_vol|3|%
%begin_notif|volprice_aslowas_on|%
%prodpriceF%
%end_notif%
</B>
<BR>

You can use the token %module|cim_vol|1|% where you want the price table to be displayed.

Import Volume Prices From Flat File (compiled version)
If you want to do flat file import, install the prodvol.mvc file as an import module. The flat file containing product codes and the volume pricing string can be created and then imported. Name the flat file prodvol.txt. It contains the product code and volume pricing groupings of each product separated by a # delimiter, for example:
1AA00001#3|5|4.00^6|10|3.50^11|20|3.00^21|999|2.75^
1AA00002#3|5|5.00^6|10|4.50^11|20|4.00^21|999|3.75^#0#20031201#20031224
1AA00003#3|5|10%^6|20|25%^21|999|40%^#1#

Leave the last line of prodvol.txt blank.

The first line in this example shows for product code 1AA00001 if the customer buys from 3 to 5 items, the cost is $4 each. If they buy from 6 to 10 items, the cost goes down to $3.50. Likewise, each grouping has a slightly lower price. The second line is a different product and with slightly different prices. It has an additional 3 parameters, amalgamation 1/0 (on/off), a start date, and an ending date. The third line is an even different product. Additionally, its volume pricing discount is measured as a percentage subtracted from the single item price. The more that are ordered, the more of a percent discount is applied. It also shows the amalgamation parameter, in this case it is turned on.

If every product in your store is going to have the same discount, you can use ONE line in the flat file. The * at the beginning of the line signals the module that it is a global assignment, for example:
*#1|+|10%#0#20031201:-5#20031224:-5

The above example would apply a 10% discount to all active products in the store. The discount would start on Dec 1, 2003 and end on Dec 24, 2003. The use of the :-5 would mean that midnight would be considered 5 hours less than GMT, e.g. EST in the USA.
Frequently Asked Questions
Q: I installed the module but the discount is not being applied when the item is added to the basket.
A: You probably did not install AND assign the CIM Activity Log to the store in the Logging Configuration screen. See steps 8-14 in the initial setup above.

Q: The optional table that displays the price breaks based on quantity is not displaying on the product screen.
A: Possibilities
1) Make sure you have assigned the OpenUI. Look at admin:storename:layout and see if the OpenUI Look and Feel is assigned.
or
2) You have replaced the standard OpenUI screens with a template screen, thus removing the automatic hook points. You will need to use tokens in the template. See admin:storename:tokens for a list of the module tokens.

Still have a question?