- Multi-Warehouse
1. Overview
The “Multi-Warehouse” extension solves one of the main eCommerce platforms problem is how to handle multiple ship from warehouses. The idea is that a store has either multiple warehouses (locations in particular), or they have more than one supplier that drops ships to customers. The Magento makes it possible to ship from a single location within a website and to manage global one-location inventory. On our side, “Multi-Warehouse” extends Magento in order to cover multi-warehouse sellers and resellers needs.
2. Installation
Read about installation instructions here
3. Configuration
In menu: Configuration -> Catalog -> Warehouses
- Configuration - Warehouses - Fieldset
Allow Shipping from Multiple Warehouse
This option regulates the customers handling algorithm. If option is enabled then the system checks available products within all warehouses and groups packages by warehouses in the best way according to the shipping price. The disabled option assigns customers to the single warehouse by the customer location. So, if the store needs to sell products from multiple suppliers or its own warehouses, your choice is option enabled. If you need to direct customers to the local warehouse, then the option must be disabled.
- Multi-Warehouse
- Multi-Warehouse-2
Allow Warehouses Manual Selection
If option enabled then the customer can choose warehouses for cart items on their own manually instead of the cheapest shipping calculation. “Allow Shipping from Multiple Warehouse” option must be enabled as well in order to get this function active.
Hide Warehouses information
This option is reserved for future needs.
4. Manage Warehouses
In menu: Catalog -> Manage Warehouses
- Catalog - Manage Warehouses - Grid
The warehouses editor. There is a single warehouse named “Default” initially. It is impossible to remove default warehouse but it may be renamed. Let’s create 4 warehouses with the next titles: “New York” (we just need to rename “Default”), “California”, “Florida”, “Minnesota”. Start with “California”. Click the “Add New Warehouse” button and you will get 3 warehouse tabs: “General”, “Contact”, “Origin”. The “General” tab includes 2 inputs to enter warehouse “Code” and “Title”. The “Contact” tab allows to set a warehouse person notification in a case if the new order has been created with a warehouse product in it. Tick the “Notify?” checkbox in order to activate the function and enter contact “Name” and “Email” fields. The “Origin” tab allows to enter the warehouse physical location in the system. Once location is present the default website shipping origin will be replaced with the warehouse origin for the correct shipping cost calculation in order to not to overcharge customers. Press the “Save Warehouse” button and repeat steps above for “New York” (click edit “Default” instead of adding new one), “Florida”, “Minnesota”.
- Catalog - Manage Warehouses - Add Warehouse - General - Fieldset
- Catalog - Manage Warehouses - Add Warehouse - Contact - Fieldset
- Catalog - Manage Warehouses - Add Warehouse - Origin - Fieldset
Click the warehouse (or “Edit” link to change the warehouse information). Some more additional tabs are active for warehouse editing like “Areas”, “Products” and sales tabs: “Orders”, “Invoices”, “Shipments”, “Credit Memos”. The “Products” tab lists all the available warehouse products (goto Manage Products to add some). The “Areas” tab gives an ability to set warehouse regions up. This means if “Allow Shipping from Multiple Warehouse” option is disabled then the customer will be assigned to the warehouse according to the warehouse areas entered. The sales tabs are equal to the “Sales” administrator sub-menu items but all the records are filtered by the current warehouse.
- Catalog - Manage Warehouses - Edit Warehouse - Areas - Widget
- Catalog - Manage Warehouses - Edit Warehouse - Products - Grid
- Catalog - Manage Warehouses - Edit Warehouse - Orders - Grid
- Catalog - Manage Warehouses - Edit Warehouse - Invoices - Grid
- Catalog - Manage Warehouses - Edit Warehouse - Shipments - Grid
- Catalog - Manage Warehouses - Edit Warehouse - Credit Memos - Grid
5. Manage Products
In menu: Catalog -> Manage Products
- Catalog - Manage Products - Grid
We have to track the quantity by each warehouse since the inventory is split into warehouses. The extension replaces the “Qty” column to display total and warehouses product quantities.
Edit Product
- Catalog - Manage Products - Edit Product - Inventory - Form
The “Inventory” tab is replaced with the multiple version where you can track and manage the inventory for each warehouse.
6. Low Stock Report
In menu: Reports -> Products -> Low Stock
- Reports - Products - Low Stock - Grid
Any product with the quantity below the low bound for at least one warehouse is present on the page (“Notify Qty Below” inventory field dependent).
7. Sales
In menu: Sales
- Sales - Orders - Grid
Orders, Invoices, Shipments, Credit Memos
The “Warehouses” column is added to orders (the same for invoices, shipments and credit memos) and gives an ability to filter records by warehouses. The warehouses information is present for view and edit pages separately. The information includes the “Warehouses” field in the common order information block and the warehouse name for each order line.
- Sales - Orders - View Order - Widget
- Sales - Orders - View Order - Items - Grid
8. Table Rates Shipping Method
In menu: System -> Configuration -> Sales -> Shipping Methods -> Table Rates
- Configuration - Sales - Shipping Methods - Table Rates - Fieldset
The “Table Rates” is one of the most commonly used shipping methods. There you can define shipping costs depending on the shipping destination, condition name and condition value. But it does not work with multiple warehouses. We may need to define different shipment prices depending on the warehouse but not on the shipping destination only. The shipping source is important in our case. It is possible to set the warehouse ID for each rule from now. Let’s do it. Change your configuration scope to any website. You will see “Export CSV” button. Press it and save the CSV file. The CSV file includes an additional column named “Warehouse ID”. You may enter any warehouse ID for each rule or “*” to enable it for all warehouses.
- Configuration - Sales - Shipping Methods - Table Rates - CSV
Read more about the table rate shipping here.
9. Shipping Table Rates
In menu: Sales -> Shipping -> Shipping Table Rates
- Sales - Shipping - Shipping Table Rates - Grid
The shipping table rates manager lists records by website selector options.
Add / Edit Rate
- Sales - Shipping - Shipping Table Rates - Edit Rate - Form
10. Import / Export
The Import / Export function fetches and updates an information for the default warehouse (stock ID = 1) now. It is possible to overwrite it in a desirable way with custom adapters and parsers to pass an appropriate warehouse ID and merge the information with a data provider. The problem is that each supplier / warehouse may share inventory and require orders reports in its own format. It is impossible to cover all cases in their variety. The only thing we can do is to make this process much more easier as it is one of the main problem that is actual for store owners. The “Advanced Dataflow” extension solves this problem out. This extension is coming as an “Milti-Warehouse” add-on shortly.
11. Add to Cart, Checkout
The “Add to Cart”, “Checkout” processes and product availability in particular depend on “Allow Shipping from Multiple Warehouses” option (see Configuration). Let’s walk step by step by each case.
Allow Shipping from Multiple Warehouse is disabled
The system assigns a customer to a single warehouse and checks product availability in the single warehouse only. The way how the system assigns the warehouse to the customer depends on the warehouses areas setup, but it may be easily overwritten according to your needs. Once the warehouse is assigned to the customer the “Add to Cart” and “Checkout” processes are similar to how it Magento does by default. The only difference is that the administrator is able to check the warehouse information the customer is assigned to. This case is the most appropriate if each warehouse has nearly the same product set and shipping from remote warehouses is complicated / not desirable. Let’s look into the warehouse assignment sub-process. The warehouse must be set by the customer address that matches some warehouse area. The default shipping address or checkout shipping address are used as a customer address if defined. Otherwise we have to check customer IP address and convert it to the approximated location with MaxMind service.
Allow Shipping from Multiple Warehouse is enabled
The system checks the product availability in each warehouse depending on the quantity requested. For example, we have Product A available in “New York” and “Florida” warehouses both. We need to assign the warehouse with the cheapest shipping obviously. But it is impossible before the “Shipping Address” checkout process completion, so we need to pick a random one. Once the shipping address is picked the system re-assigns warehouses for each order line in order to minimize the shipping cost (the system checks each possible combination for the shipping price). So if some Florida customer buys product A this product will be assigned to “Florida” warehouse most likely.
























