When dealing with multiple prices from different sources, price management can become a complicated issue. Within the CloudCommerce system we deal with prices and markups entered into the system by the Admin user. We also deal with prices that are fed into the system automatically via supplier data feeds.
This article outlines the inner workings of how prices such as MAP pricing, set markups, and customer group pricing, all work together with the individual settings of each product and globally with the settings of your store.
There are a few different ways to set pricing to get the outcome you are looking for, it may take some practice and testing before you can successfully automate the pricing for thousands of products. Our CloudCommerce software was built so that you can have complete control of your pricing, at the MAP, Manufacturer, Category, Customer Group, and individual item levels.
PRODUCTS TABLE
In the admin panel, products add/edit page there exists two different types of flag namely
“Lock Price” and “Update product price”
-
lock_price_flag: which is used to represent “Lock Price”
-
xml_feed_flag: which is used to represent “Update product price”
CONFIGURATION TABLE
Dashboard -> Configuration -> OBN Account
This page shows following 2 flags to manage product price populate with MAP showing on product info page in admin:
-
force_map_price: “Turn On/Off All Manual Prices”: Use minimum advertised price from OBN feed as MAP (by admin) as well as set products_price = minimum advertised price if lock price is “no”
-
use_map_as price: “Populate Manual Price” : Use minimum advertised price from OBN feed as MAP (by admin), but do not change products_price
XML Feed
Dashboard -> Configuration -> XML Feed
These fields are not used for any price calculation at runtime neither in categories.php nor in price updater script, just used to fill in base_price field in products table depending upon configuration. This is set by navigating to Dashboard -> Configuration -> XML Feed
EDIT PRODUCT PAGE
-
Product cost: base_price field from products table
-
QPU Price: Price calculated based on markup/roundoff flag on base_price setup using price updater scripts
-
Product Price: when a customer place an order, the product price is calculated as same as the products_price which is used on frontend
-
MAP indicates manual_price field in the products table
If you change product cost, it will automatically display calculated QPU price. If MAP price entered is greater than 0, then products_price field in products table is updated:
-
If MAP is greater than 0 and MAP is greater than qpu_price, then products_price is set to MAP.
-
If MAP is greater than 0 and MAP is less than qpu_price,then products_price is set to qpu_price.
-
If MAP less than equal to 0, then products_price is set to qpu_price.
Customer Group Prices: Any change in customer group prices on this page will be reflected in database. These customer group prices will change according to different markups (if exists) with next OBN feed cron unless lock price flag is set to “No
This page also displays prices from latest OBN feed (if they are greater than 0 irrespective of any flag) and saved in products_extended:
-
unit cost
-
MSRP
-
Minimum Advertised Price
EXPLANATIONS OF PRICING WHEN SUPPLIER FEED RUNS
If xml_feed_flag = ‘yes’ and lock_price = ‘no’
updates base_price, products_price as qpu_price and , customer group prices (according to markups)
If xml_feed_flag = ‘yes’ and lock_price = ‘yes’
updates base_price NO update of products_price and customer group prices (according to markups)
If use_map_as_price = ‘true’ and force_map_price = ‘true’ and lock price = ‘no’ and xml_feed_flag = ‘yes’: Use minimum advertised price from OBN feed as MAP (by admin) and products_price = minimum advertised price = MAP
If use_map_as_price = ‘true’ and force_map_price = ‘false’ and xml_feed_flag = ‘yes’: Use minimum advertised price from OBN feed as MAP (by admin), but do not change products_price. MAP = minimum advertised price
PRODUCTS TABLE
In Products table, we are having following types of prices that are listed below:
-
base_price
-
products_price
-
manual_price
-
qpu_price: qpu_price is not saved separately in any field, but it is calculated and saved at runtime in products_price field according to the different flag.
PRICE UPDATER AUTOMATIC SCRIPT
1) If lock_price_flag is set to 'yes', then the script will not update any price field in the products table (products_price)
2) If lock_price_flag is set to 'no', then script updates products_price (products table) and customer_group_prices (products_groups table) according to customer group markups set using price updater scripts.