Lisy Pricing Notes

Lisy - Notes about Handheld Order Entry Pricing

07/26/2013 - Original version (TLD)

TERMINOLOGY
-----------
1. ForceField "Price Class" and QB "Price Level" mean the same thing.

   In ForceField, a group of customer or promo prices is called a
   "Price Class" (as in CUSTOMER.PRICECLASS and ORDHEAD.PRICECLASS).

   In QuickBooks, this is called a "Price Level" (see PriceLevel.Name).
  
   Just to confuse the issue, ForceField does have a "PRICELEVEL" field,
   but it is a number that selects a price from 1-6 "price level" prices
   in the ForceField PRICES table. This feature is NOT used by Lisy.


HANDHELD DB PRICING TABLES
--------------------------
  PRICES
    All prices are in the PRICES table (keys: price class and item number).
    (Note: the PRODUCT table "base price" is always zero, and is NOT used).

    The price classes include a default ("STANDARD DSD"), special customer
    price classes, and promotional price classes. Each price class may have
    prices for all items or only some of the items in the PRODUCT table.

    When pricing an item, the PRICES table is read using 2 keys:
    - PRICES.CUSTKEY = price class (promo, customer or default price class)
    - PRICES.PRODKEY = item number (from PRODUCT.PARTNUM for this item)
    If a record is found, PRICES.BASE is the price (per the sales UOM).

    Note, currently all prices are net prices. However, both the QB and
    ForceField tables and pricing logic do allow for other pricing methods,
    such as a percentage over or under the QB 'StandardPrice' or 'Cost' or
    'CurrentCustomPrice' values. Check the QB and ForceField pricing tables
    to see how an item's pricing method was set up. In ForceField, see the
    PRICE_TYPE and CALC_TYPE in the PRICES record.

  CUSTOMER
    CUSTOMER.PRICECLASS is the customer's normal price class for orders.
  
  NOTES
    All promo price class names are stored in the NOTES table, with:
    - NOTETYPE = 'PRICECLASS'
    - NOTEKEY1 = 'PROMOTIONS'
    - NOTEKEY2 = [promo price class name]
      (from QB "PriceLevel" where "Name" begins "Promo" and IsActive=true)
 
  ORDHEAD (and HISTHEAD)
    If the user applies promo pricing and selects a promo price class,
    it is stored in ORDHEAD.PRICECLASS (which otherwise is normally blank).
   
  ORDITEM (and HISTITEM)
    ORDITEM.PRICE is the actual selling price for this line item.
    ORDITEM.STDPRICE is the customer's normal price for this line item.
    It is saved to use when computing promo price savings on invoices.
   
  SYSTEM
    There are many options in the SYSTEM record that control pricing.
    They are maintained in the "System Options" screen in System Setup.
    Access to this requires two admin passwords (not provided here).
    The ONLY system options that should be checked are:
      On the "General" tab:
        - Can Add Customers
        - Can Override Price
      On the "Auto. Pricing" tab:
        - Cust Price Class


PRICING LOGIC
-------------
  When pricing an item, the pricing routine does the following steps,
  assuming that the system pricing options are set correctly.
  (Note, when reading PRICES, PRODKEY is always the current item number).

    1. Check for a promo price.
       If the ORDHEAD.PRICECLASS is not blank and not the same as the
       customer's normal price class, read PRICES for a possible promo
       price, using CUSTKEY = [the ORDHEAD.PRICECLASS value].

    2. Get the customer's normal price.
       Read PRICES using CUSTKEY = [the CUSTOMER.PRICECLASS value].

    3. If no price was found in step 2, get the default price.
       Read PRICES using CUSTKEY = "STANDARD DSD".
      
    4. If a promo price was found in step 1, and it is less than a
       price that was found in step 2 or 3, use the promo price.
       Otherwise, use the price from step 2 or 3.

    5. If no price was found in any of the above steps, display an error
       message and require the user to enter a non-zero override price.
       Note, users can increase the price up to the percentage in
       SYSTEM.UDF1, but cannot lower it below the normal customer price.



SOLVING PRICING ERRORS
----------------------
  A pricing error occurs when adding an item to an order and getting
  a price that is zero or that is the wrong price for that customer.
 
  QUICK TIPS:
  - Before doing anything else, do "Update Apps", then try again.
  - If that doesn't solve the problem, export the pricing database for
    this user, download files on the handheld, then try again.
  - If pricing still fails, see the following test procedures.

  Possible causes of pricing errors, and how to test for and fix them:

  1. The QB pricing table has a missing or incorrect price.
     Test: In QB, see if the "PriceLevelPerItem" table has the correct
     price for this item and price level.
     Fix: Correct the price in QB, then export and download the pricing DB.

  2. The customer has a missing, incorrect, or invalid price class.
     Test: On handheld, check "Price Class" (4th tab on customer screen).
     Fix: If wrong, enter correct price level in the QB "Customer" table,
     then export and download customers.

  3. The pricing database is out of date.
     Test: On server, check the sync logs and download folders for this
     user and determine when the pricing database was last downloaded.
     Fix: Export and download the latest pricing database.
 
  4. The pricing database is damaged.
     Test: On handheld, run "Admin Tools"-->"DB Admin" from the "Options"
     menubar dropdown on the login screen, select the "Lisy2Prc" DB and
     connect to it, then use "SQL Queries" to run a query like this:
       SELECT PRODKEY, BASE FROM PRICES WHERE CUSTKEY = 'STANDARD DSD'
     This should return all item numbers and prices for this price class.
     If it returns an error or no records, the database is damaged.
     Fix: Export and download the latest pricing database.
    
  5. Incorrect setup in SYSTEM pricing options.
     Fix: Run System Setup, go into "System Options" screen, and verify
     that the pricing options are correct (see SYSTEM info above).
     Make sure "Find Best Price" and "Use Base Price" are NOT checked.
 
  When investigating a pricing error, test different customers and items.
  Based on those results, here are possible causes for various symptoms:
    - Zero prices for all items and all customers: see #4 and #5 above.
    - Wrong price for one item and one price class: see #1 above.
    - Wrong price for all items for one customer: see #2 above.
    - Wrong price for some items and customers: see #1, #2 and #3 above.

  Also, use the "price trace" option in order entry to see how the
  pricing routine searches for a price and what it finds.
    - On the "Order Products" screen, click the "Options" dropdown on the
      menubar, then select "Price Steps ON".
    - Find the item that has an incorrect price to start the pricing trace.
    - Click the "Attributes" tab to view the data values and search steps
      that the pricing routine used to find a price for this item/customer.
    - See if any of the item or customer values are missing or wrong.
      (Note: "Cust CPG" is the customer price class).
    - See how the final price was chosen from the various pricing steps.
 

Article Details

Article ID:
196
Category:
Date added:
2013-07-26 18:16:55
Views:
480
Rating (Votes):
(569)