1. Overview
The Advanced Pricing Magento extension allows to manage product prices in a flexible manner. In particular, it allows to set product prices in different currencies independently of currency rates. You can, at your own discretion, adjust any given product price in different monetary units, for example you can set charm prices instead of calculated by rates. Besides, the administrator can set product prices for each store view separately. In other words, the extension appends Store View product price scope in addition to Website and Global. Another essential feature of Advanced Pricing is Zone Discounts that can be offered according to visitor’s geographical location. It enables discounts for zones (areas / locations / countries / regions /states), by providing either fixed or percentage discounts for a particular product.
Advanced Pricing combines the features of our three extensions: Currency Pricing, Zone Pricing and Store View Pricing. Such combination allows getting the most advantageous price – location – store view – currency relationship. You can change prices of a product as you wish:
- Set price per currency
- Set price per store view
- Set special price per currency
- Set special price per store view
- Recalculate prices by a certain currency automatically
- Tier price per currency
- Tier price per store view
- Automated prices (price, special price, tier price) scope
- Automatic re-indexing after currency rates save
- Automatic re-indexing after price scope has been changed
- Build-in bulk prices importer
- Discount per visitor country, region / state, zip / postal code, zip / postal code range
Customer Locator
- Detect customer’s location by IP address
- Apply default shipping address optionally
- Apply default location defined in settings
- Allow a customer to modify a location (region / state, zip / postal code, city)
- Select address from address book
- Customize the Your Location box (define allowed and required address attributes)
2. Installation
Follow the steps below:
1. Backup your files and database (preferably).
2. Extract the extension archive to Magento document root directory.
Upload the extension to document root and run the next command:
tar -xzf Innoexts_AdvancedPricing-1.1.1.tgz
rm Innoexts_AdvancedPricing-1.1.1.tgz
Replace version number (1.1.1) and document root path (/var/www/public_html/) according to your conditions.
3. Go to the administration panel, under the System -> Cache Management refresh (if enabled) and flush the cache. Don’t forget to select all cache types.
4. Under the System -> Manage Currency Rates or System -> Manage Currency -> Rates (if your Magento version is equal or above the 1.7.0) import and save currency rates.
Congratulations, installation has been completed.
Please don’t hesitate to contact us if you met troubles during the installation process.
The Magento shopping cart provides the flexible and comfortable extensions system. This fact is a basis of a powerful community. Therefore, the numerous extensions you may need presence is guaranteed. The negative side of Magento extensibility are 3rd party extensions conflicts possible. That happens because some extensions may use common resources concurrently. Nowadays it is the stumbling block and the task to be solved by Magento team and community in future. We have services to resolve such issues. Please read Support Services for more details.
3. Currency
3.1. Enable Currencies
We will describe how to add more currencies to the system here. Please note, this feature is a standard Magento Community Edition function.
In administrator panel: System -> Configuration -> General -> Currency Setup -> Allowed Currencies.
- Currency - Configuration - Currency Setup - Currency Options - Allowed Currencies
Choose as many currencies as you need. If you have a wide range of international consumers you will need a list of all your customers money units. Make the list of all required currencies.
In administrator panel: System -> Manage Currency Rates or System -> Manage Currency -> Rates (if your Magento version is equal or above 1.7.0).
- Currency - Manage Currency Rates
Now you can set the currency rates that are beneficial (most appropriate) to you manually or import rates from a service like Webservicex. Save results.
So, you can choose as many currencies as you want. But if your currency list is too long you may limit it with the Currency Geo Filter extension. It will let your customer select currencies from the short list of monetary units which are common in their region.
3.2. Price
You can overwrite the product price for each currency separately.
In administrator panel: Catalog -> Manage Products -> Edit Product -> Prices -> Price Per Currency.
- Currency - Price - Manage Products - Edit Product - Prices
Uncheck appropriate Default check box if you need to overwrite any currency price. If Default checkbox is marked then currency price will be dynamically calculated according to currency rates (default behaviour of Magento). Recalculate by function may assist you to overwrite currencies prices by desired currency. Check Recalculate by checkbox and select primary currency you want to use for recalculation. Once primary currency changed other currencies prices are coming updated depending on rates automatically.
Now when a customer comes to your store and selects currency he will see next:
- Currency - Price - Products
3.3. Special Price
You can overwrite the product special price for each currency separately, similar to the price described above.
In administrator panel: Catalog -> Manage Products -> Edit Product -> Prices -> Special Price Per Currency.
- Currency - Special Price - Manage Products - Edit Product - Prices
On the frontend:
- Currency - Special Price - Products
3.4. Tier Price
Tier price can be applied either for each currency individually or for all currencies in base monetary unit.
In administrator panel: Catalog -> Manage Products -> Edit Product -> Prices -> Tier Price.
- Currency - Tier Price - Manage Products - Edit Product - Prices
On the frontend:
- Currency - Tier Price - Products
- Currency - Tier Price - Product
4. Price Scope
4.1. Setting Price Scope
Advanced Pricing appends Store View product price scope in addition to Global and Website.
In administrator panel: System -> Configuration -> Catalog -> Catalog -> Price -> Catalog Price Scope.
- Price Scope - Configuration - Catalog - Price - Catalog Price Scope
Select scope and save configuration. Once price scope is changed system reindexes Product Prices data and resets the scope for the next product attributes: Price, Special Price, Special Price From Date, Special Price To Date, Tier Price
4.2. Price
You can define the product price for each store view separately.
In administrator panel: Catalog -> Manage Products -> Edit Product -> Prices -> Price.
- Price Scope - Price - Manage Products - Edit Product - Prices
Select the store view with store view selector. You can set price here. Uncheck Use Default Value flag and enter value. Besides Price you can set Price per Currency for each currency and store view individually.
Now when a customer comes to your store and selects the store view he will see next:
- Price Scope - Price - Products
4.3. Special Price
The system makes possible to overwrite the product special price for each store view similar to the price described above.
In administrator panel: Catalog -> Manage Products -> Edit Product -> Prices -> Special Price.
- Price Scope - Special Price - Manage Products - Edit Product - Prices
On the frontend select the French store view:
- Price Scope - Special Price - Products
4.4. Tier Price
Tier price can be applied for store view as well.
In administrator panel: Catalog -> Manage Products -> Edit Product -> Prices -> Tier Price.
- Price Scope - Tier Price - Manage Products - Edit Product - Prices
On the frontend select the French store view:
- Price Scope - Tier Price - Products
- Price Scope - Tier Price - Product
5. Zone Discounts
Advanced Pricing makes it possible to set discounts depending on visitor address.
In administrator panel: Catalog -> Manage Products -> Edit Product -> Zone Discounts.
- Zone Discounts - Price - Manage Products - Edit Product - Zone Discounts
You can manage discount zones here:
- Country – Choose a particular country
- Region/State – Choose a particular region / state
- Zip/Postal Code is Range – Either zip / postal code is range or not
- Zip/Postal Code From – Enter starting zip / postal code
- Zip/Postal Code To – Enter ending zip / postal code
- Zip/Postal Code – Enter zip / postal code
- Amount – Enter discount value
- Apply – Select percentage discount or fixed amount to deduct from the price
Don’t forget to save product after you have finished with discount zones.
On the frontend:
- Zone Discounts - Products
- Zone Discounts - Product
6. Customer Locator
This supplementary tool allows to detect visitor’s location as soon as he / she comes to the website. The location can be either default shipping address or geolocated IP address or the default location or manualy entered by the visitor depending on needs.
In administrator panel: System -> Configuration -> Customers -> Customer Locator
- Customer Locator - Configuration - Customer Locator
You can see Options and Default Location sections there.
Options
- Allow to Modify – If option is enabled then customer will be able to enter / correct his / her location on the frontend side.
- Select Default Shipping Address – If option is enabled then customer default shipping address will be used as the current location instead of geolocated IP address geolocated (if default shipping address is present).
- Allowed Attributes – Address attributes list to display in Your Location box.
- Required Attributes – Required address attributes.
Default Address
The default visitor’s location can be defined here. Country, Region / State, Zip / Postal Code, City can be entered. The system sets visitor’s location to default if IP address geolocation failed (it is possible for small percentage of visitors).
On the frontend:
- Customer Locator - Products
7. Import
Advanced Pricing includes built-in script to import prices in a fast way (much more faster then Dataflow function may do it).
Run the php command with your arguments:
--ftp \
--ftp-host ftp.yourhost.com \
--ftp-user username \
--ftp-password password \
--ftp-filename remotefilename.csv \
--file-path /var/import/ \
--file-filename localfilename.csv
Omit ftp arguments to run import from local data feed:
--file-path /var/import/ \
--file-filename localfilename.csv
Run the next command to get arguments description
The data feed should have the next format:
"HTC Touch Diamond","756.00","565.00",,,0
"HTC Touch Diamond","755.00","564.00","745.00","554.00","french"
8. UnInstallation
1. Open file app/etc/modules/Innoexts_AdvancedPricing.xml
2. Replace
with
3. If you don’t have any InnoExts extension installed then repeat above steps for app/etc/modules/Innoexts_CustomerLocator.xml, app/etc/modules/Innoexts_GeoIp.xml and Innoexts_InnoCore.xml:
4. Run MySQL query:
DROP TABLE IF EXISTS `catalog_product_currency_special_price`;
DROP TABLE IF EXISTS `catalog_product_zone_price`;
TRUNCATE TABLE `catalog_product_index_price`;
ALTER TABLE `catalog_product_index_price` DROP INDEX IDX_CURRENCY;
ALTER TABLE `catalog_product_index_price` DROP `currency`;
ALTER TABLE `catalog_product_index_price` DROP FOREIGN KEY FK_CATALOG_PRODUCT_INDEX_PRICE_STORE_ID;
ALTER TABLE `catalog_product_index_price` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_idx`;
ALTER TABLE `catalog_product_index_price_idx` DROP INDEX IDX_CURRENCY;
ALTER TABLE `catalog_product_index_price_idx` DROP `currency`;
ALTER TABLE `catalog_product_index_price_idx` DROP FOREIGN KEY FK_CATALOG_PRODUCT_INDEX_PRICE_IDX_STORE_ID;
ALTER TABLE `catalog_product_index_price_idx` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_tmp`;
ALTER TABLE `catalog_product_index_price_tmp` DROP INDEX IDX_CURRENCY;
ALTER TABLE `catalog_product_index_price_tmp` DROP `currency`;
ALTER TABLE `catalog_product_index_price_tmp` DROP FOREIGN KEY FK_CATALOG_PRODUCT_INDEX_PRICE_TMP_STORE_ID;
ALTER TABLE `catalog_product_index_price_tmp` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_final_idx`;
ALTER TABLE `catalog_product_index_price_final_idx` DROP `currency`;
ALTER TABLE `catalog_product_index_price_final_idx` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_final_tmp`;
ALTER TABLE `catalog_product_index_price_final_tmp` DROP `currency`;
ALTER TABLE `catalog_product_index_price_final_tmp` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_bundle_idx`;
ALTER TABLE `catalog_product_index_price_bundle_idx` DROP `currency`;
ALTER TABLE `catalog_product_index_price_bundle_idx` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_bundle_tmp`;
ALTER TABLE `catalog_product_index_price_bundle_tmp` DROP `currency`;
ALTER TABLE `catalog_product_index_price_bundle_tmp` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_bundle_sel_idx`;
ALTER TABLE `catalog_product_index_price_bundle_sel_idx` DROP `currency`;
ALTER TABLE `catalog_product_index_price_bundle_sel_idx` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_bundle_sel_tmp`;
ALTER TABLE `catalog_product_index_price_bundle_sel_tmp` DROP `currency`;
ALTER TABLE `catalog_product_index_price_bundle_sel_tmp` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_bundle_opt_idx`;
ALTER TABLE `catalog_product_index_price_bundle_opt_idx` DROP `currency`;
ALTER TABLE `catalog_product_index_price_bundle_opt_idx` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_bundle_opt_tmp`;
ALTER TABLE `catalog_product_index_price_bundle_opt_tmp` DROP `currency`;
ALTER TABLE `catalog_product_index_price_bundle_opt_tmp` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_opt_idx`;
ALTER TABLE `catalog_product_index_price_opt_idx` DROP `currency`;
ALTER TABLE `catalog_product_index_price_opt_idx` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_opt_tmp`;
ALTER TABLE `catalog_product_index_price_opt_tmp` DROP `currency`;
ALTER TABLE `catalog_product_index_price_opt_tmp` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_opt_agr_idx`;
ALTER TABLE `catalog_product_index_price_opt_agr_idx` DROP `currency`;
ALTER TABLE `catalog_product_index_price_opt_agr_idx` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_opt_agr_tmp`;
ALTER TABLE `catalog_product_index_price_opt_agr_tmp` DROP `currency`;
ALTER TABLE `catalog_product_index_price_opt_agr_tmp` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_downlod_idx`;
ALTER TABLE `catalog_product_index_price_downlod_idx` DROP `currency`;
ALTER TABLE `catalog_product_index_price_downlod_idx` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_downlod_tmp`;
ALTER TABLE `catalog_product_index_price_downlod_tmp` DROP `currency`;
ALTER TABLE `catalog_product_index_price_downlod_tmp` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_cfg_opt_idx`;
ALTER TABLE `catalog_product_index_price_cfg_opt_idx` DROP `currency`;
ALTER TABLE `catalog_product_index_price_cfg_opt_idx` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_cfg_opt_tmp`;
ALTER TABLE `catalog_product_index_price_cfg_opt_tmp` DROP `currency`;
ALTER TABLE `catalog_product_index_price_cfg_opt_tmp` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_cfg_opt_agr_idx`;
ALTER TABLE `catalog_product_index_price_cfg_opt_agr_idx` DROP `currency`;
ALTER TABLE `catalog_product_index_price_cfg_opt_agr_idx` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_price_cfg_opt_agr_tmp`;
ALTER TABLE `catalog_product_index_price_cfg_opt_agr_tmp` DROP `currency`;
ALTER TABLE `catalog_product_index_price_cfg_opt_agr_tmp` DROP `store_id`;
DELETE FROM `catalog_product_entity_tier_price` WHERE (`currency` IS NOT NULL) OR (`store_id` <> 0);
ALTER TABLE `catalog_product_entity_tier_price` DROP INDEX IDX_CATALOG_PRODUCT_ENTITY_TIER_PRICE_CURRENCY;
ALTER TABLE `catalog_product_entity_tier_price` DROP `currency`;
ALTER TABLE `catalog_product_entity_tier_price` DROP FOREIGN KEY FK_CATALOG_PRODUCT_ENTITY_TIER_PRICE_STORE_ID;
ALTER TABLE `catalog_product_entity_tier_price` DROP `store_id`;
TRUNCATE TABLE `catalog_product_index_tier_price`;
ALTER TABLE `catalog_product_index_tier_price` DROP INDEX IDX_CATALOG_PRODUCT_INDEX_TIER_PRICE_CURRENCY;
ALTER TABLE `catalog_product_index_tier_price` DROP `currency`;
ALTER TABLE `catalog_product_index_tier_price` DROP FOREIGN KEY FK_CATALOG_PRODUCT_INDEX_TIER_PRICE_STORE_ID;
ALTER TABLE `catalog_product_index_tier_price` DROP `store_id`;
UPDATE `eav_attribute` SET `backend_model` = 'eav/entity_attribute_backend_datetime'
WHERE (`attribute_code` = 'special_to_date') AND (`entity_type_id` = (
SELECT `entity_type_id` FROM `eav_entity_type` WHERE `entity_type_code` = 'catalog_product'
));
UPDATE `catalog_eav_attribute` SET `is_global` = 1 WHERE `attribute_id` IN (
SELECT `attribute_id` FROM `eav_attribute` WHERE (`attribute_code` IN (
'price', 'special_price', 'special_from_date', 'special_to_date', 'tier_price'
)) AND (`entity_type_id` = (
SELECT `entity_type_id` FROM `eav_entity_type` WHERE `entity_type_code` = 'catalog_product')
)
);
UPDATE `core_config_data` SET `value` = '0' WHERE `path` = 'catalog/price/scope';
DELETE FROM `core_resource` WHERE `code` = 'advancedpricing_setup';
5. Flush & Refresh the cache
6. Regenerate Product Prices index
Related Articles























