Inventory management is a crucial part in electronic commerce. It is twice important when you have two or more warehouses / suppliers / drop shippers located worldwide / nationwide. That requires proper inventory management software.
Multi-Warehouse Magento extension is a powerful tool in warehouse management system that supports multi-warehouse functionality. It allows to set up multiple shipping origins within one installation, flexible shipping configurations, control stock in different physical locations through the same admin interface as well as many other functions for a Magento shop.
Note: Everyone who already purchased Multi-Warehouse or Advanced Pricing will be able to upgrade it to Multi-Warehouse Plus by simply paying the difference in price between the two extensions. Those customers who previously purchased both Multi-Warehouse and Advanced Pricing extensions can replace them with the license of Multi-Warehouse Plus without having to pay an extra fee.
| Price | $475 |
|---|---|
| License Renewal | $300 |
| 2nd Purchase | $375 |
| 3rd+ Purchase | $300 |
| Version | 1.2.0.5 |
| Difficulty | Hard |
| Interference | High |
Support Packages
| Basic | Standard | Enterprise | |
|---|---|---|---|
| Price | FREE | + $350 | + $450 |
| Updates (for 1 year) | Yes | Yes | Yes |
| Manuals | Yes | Yes | Yes |
| Demos | Yes | Yes | Yes |
| Pre-Sale Consultations | 0:30 | 0:30 | 0:30 |
| Post-Sale Consultations | 0:30 | 2:00 | 2:00 |
| Bugs Fixing | Yes | Yes | Yes |
| Installation | No | Yes | Yes |
| Enterprise Edition (1.10.0.0+) | No | No | Yes |
| Custom Coding | No | No | No |
Standard and Enterprise support packages are available by request and should be negotiated beforehand. Please, contact us if you need to schedule the integration procedure.
Additionally, Enterprise add-on that makes Multi-Warehouse compatible with Magento Enterprise Edition (1.10.0.0+) can be purchased by the next link: Multi-Warehouse Enterprise Add-on. The add-on includes the installation service along with the extension code itself. Please note, the installation doesn’t include conflicts resolving service.
Requirements
| Magento | 1.5.0.1, 1.5.1.0, 1.6.0.0, 1.6.1.0, 1.6.2.0, 1.7.0.0, 1.7.0.1, 1.7.0.2 |
|---|
Compatibility
Add-ons
One Step Checkout
This add-on makes the module compatible with one of the most popular one page checkout replacement extensions: One Step Checkout
| Price | Free |
|---|---|
| Version | 1.0.0.0 |
| Requirements | One Step Checkout v4.0.7 |
| Supported Versions | 1.2.0.0 – 1.2.0.5 |
Inventory management is a crucial part in electronic commerce. It is twice important when you have two or more warehouses / suppliers / drop shippers located worldwide / nationwide. That requires proper inventory management software.
Multi-Warehouse Magento extension is a powerful tool in warehouse management system that supports multi-warehouse functionality. It allows to set up multiple shipping origins within one installation, flexible shipping configurations, control stock in different physical locations through the same admin interface as well as many other functions for a Magento shop.
Multi-Warehouse Plus is a Magento extension that allows multiple origins with extended pricing capabilities. In fact, it combines the features of Multi-Warehouse and Advanced Pricing extensions.
Zones Manager Magento extension enables to create and manage geo zones with their own settings. It assigns the customer to a certain zone depending on his / here place of residence. For each zone the next options can be defined: minimum order amount, product prices, catalog price rules, allowed stores, currencies, payment methods, shipping methods, catalog categories and products.
Customer Groups Manager Magento extension expands standard customer groups functions with new capabilities. It allows assigning different currencies, stores, payment and shipping methods, products and product categories to different customer groups, as well as setting minimum order amount per group.
Advanced Pricing is a helpful extension for setting product prices according to currency (without having to use currency rates), store view (adding an extra store view scope), and apply different discounts for different areas.
This module combines features of Currency Pricing, Store View Pricing and Zone Pricing extensions. With Advanced Pricing you will be able to adapt prices at your own interest.
Currency Pricing is a Magento extension that allows to set product prices in different currencies independently of the currency exchange rates obtained from webservicex or any other resource. You can, at your own discretion, adjust any given product price in different monetary units, for example you can set attractive prices instead of calculated by rates.
Zone Pricing is a Magento module that helps to set product prices according to visitor geographical location. It enables to adjust prices for zones (areas / locations / countries / regions / states), by providing either fixed or percentage discounts for a particular product.
Store View Pricing is a useful tool for a Magento store administrator to set product prices for each store view separately. This Magento extension appends Store View Price scope in addition to Website and Global. From now you can set different prices for the same item depending on the store view.
Please note, Store View Pricing is not compatible with Currency Pricing extension. You need Advanced Pricing to get both extensions functions combined.
Currency Geo Filter Magento extension will help you to use the same price language as your overseas clients. It automates currency selection and redirects visitors to the proper website according to their location. The Magento store administrator can assign a currency or multiple currencies (e.g. the most wide-spread currencies that are peculiar to the buyer’s region) to a country. As a result, international buyers have at their disposal prices in familiar currencies (home one by default and other ones by selection from the list available in the drop down).
Data exchange occupies a special place in the electronic commerce. It requires much attention and time. Therefore import / export of data should be automated as much as possible. Magento provides simple wizard-like tool for generation of some basic import / export profiles operating on products or customers entities. Magento migration processes are introduced with profiles. Each profile is a combination of actions (adapters / parsers / mappers) to transfer data from one format into another. The Magento enables customers and products (with or without an inventory) to be exported / imported using CSVM or Excel XML formats. The Advanced Dataflow Magento extension is a set of additional adapters and parsers to increase Magento Dataflow flexibility. This dataflow advanced profile extends default bounds to cover more requirements. The most essential Advanced Dataflow feature is orders import and export. It appends orders to list of available entities to migrate. Facilitate your e-business with this Magento module. Make your data exchange process with offline sale management system more flexible.
The Shipping Table Rates is the additional tool to manage shipping table rates in an easy way. You may filter, append, modify records through the web interface instead of batch file uploading each time you need your rates to be changed.
All updates are free of charge for 12 months from the date of purchase.
We have our extensions commented and documented well. All frequently asked questions are coming reflected in our documentation. InnoExts works on this service instantly.
All extensions are provided with public demos. This way you can check if extensions match your needs prior to purchase. Some of our extensions are provided with private demo option available. The private demo setup is a free of charge and one time procedure. You can test an extension in your full privileged private environment on our server (eg yourprojecrtname.innoexts.com). Important note is we don’t install other extensions except the extension you are testing.
Feel free to ask us about questions that are not covered by our manuals / demos.
On-site consultation time is limited. You can check the exact time on product page under the Post-Sale Consultations sections of selected package. This way we can insure reasonable support for all customers.
The bugs fixing process includes some underlying aspects. The source / reason of bug is conditional but we can categorize them. First of all each extension inherits Magento system requirements and appends its own ones. Customer must make sure his / her Magento installation corresponds to all Magento and extension requirements. You can find extension requirements on the product page under the Requirements section. If any of the requirements are not met then we can’t guarantee the correct extension work and proceed to the next steps.
If Magento installation meets the requirements then 2 types of bugs can be encountered on the next stages: general, conflict. The general bug is a usual extension deffect that can be reproduced on our demo. We can guarantee this type of bugs solving for all support packages. Please, send us bug report providing with detailed information on steps to reproduce if you encounder such a problem. Configuration settings should be provided to speed fixing process up. We will fix it in shortest possible terms and provide you with an update.
The conflict bug is another type of problem. This bug can’t be reproduced if extension is set on a blank Magento installation up. Thus, it can’t be reproduced on our demo as well. It depends on third party extensions installed concurrently with our one. We can perform one time solving of such a type of errors for Standard and Enterprise support packages. However, once synchronization process is finished for given extension we can’t solve new conlicts that will appear after the next extensions updates. You will need to request custom coding service on hourly basis in this case or join aside developer to do this job for you.
Some of extensions may be easely and fast installed / integrated into existing and running Magento system without any addional skills required. But, some of extensions may need in-depth Magento knowledge or even programming skills in order to get module installed. The Magento architecture its self is the reason that may require programming skills. Its a modular system that consists of extensions. At the same time each extension includes various resources: server side scripts, configuration files, database structures, templates, java scripts, style sheets, etc. Each 3rd party extension reuses / overwrites Magento core resources or adds own. The problem two or more third party extensions may overwrite the same Magento resource. Such case cause extensions conflict and unpredictable system behaviour. The conclicts probability rises due to higher interference level and more complex structure of non-core extensions.
Each our product has difficulty and interference level information reflected on its page. Conflict resolving is the most typical Magento issue. We can take care about this optionaly if you would like. Some of our customers are preferring to solve such a problem on own side (development companies mostly). The installation service includes both installation itself and conflicts resolving since these terms are closely related and we can not separate them. Its one time process and can be performed on your development server preferrably. That is why development server must have the same Magento and concurent 3rd party extensions versions and seetings. Otherwise your live server may be broken after changes migration. The development server installation is not included into this service. Once extension is integrated on your development server we can move it to your live server without live server laydown. We will need the information on live and development servers in order to perform installation process:
- Magento Administrator URL
- Magento Administrator Credentials
- FTP / SSH / SFTP access
- MySQL access (conditionally)
All our extensions are supporting Magento Community versions only. Please, check product Requirements section for exact supported versions list. However, we can adopt extensions for Magento Enterprise and Professional Editions additionally (Enterprise package only).
The Custom Coding service may be requested in case if you need to extend an extension according to your needs and fine tune it. None of support packages include custom coding by default. You can request custom coding separately instead on horly basis. Once requirements are negotiated and estimated you can purchase custom coding according to hourly rate. Our hourly rate is $50 per hour.
The difficulty level acccepts the next values depending on product: Easy, Medium, Hard. Easy difficulty level is typical for light-weight extensions. This level doesn’t require additional training or learning and intuitively clear from the start for most of users. Medium level needs some efforts from a user to configure and operate extension. Hard is a heavy-weight extension specific level. User should learn manual in-depth in order to drive extension according to his / her needs correctly.
The interference level acccepts the next values depending on product: Low, Middle, High. Low implies that there are no or a few overwrites of core modules. Therefore, there is no or a low risk of extenion conflict with another 3rd party extensions. Middle level means that some of core module resources are overwritten and conflict probability is present. There is no guarantee that extension will be installed on server without conflicts with another third party extensions. High level is a case when extension overwrites solid amount of core resources in order to function. This level extension must be checked for conflicts prior to installation carefully.
1. Multiple Warehouse Support
2. Flexible Configuration Settings
3. Shipping
- Shipping from a single warehouse which is the closest to the customer’s location
- Shipping from a single warehouse which is located in the customer’s area
- Shipping from a single warehouse depending on website / store / store view
- Shipping from a single warehouse selected by your customer
- Shipping from multiple warehouses by the lowest shipping price
- Shipping from multiple warehouses by the lowest tax price
- Shipping from multiple warehouses by the lowest products price (Lowest Subtotal)
- Shipping from multiple warehouses by the lowest cart price (Lowest Grand total)
- Shipping from multiple warehouses starting with the highest priority warehouse
- Shipping from multiple warehouses according to the customer’s preference
- Extended shipping table rates
- Ability to specify shipping methods per warehouse
- Ability to specify shipping methods per product
- Split product quantity for delivery according to the availability of items at the warehouses
- Force no backorders for cart
- Force no backorders for cart item
4. Marketing Promotions and Tools
5. Order Management
- Ability for admin to change the warehouse for delivery when processing the order (switch warehouse from the administration panel)
- Notification about new orders by email for each warehouse
- Keep track of orders / invoices / shipments / credit memos by warehouses
- Ability to split shopping cart order into several orders for each warehouse separately
6. Catalog Management
- Extended Dataflow
- Extended API
- Multiple locations with its own stock levels, products and alerts
- Common products with independent stock counts for all your warehouses
- Keep track of the inventory of each item for each one of your warehouses
- Set warehouse priority at the product level
- Shelf information
- Notification of how many products are below the lower bound limit for each warehouse
7. Warehouse Management
- Prioritize your warehouses in order to offer products from warehouses in accordance with their priority status
- Keep track of product quantity on warehouse basis
- Hide warehouse information from the public optionally
8. Customer Locator
- Detect customer’s location by IP address
- Allow a customer to modify a location (Region / State, ZIP / Postal Code, City)
- Apply default shipping address optionally
- Apply default location defined in settings
- Customize the Your Location box (hide not required fields)
- Select from address book
9. Customer Experience
9.1. Delivery Methods
9.1.1. Single Mode
- Assign a customer to a specific warehouse
- Assign a customer to a specific warehouse by areas / zones accordingly to his / her place of residence
- Assign a customer to the nearest warehouse accordingly to his / her place of residence
- Assign a website / store / store view to a certain warehouse
- Multi-Warehouse
- Configuration - Warehouses
- Catalog - Manage Warehouses
- Catalog - Manage Warehouses - Add Warehouse - General
- Catalog - Manage Warehouses - Add Warehouse - Contact
- Catalog - Manage Warehouses - Add Warehouse - Origin
- Catalog - Manage Warehouses - Edit Warehouse - Areas
- Catalog - Manage Warehouses - Edit Warehouse - Products
- Catalog - Manage Warehouses - Edit Warehouse - Orders
- Catalog - Manage Warehouses - Edit Warehouse - Invoices
- Catalog - Manage Warehouses - Edit Warehouse - Shipments
- Catalog - Manage Warehouses - Edit Warehouse - Credit Memos
- Catalog - Manage Products
- Catalog - Manage Products - Edit Product - Inventory
- Sales - Orders
- Sales - Orders - View Order
- Sales - Orders - View Order - Items
- Reports - Products - Low Stock
- Configuration - Sales - Shipping Methods - Table Rates
- Configuration - Sales - Shipping Methods - Table Rates - CSV
Backend Demo
http://warehouse.innoexts.com/admin/
| Username: | warehouse |
| Password: | warehouse1 |
Frontend Demo
http://warehouse.innoexts.com/
| Email: | john.doe@innoexts.com |
| Password: | john.doe |
Release Notes
Multi-Warehouse 1.2.0.5 (Apr 8, 2013)
- Product stocks dataflow import is corrected
Multi-Warehouse 1.2.0.4 (Apr 3, 2013)
- Warehouses sorting is fixed
- Redirect issue is fixed for the single mode
Multi-Warehouse 1.2.0.3 (Feb 28, 2013)
- Batch prices overwriting for dataflow product stocks import is fixed
Multi-Warehouse 1.2.0.2 (Jan 9, 2012)
- Product quote block is corrected
- Backend create order tier price is fixed
Multi-Warehouse 1.2.0.1 (Jan 6, 2012)
- An ability to perform multiple redirect payments is added
- My Pending Payments customer page is added
Multi-Warehouse 1.2.0.0 (Dec 27, 2012)
- The code is globally refined and optimized
- Core resources rewrites number is decreased
- Customer locator is updated
- Configuration settings has been rearranged
- Warehouses sorting function is added
- Warehouses origin information is added for frontend
- Warehouses distance information is added
- Added ability to hide products grid Qtys and Batch Prices columns
- Assigned Customer Groups and Assigned Currencies assignment methods are added for the single mode
- Adjust warehouse ability is added for customers on view product and cart pages
- Fully customizable product quote information is added for view product and cart functions
- Warehouse is coming determined on the view product page according to the assignment method chosen as well.
- Checkout success page is improved in order to reflect multiple orders
- Estimate shipping and checkout shipping method functions improved
- Reset Cart button is added for frontend cart
- Reset Items button is added for backend order create / edit process
Read press release here
Multi-Warehouse 1.1.3.3 (Oct 14, 2012)
- Virtual product handling is improved for multiple mode checkout. Virtual warehouse comes hidden for shipping method selector
- Non-Saved CC payment method fix is added for backend
- Grand Total excluding Tax display is fixed for cart
- Warehouses Catalog configuration section is added
- Required region limitation is resolved
Multi-Warehouse 1.1.3.2 (Aug 6, 2012)
- Price indexes fix is added for tables with prefixes
- Multiple mode price indexes are corrected for out-of-stock products
Multi-Warehouse 1.1.3.1 (Jul 6, 2012)
- Batch Price is fixed for Split Qty for Delivery option
- Manual Selection delivery method template improved
Multi-Warehouse 1.1.3 (Jun 9, 2012)
- Fixed price per warehouse is added
- Special price per warehouse is added
- Tier price per warehouse is added
- Customer locator is updated
- Nearest delivery method is fixed
- Fast product stocks import script is added
- Batch prices import script is added
Multi-Warehouse 1.1.2.4 (May 9, 2012)
- Magento 1.7.0 is added to supported versions
Multi-Warehouse 1.1.2.3 (Apr 23, 2012)
- Nearest delivery method is added for multiple mode
- Installer is optimised
Multi-Warehouse 1.1.2.2 (Apr 18, 2012)
- Multiple mode Manual Selection delivery method is significantly improved
- Checkout shipping method selector is updated
- Layered navigation price fix is added
- Customer locator is updated
Multi-Warehouse 1.1.2.1 (Mar 7, 2012)
- Layered navigation counters fix is added
Multi-Warehouse 1.1.2 (Feb 29, 2012)
-
Customer locator is improved
- Select from address book function is added
- Ability to hide / show attributes is added
- Zip codes ranges feature is added for Assigned Areas delivery method
Multi-Warehouse 1.1.1 (Feb 24, 2012)
- Split quantity function is added
- Delivery algorithms has been revamped and optimized
- Grouped products discounts function fixed
- Cart functions optimized
Multi-Warehouse 1.1.0.9 (Feb 2, 2012)
- Backend create order products filter is fixed (in case of the assigned stores algorithm) for Magento older 1.6.1
Multi-Warehouse 1.1.0.8 (Jan 29, 2012)
- Priority delivery method improved
- Shipping methods filter improved
- Configuration settings refined
Multi-Warehouse 1.1.0.7 (Jan 27, 2012)
- Added an ability to change warehouses manually on administrator side for single and multiple modes
- Admin sales improvements
- Single mode assigned stores delivery method fixed for backend
Multi-Warehouse 1.1.0.6 (Jan 9, 2012)
- Magento Enterprise specific fix added
Multi-Warehouse 1.1.0.5 (Dec 31, 2011)
- One page checkout conditional defect fixed for IE browser
- GeoIP database and functions updated
- One page checkout improved. Proper shipping address change handling added
Multi-Warehouse 1.1.0.4 (Dec 22, 2011)
- Magento 1.5.0 compatibility fixes
Multi-Warehouse 1.1.0.3 (Dec 18, 2011)
- shipping methods filter fixed (no need to disable methods for each warehouse in case if filter is turned off)
- small templates fixes for old Magento versions 1.5.*
Multi-Warehouse 1.1.0.2 (Dec 12, 2011)
- shipping table rates sorting fixed
- shipping free weight calculation bug is fixed (in case if “split order” option is disabled)
Multi-Warehouse 1.1.0.1 (Nov 24, 2011)
- view configurable product page improved (display available options only)
Update Instructions
If you are running the version prior to 1.1.0 and upgrade can’t be performed for some reason then you can apply most important bug fixes manually.
1. Open app/code/local/Innoexts/Warehouse/Model/Sales/Quote/Address.php file
2. Before getShippingRatesResult function add 2 functions code:
* Get item free method weight
*
* @param Mage_Sales_Model_Quote_Item $item
*/
protected function _getItemFreeMethodWeight($item)
{
if ($item->getProduct()->isVirtual()) {
return 0;
}
$freeAddress = $this->getFreeShipping();
$itemWeight = $item->getWeight();
$rowWeight = $itemWeight * $item->getQty();
if ($freeAddress || $item->getFreeShipping() === true) {
$rowWeight = 0;
} elseif (is_numeric($item->getFreeShipping())) {
$freeQty = $item->getFreeShipping();
if ($item->getQty() > $freeQty) {
$rowWeight = $itemWeight * ($item->getQty() - $freeQty);
} else {
$rowWeight = 0;
}
}
return $rowWeight;
}
/**
* Get item free method weight
*
* @param Mage_Sales_Model_Quote_Item $item
* @return float
*/
protected function getItemFreeMethodWeight($item)
{
$freeMethodWeight = 0;
$freeAddress = $this->getFreeShipping();
if ($item->getParentItem()) {
return $freeMethodWeight;
}
if ($item->getHasChildren() && $item->isShipSeparately()) {
foreach ($item->getChildren() as $child) {
if (!$item->getProduct()->getWeightType()) {
$freeMethodWeight += $this->_getItemFreeMethodWeight($child);
}
}
if ($item->getProduct()->getWeightType()) {
$freeMethodWeight += $this->_getItemFreeMethodWeight($item);
}
} else {
$freeMethodWeight = $this->_getItemFreeMethodWeight($item);
}
return $freeMethodWeight;
}
3. Inside getShippingRatesResult function before
add
if ($_freeMethodWeight > 0) {
$freeMethodWeight += $_freeMethodWeight;
}
4. Save it and open app/code/local/Innoexts/Warehouse/Model/Mysql4/Shipping/Carrier/Tablerate.php file
5. Replace getRate function with:
* Return table rate array or false by rate request
*
* @param Mage_Shipping_Model_Rate_Request $request
* @return array|false
*/
public function getRate(Mage_Shipping_Model_Rate_Request $request)
{
$adapter = $this->_getReadAdapter();
$bind = array(
':website_id' => (int) $request->getWebsiteId(),
':country_id' => $request->getDestCountryId(),
':region_id' => $request->getDestRegionId(),
':postcode' => $request->getDestPostcode(),
':warehouse_id' => (int) $request->getWarehouseId(),
);
$order = array('dest_country_id DESC', 'dest_region_id DESC', 'dest_zip DESC');
if (is_array($request->getConditionName())) {
$pieces = array();
foreach ($request->getConditionName() as $index => $conditionName) {
array_push($pieces, "WHEN condition_name = '{$conditionName}' THEN '{$index}'");
}
array_push($order, '(CASE '.implode(' ', $pieces).' END) ASC');
}
array_push($order, 'condition_value DESC');
array_push($order, 'warehouse_id DESC');
$select = $adapter->select()->from($this->getMainTable())->where('website_id = :website_id')
->where("(warehouse_id = :warehouse_id OR warehouse_id = '0')")
->order($order)
->limit(1);
$orWhere = '(' . implode(') OR (', array(
"dest_country_id = :country_id AND dest_region_id = :region_id AND dest_zip = :postcode",
"dest_country_id = :country_id AND dest_region_id = :region_id AND (dest_zip = '' OR dest_zip = '*')",
"dest_country_id = :country_id AND dest_region_id = 0 AND (dest_zip = '' OR dest_zip = '*')",
"dest_country_id = :country_id AND dest_region_id = 0 AND dest_zip = :postcode",
"dest_country_id = '0' AND dest_region_id = 0 AND (dest_zip = '' OR dest_zip = '*')",
)).')';
$select->where($orWhere);
if (is_array($request->getConditionName())) {
$orWhere = array();
$i = 0;
foreach ($request->getConditionName() as $conditionName) {
$bindNameKey = sprintf(':condition_name_%d', $i);
$bindValueKey = sprintf(':condition_value_%d', $i);
$orWhere[] = "(condition_name = {$bindNameKey} AND condition_value <= {$bindValueKey})";
$bind[$bindNameKey] = $conditionName;
$bind[$bindValueKey] = $request->getData($conditionName);
$i++;
}
if ($orWhere) {
$select->where(implode(' OR ', $orWhere));
}
} else {
$bind[':condition_name'] = $request->getConditionName();
$bind[':condition_value'] = $request->getData($request->getConditionName());
$select->where('condition_name = :condition_name');
$select->where('condition_value <= :condition_value');
}
return $adapter->fetchRow($select, $bind);
}
6. Save it





Andrey Shorin
February 3, 2013 at 12:38 pm
Hi,
Do you know if your extension is compatible with aheadWorks Subscriptions and Recurring Payments extension?
Thank you in advance.
InnoExts
February 4, 2013 at 1:33 pm
Code researching is needed in order to answer the question
Arek J.
February 25, 2013 at 6:26 pm
When purchased, does this extension come with full source code that can be modified as needed? Or is it somehow encrypted and not possible to customize?
InnoExts
February 25, 2013 at 6:40 pm
It is open source once purchased
Arek J.
February 28, 2013 at 3:28 pm
Hello, I would like to install this extension on Magento Enterprise 1.12.0.2. Do I need to purchase the main and the add-on extensions?
- Multi-Warehouse v1.2.0.3
- Multi-Warehouse Enterprise Add-on v1.2.0.2
Thanks!
InnoExts
February 28, 2013 at 3:47 pm
Yes