A few of our customers (Uline and Staples) work out a contact price for their MOD Items. This means that regardless of what we calculate for a MOD Price using our pricing rules, they always get their Contract Price. If a MOD item has a contract price, an order quantity below the minimum should not be allowed. Stock contract prices are handled differently by setting up a special price list for this customer. Contract prices for MOD items are going to be stored in the new ITMINFO.USR file, along with item-specific w/o comments.
Uline only has contract prices for MOD items with a single price break. Staples has contract pricing for MOD items, but has two additional price breaks. These prices breaks will only be used when determining the price - they will not be shown on the site or on the share email. Staples recently added a few pre-opened bag stock items to the contract pricing list, but these do not have price breaks so will be handled out of the stock price list with no changes.
CE will be allowed to override contract prices in the active cart, just as they do for regular prices.
When a contract price is being used, treat it as if the MOD price has been overridden - meaning that all price breaks are removed.
Avante Changes:
- A new contract pricing import process will be written in Avante to provide Marketing with a means of uploading the contract prices from an Excel Spreadsheet on demand. The launch screen should ask for the company number, the customer number, and the Spreadsheet name. Put the path to the spreadsheet folder in a SYSCON - folder should reside in LaddawnCompany. The spreadsheet must contain: MOD Item Number, Minimum Quantity (in thousands or rolls), price breaks and contract prices (per thousand or per roll). Prices should be in MD2 format. Data will be written to new fields in ITMINFO.USR. Lock the ITMINFO.USR record so that this process can be run during the day if needed.
RPC Changes:
- Assign the minimum quantity for contract priced MOD items in Results by reading the minimum from ITMINFO.USR for the billto customer and MOD Item#. If a contract price is found, the minimum quantity will be defaulted in the Qty field (FCT.MINIMUM.MODQTY).
- In the MOD Pricing program WEB.MODITEM.GETPRICE, after all the pricing logic has been run, check to see if billto customer has a contract price for this item:
- Look for a contract price in ITMINFO.USR - key is Company * Billto Customer * MOD Item#. Using the quantity being quoted, extract the correct contract price for that quantity.
- If a contract price is found: Calculate the difference between the contract price and the calculated unit price. Set Misc$ to be that difference(would be negative if the calculated price is higher than the contract price). Misc$ is in the same UOM as the Unit Price (ie per Thous or RL). This shouldn't require a double-pass in the pricing routine because the calculated price is done before the Misc$ is looked at. Currently, Misc$ is only being updated when a quote is changed (Status=3), but we will now use this field for contract pricing too.
- Once the Miscellaneous$ is set, the current logic should already be bypassing the quantity breaks (so no further logic s/b needed). Contract Pricing customer’s do not get any quantity breaks. .
- Modify WEB.CREATE.QUOTE – if Misc$+0 # 0 (could be positive or negative), set QUDET<37>=1 (price override flag).
- I don't think we have to be concerned with making contract-priced quotes look like quotes w/a price override. Price override logic is only in the cart, and we are assigning contract pricing in results. Each time we reprice a contract-priced item, it will result in the same price. As far as disabling the price break link, we've decided that isn't needed. If the user goes into price breaks for a contracted item, they will see no standard breaks and if they enter customer breaks, they will see the contract price for every quantity that they enter.
Website Changes:
- Disable the price break link when using a contract price (no price breaks will be sent from the database - so no changes may be needed).