Philip
March 7, 2012 at 1:48 pm
Hi, what about tier and special prices independent by different currencies? Does this work as well?
Regards
Philip
InnoExts
March 7, 2012 at 3:34 pm
It comes in the next version
Matthias
April 12, 2012 at 12:46 pm
Hi, I bought yesterday this extension for our shop and I guessed, special prices still dont work ..
I would like to know when next version will be released?
Special thanks
sincerely
Matthias
InnoExts
April 12, 2012 at 6:47 pm
New version is in process. It should be ready on the next week approximately. It includes last Currency and Store View pricing features.
NB
April 19, 2012 at 10:20 am
Hello
I just bought Advanced Pricing. Great Product. One issue
I have 3 currencys set up EUR (base), US Dollar & GB Pound.
At present I am just running with individual currency per product. Currency’s are displayed perfect on Website however in admin on edit product list page the prices are displayed incorrect (this only happens after I apply the individually currency prices from the main product edit page). I.e. on the edit product list page the product price is displayed as €152.25, instead of €150.
But When you enter the edit the product page, the prices are displayed correctlyh. I e. The base Price is €150 and the in the currecny options fields prices are correct. Just seems to be on the Edit Product List page where the issue is. ANy ideas.
I did a quick test and changed website base currency to USD and prices where displaying correctly, then when I revert back to EUR as website base currency the issue arises again
Thank you,
NB
InnoExts
April 23, 2012 at 12:49 pm
Backend checkout process doesn’t take into accound currencies prices currently. We have it enabled in the new version that comes ready this week.
Niclas
October 4, 2012 at 4:14 pm
Your link “data feed” to an example CSV file is broken, check
http://innoexts.com/wp-content/uploads/2012/05/product-prices.csv
it returns a 404 page.
Zenith
April 12, 2013 at 9:25 am
Hello,
Does it support API calls?
Thanks,
Zenith
InnoExts
April 29, 2013 at 2:10 pm
No. There is a built-in shell script instead.