Wiki

Case Status
Log In

Wiki

 
OASIS Hosted Dynamic Pricing
  • RSS Feed

Last modified on 1/10/2018 3:14 PM by User.

OASIS Hosted Dynamic Pricing

Overview

Loading price lists into OASIS by copying and pasting data from the manufacturer is by far the most common method for managing pricing in OASIS. The source of data in this case is a spreadsheet from the manufacturer.
 
The disadvantages of this method usually lead to a phone call to move the spreadsheet to a common website or FTP server allowing the manufacturer to post new pricing that is downloaded into OASIS. This works well if the number of items is small (~20,000 items or so). Larger price files will take a long time to download and result in user frustration when trying to pull down pricing updates.
 
For larger price lists, dynamic pricing is recommended. In the past, implementing a dynamic pricing solution required OASIS to write a software client while the manufacturer had to create and maintain a software service.  Now, OASIS is offering a solution that implements both the client and the service necessary to implement a dynamic pricing solution.  All that is required of the manufacturer is to supply their pricing data and rules.  This document describes the overall technology required and implementation guidelines.

Architecture

 
The overall architecture is a common client side request (from the representative's OASIS database) over the Internet to a server application (an OASIS hosted database service). The pricing data is stored in a relational database indexed by rep, customer, and manufacturer brand.
 
When a product is not in OASIS (or if the data is “old”), then a request is made across the internet to the remote server application. Once the information (description, price, etc.) is returned, a copy is stored in the OASIS relational database. This allows data to be cached locally and reduces the number of calls to the remote server.

Security

All network calls are made using a secure socket (https).
A representative's access to pricing data is controlled by the manufacturer.  (see File Content below for more details)
 

Data Lifecycle

Once OASIS downloads any price information, that information is tagged with an end date. That date may be passed as part of the price calls. (Territory and customer prices may have different expiration dates). However, most implementations request that pricing data expires after a set number of days after being pulled from the server. The shorter the time frame, the more calls will be made to the server.  However, longer time frames could result in quoting the wrong price.
 
The standard time frame is 30 days.  Manufacturers are expected to supply OASIS with updated files once a month, but it is not required.  If no data is supplied, OASIS will automatically reset the existing price file to expire after 90 days.  A complete price file update is not necessary.  Only changes and additions are necessary to be supplied.
 
Note: item data does not expire – only pricing. This is only a concern if OASIS is to be utilized to tell reps when an item has been discontinued. An alternate field, such as SubstitutionNotes, can be supplied to indicate a discontinuation and possibly an alternate item.
 
Note: Once a successful call is made and a price is returned to the customer, their OASIS will not check again for a price until 7 days have expired.
 

File Content

The data should be delivered as an Excel file (*xlsx).

This file contains the pricing and related data to supply to the representatives.

This is the list of possible data content to be supplied to OASIS.  

Row Headings – Attributes

PartNumber – REQURIED – the fixture (a unique catalog number in a user-readable format:123-34TT-UVH)
AdderCodes – “adder codes”
Description – fixture description
LeadTime – lead time for delivery
MFGClassID – manufacturer product heir
ProductCode –
StandardCarton – carton quantity
Stock – stocking information (just text for the user)
UnitQuantity – unit quantity
UnitWeight – weight of one item.
UPC – item UPC code
SubstitutionNotes – substitution or discontinued notice
MFGPart – manufacturer’s product code (may be UPC or ERP system code).
FreightClass – Carrier freight classification
EffectiveStart – pricing effective start date
EffectiveEnd – pricing effective end date
OverageSplit – over-riding overage split (only use if different from default MFG terms
CartonLength – length of carton
CartonWidth – width of carton
CartonHeight – carton heigth
SKU – SKU (may be used as an alternate lookup in OASIS).
PartQuantity – part quantity
MFGWarehouse – manufacturer’s stocking warehouse location (may be a list)
Voltage – fixture voltage
Finish – fixture finish
WLamp – fixture lamping (text only)
MFGQuote – manufacturer’s quote number
Program – product “sales program” information
ShowInPriceBook – flag “Y” – show in customer price book, “N”- don’t show
BookPrice – book price of item
BookCommision – commission of book price of item 

 

Row Heading - Pricing

OASIS supports multiple price and commission levels for a product:

  • Low - the lowest level that an agency can sell a product
  • Overageable - the price level where overage can be collected
  • Up to 13 other levels that can be assigned to specific representatives or territories
  • [PENDING] Customer specific pricing

Price columns use a colon separated method to group pricing and label the pricing within OASIS. When creating a new price “column” OASIS will define the column in OASIS automatically. When updating an existing price column, OASIS will detect the existence of the price column and update the prices in the existing column automatically.

Low Price

The price columns start with “P-LOW” for price and “C-LOW” for commission. The column name "P-LOW" also contains a colon followed by the column name which is limited to alphanumeric characters, ‘%’ and spaces.

Overageable Price

The price columns start with “P-OVERAGEABLE” for price and “C-OVERAGEABLE” for commission. The column name "P-OVERAGEABLE" also contains a colon followed by the column name which is limited to alphanumeric characters, ‘%’ and spaces.

For example, the following columns define pricing for a 10% column and a 15% column:

P-LOW:10% Pricing
P-OVERAGEABLE:15% Pricing

Representative/Region/Territory Specific

Up to 13 additional columns can be used to identify Agent/Representative/Region/Territory Pricing.  The columns will start with P-X (where is is a number 3 through 15), and a colon followed by an alphanumeric label to delineate which Agent/Representative/Region/Territory this column applies to.

For example, the following columns define pricing for 3 specific agents:

P-3:Rep1
P-4:Rep2
P-5:Rep3

Customer Specific Pricing (PENDING)

Columns can be designated to specific customers as well.  The columns will start with P-EXC, and a colon followed by an alphanumeric label providing the customer account number/ID that the Agent will enter into their OASIS so they get that price.

For example, the following columns define pricing for 2 specific customers:

P-EXC:0123
P-EXC:56789


NOTICE: OASIS always pairs pricing and commission columns for reps. Even if all prices for a column are the same, the commission rate MUST be provided.

Example

OASIS User Interaction

Calls are made during several user actions within OASIS. Typically there are three use-cases:
  • Catalog number drop-down guidance
  • Show project price
  • Show customer price
 

Catalog number drop-down guidance

 
As the user is typing a catalog number, OASIS will attempt to guide the user to key a correct catalog number. To do this with dynamic pricing, OASIS first scans the local OASIS database. If matching catalog number are found, then they are shown to the user. However, if the user keys a catalog number that is not a match within the OASIS database, then the remote server is called. If matching entries are found, the matches are shown to the user and the matches are saved to the OASIS database for the next user.
 
There are a number of internal checks to keep OASIS from making repetitive calls for non-matching entries. These routines tend to timeout after 24 hours. (Example: if the user keys a bad catalog number, OASIS will ask the user once per session thereby reducing the number of calls to the server.)
 
To limit the number of calls to the server, most implementations will not call the server unless the user keys at least 3 non-blank characters.
 

Show project price

 
When the user selects a catalog number from the drop-down menu (guidance), or if the user keys a complete catalog number, OASIS will first search the OASIS database to see if the item data and authorized pricing is available. If not, the required calls are made to the remote server. If data is returned by the server, then the data is saved to the OASIS database with an end date indicating when the data should be refreshed.  Only complete catalog numbers are requested.
 
There are a number of internal checks to keep OASIS from making repetitive calls for non-matching entries. These routines tend to timeout after 24 hours. (Example: if the user keys a bad catalog number, OASIS will ask the user once per session thereby reducing the number of calls to the server.)
 

Show customer price

 
Once the customer is known (a winning customer on a project/quote or an order), the best price available for the customer is often required. In this case, OASIS will return a customer specific price if available.
 
All data is cached in the local OASIS database with different expiration dates for each returned customer specific price and each authorized price.
 
There are a number of internal checks to keep OASIS from making repetitive calls for non-matching entries. These routines tend to timeout after 24 hours. (Example: if the user keys a bad catalog number, OASIS will ask the user once per session thereby reducing the number of calls to the server.)