alex
October 14, 2011 at 8:50 am
hello:
thanks for your good extension.
after install the warehouse,when I go to login and go to sales>orders ,and select one order to have a look,some default infomations missing:such as Account Information,Billing Address,Shipping Address,Payment Information,Shipping Information,Items Invoiced and so on!
just display “Order # 100000037 (the order confirmation email was sent)”.
my domain is http://www.lktown.com .
would u please help me to have a check?
Best Regards,
Alex
InnoExts
October 14, 2011 at 9:59 am
Your view order block is broken. The order model has been inherited by another extension before Multi-Warehouse. You should assign Magento developer to check all 3rd party extensions in your system for conflicts and merge if needed. This procedure takes not much time usually but depends on 3rd party extensions count and complexity. You can check it by deactivating all 3rd party extensions with next steps:
For each 3rd party extension except extension starting with Inno_* do next:
1) open app/etc/modules/[Vendor]_[ExtensionName].xml;
2) replace true with false;
3) regenerate the cache in admin;
Fabien
October 24, 2011 at 1:13 pm
Hello,
This extension seems good.
However, I would like to know if this extension runs on Enterprise 1.8. If not, would it be easy to do the integration ?
Best regards,
Fabien
InnoExts
October 24, 2011 at 3:15 pm
It supports Community 1.5+ only. But it can be easily extended for new Enteprise and Professional editions (equal to 1.5+).
Mark
November 5, 2011 at 12:13 am
After installation were receiving this error: httpdocs/app/code/local/Innoexts/Warehouse/Model/Observer/Cataloginventory.php on line 203
any ideas? On Mage 1.5.1
Mark
November 5, 2011 at 12:16 am
btw, this appears which clicking on the products section of the warehouse setup.
Mark
November 5, 2011 at 12:18 am
btw, none of our catalog products load after this…the error is stated above.
Fatal error: Call to a member function addStockStatusToProducts() on a non-object in /var/www/vhosts/sitename.com/subdomains/site.sitename.com/httpdocs/app/code/local/Innoexts/Warehouse/Model/Observer/Cataloginventory.php on line 203
InnoExts
November 5, 2011 at 1:13 am
Please, make sure you have all 3rd party extensions disabled.
Looks like your catalog inventory is loaded by another extension on an earlier stage then Multi-Warehouse.
It would be better to set it up with a blank Magento first.
Then add your extensions one by one and make sure no conflicts are found.
If conflict is found you need to merge conflicting extensions manually.
Let me know if you are experiencing the problem still.
Pingback: Milti inventory | Imagearmy
David
March 2, 2012 at 10:28 am
Hello.
I have a question about this extension.
Can we use a GeoIP database to show the user of a special location the stock of a determinate warehouse?
For example: I´m from Spain, and I´m looking for an item on “Store A”. This store have 4 warehouses, but only the spanish warehouse have 0 stock of the item I want to buy.
Can I know the item is out of stock before I add to cart, based on my IP address? If don´t, can you do a custom development with this functionality?
Regards
David
InnoExts
March 2, 2012 at 11:30 am
There are 2 modes available in this module: single and multiple. Single means a visitor can put items from a single warehouse only. There are some algorithms to assign visitors to warehouses. Multiple mode allows to put items from different warehouses into cart depending on availability.
In your case you will need one of single mode delivery methods enabled: Assigned Areas or Nearest (see here). You can extend system with additional delivery methods if needed. For example you can add area ES, *, * for Spain warehouse (you set regions and zip ranges also). This way each visitor from Spain will be assigned to Spain warehouse. Enable Catalog -> Inventory -> Stock Options -> Display Out of Stock Products to show out of stock products.
David Gonzalez
March 5, 2012 at 8:56 am
When you say “There are some algorithms to assign visitors to warehouses” means that we can assign warehouse to visitors based on their IP address?
On your demo store for “single mode”, the visitor only is notified the product is out of stock when he/she is on the checkout and he/she choose their country. This can be frustrating for any customer.
We need an alternative way to show the stock before the customer add a product to cart.
Regards.
David
InnoExts
March 6, 2012 at 1:30 pm
It can be done for a single mode only in a custom way. Look at a helper code and you will find the function to get a current stock identifier. It is impossible for a multiple mode because a warehouse is unknown till we put it into a cart.
Shyamol
March 31, 2012 at 1:51 pm
This extension is very useful. One thing, After changing shipping address, it does not change ‘your location’ in product page. Is it possible to do that?
InnoExts
April 6, 2012 at 8:09 pm
It is not supposed to do so. However, it is a nice candidate for near todo list.
New Nike NFL Jerseys
July 27, 2012 at 9:52 am
thank u so much.
AG
November 14, 2012 at 7:54 am
We are developing a multi vendor system for our website which also requires some vendors to have multiple warehouses. Will we be able to integrate your multi warehouse module into our website to work with our multi vendor system ? [i.e. is your module customizable or are we allowed to change the code]
InnoExts
November 24, 2012 at 1:31 pm
Yes. You can customize it your own. We are planning to publish Multi-Vendor module as well soon. But we have siginificant updates coming for Multi-Warehouse and pricing extensions first.