PluginProbe ʕ •ᴥ•ʔ
Stock Locations for WooCommerce / 3.1.9
Stock Locations for WooCommerce v3.1.9
3.1.9 3.1.8 3.1.7 3.1.6 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 trunk 2.9.8 2.9.9 3.0.0 3.0.1 3.0.2
stock-locations-for-woocommerce / readme.txt
stock-locations-for-woocommerce Last commit date
app 6 years ago assets 4 years ago css 5 months ago images 3 years ago inc 3 weeks ago js 1 month ago languages 3 years ago src 3 weeks ago vendor 5 years ago views 3 weeks ago webfonts 4 years ago composer.json 4 years ago composer.lock 6 years ago index.php 4 years ago readme.txt 3 weeks ago stock-locations-for-woocommerce.php 3 weeks ago
readme.txt
215 lines
1 === Stock Locations for WooCommerce ===
2 Contributors: fahadmahmood,alexmigf,invoicepress
3 Tags: woocommerce, stock, stock locations, simple product, variable products
4 Requires at least: 4.9
5 Tested up to: 7.0
6 Requires PHP: 7.2
7 Stable tag: 3.1.9
8 License: GPLv2 or later
9 License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
11 This plugin will help you to manage WooCommerce Products stocks through locations.
12
13
14 == Description ==
15 Stock Locations for WooCommerce will help you manage your products stock across multiple locations easily. If you have multiple physical stores or storage locations, like warehouses, this plugin may help you.
16
17 You can print the locations inside a product page on the frontend, with this shortcodes:
18
19 = Product pages =
20
21 `[slw_product_locations show_qty="yes" show_stock_status="no" show_empty_stock="yes" collapsed="no" stock_location_status="enabled"]`
22 `[slw_product_variations_locations show_qty="yes" show_stock_status="no" show_empty_stock="yes" collapsed="yes" stock_location_status="all|disabled|enabled"]`
23 `[slw_product_message is_available="yes" only_location_available="no" location="location-slug"]Your custom product message/HTML here[/slw_product_message]`
24
25 = Cart page =
26
27 `[slw_cart_message qty_from_location="location-slug" only_location_available="no"]Your custom cart message/HTML here[/slw_cart_message]`
28
29 = REST API =
30
31 REST API endpoints (both accept `GET` and `PUT` requests):
32
33 `/wp-json/wc/v3/products/id`
34 `/wp-json/wc/v3/products/id/variations/id (first ID is for parent product, the second one for the variation ID)`
35 `/wp-json/wp/v2/location/`
36 `/wp-json/wp/v2/location/id`
37
38
39 This plugin requires at least *WooCommerce 3.4*.
40
41
42 = Features =
43
44 - New taxonomy for stock locations
45 - Works on both, simple and variable products
46 - Easy management of stock with multiple locations, both in product and orders
47 - Get and update product stock locations from the REST API
48 - Allow customers to select locations when purchasing
49 - Auto order allocation for locations stock reduction
50 - Send email notifications when stock is allocated for a product in a location
51 - Send WooCommerce New Order email copy to item location
52 - Compatible with WPML
53
54
55 = Compatibility =
56
57 - PHP 7.2+
58
59
60 == Installation ==
61
62 1. Upload "stock-locations-for-woocommerce" to the "/wp-content/plugins/" directory.
63 2. Check if you have WooCommerce 3.4+ plugin activated
64 3. Activate SLW plugin through the "Plugins" menu in WordPress.
65
66 **Simple Products**
67
68 1. Assign Stock Locations to the product > Update Post
69 2. Under Inventory Tab > Activate Manage Stock
70 3. Under Stock Locations Tab > Manage the stock for the locations
71
72 **Variable Products**
73
74 1. Assign Stock Locations to the product > Update Post
75 2. Under Inventory Tab > Deativate Manage Stock
76 3. Under Attributes Tab > Create attributes
77 4. Under Variations Tab > Create variations based on attributes
78 5. In each variation > Activate Manage Stock & Add Price > Update Post
79 6. Under Stock Locations Tab > Manage the stock for the locations for each variation
80
81
82 == Frequently Asked Questions ==
83
84 = Problems with wp all import? =
85
86 **👉 1. How can we make them activate automatically during the import process?**
87
88 If you want to make them active, in Import settings check "Taxonomies (incl. Categories and Tags)",
89 under this chose "Update only these taxonomies, leave the rest alone" and type "location"
90
91 Use this with "custom fields: _stock_at_xxx" as warehouse number and import works perfectly.
92
93 = Stock Locations | Stock Deductions | Settings and Results =
94
95 **👉 1. How auto order allocation work with multiple stock locations?**
96 [youtube http://www.youtube.com/watch?v=0UbAPmZ2Kco]
97
98 **👉 2. How location priority work with auto order stock allocation?**
99 [youtube http://www.youtube.com/watch?v=9kGVJZNNxRk]
100
101 **👉 3. What if all of my locations don't have the sufficient stock ordered?**
102 If order quantity is within the summation of all stock locations available stock quantity, it will be simply served. If not, auto allocation will not work so admin can decide if he want to deliver the order partially or wait for stock comes in.
103 [youtube http://www.youtube.com/watch?v=4NXYr24OKFg]
104
105 **👉 4. How location email works?**
106 [youtube http://www.youtube.com/watch?v=zdCdckXEbNw]
107
108 **👉 5. Do you want to sell products from only one stock location?**
109 [youtube http://www.youtube.com/watch?v=rznc0WMbmh4]
110 [youtube http://www.youtube.com/watch?v=7ZIv_d7prLA]
111
112 **👉 6. How to make location selection required on cart page?**
113 [youtube http://www.youtube.com/watch?v=64N7-b90r3E]
114
115 **👉 7. How does it manage the maximum qty. to order according to the stock in a location?**
116 [youtube http://www.youtube.com/watch?v=gmU3cnk0LjY]
117
118 **👉 8. How to allow editing location values on orders after being reduced?**
119 https://github.com/fahadmahmood8/stock-locations-for-woocommerce/issues/90
120 [youtube http://www.youtube.com/watch?v=Q1Lq-cbv2hE]
121
122 = How Import/Export work with CSV files? =
123 [youtube http://www.youtube.com/watch?v=4KCexCuVetk]
124
125 = How to use Cron Job? =
126 [youtube http://www.youtube.com/watch?v=si_DUe-8ncY&t=114s]
127
128 = How to use REST API? =
129 [youtube http://www.youtube.com/watch?v=si_DUe-8ncY]
130
131
132 = How Google Map and Location Archives work in Premium Version? =
133 [youtube http://www.youtube.com/watch?v=ZgmNWuKFyQI]
134
135 = How to lock pre-selected location on frontend? =
136
137 Turn ON "Enable default location in frontend selection" from WooCommerce > Stock Locations for WC. This option will allow you to select default location for a product on Product Edit page. Now turn ON "Lock frontend location to default" and it will lock frontend location which is selected as default.
138
139 = I found a bug, where I can report it? =
140 I prefer you to use the Github issues. You can submit a new one here [GitHub](https://github.com/fahadmahmood8/stock-locations-for-woocommerce/issues/new)
141
142 = How to show location stock quantity with a postfix e.g. 20+? =
143 On settings page you can define a number. If location stock value will be less than the given number, it will display the stock value else will not show the exact number but a plus sign "+" just after the maximum number given.
144
145 [youtube http://www.youtube.com/watch?v=nWj5MTLcPjI]
146
147
148
149
150 == Screenshots ==
151
152 1. Product list filter and stock locations column
153 2. Stock locations taxonomy
154 3. Manage stock locations in simple products
155 4. Manage stock locations in variable products
156 5. Deduct stock from locations manually
157 6. Deduct stock from location automatically
158 7. Allow customers to select locations in cart page
159 8. Allow customers to select location in variable products
160 9. Allow customers to select location in simple products
161 10. Plugin settings
162 11. Show location stock quantity with a postfix e.g. 20+
163 12. Edit Stock locations taxonomy
164 13. Lock default location on frontend.
165 14. Set price for product as per each stock location.
166 15. Pre-select default location on product page (frontend).
167 16. Stock locations for each variation.
168 17. How to allow editing location values on orders after being reduced?
169
170
171 == Changelog ==
172 = 3.1.7 =
173 * Fix: Variable products showing out of stock even when inventory exists - resolved stock status handling for variations without manual location stock entry [Thanks to Ben Croft][28/05/2026]
174
175 = 3.1.4 =
176 * Fix: Bug with variation stock status querying (PR #171). Variations were getting their is_in_stock queried, and reporting incorrectly they were out of stock. [Thanks to kennydude / Joe Simpson][30/04/2026]
177
178 = 3.1.1 =
179 * Fix: Corrected stock status calculation when all locations have zero stock to prevent false "in stock" state. [Thanks to @armanuniverse][06/04/2026]
180 * Fix: Ensured proper handling and saving of _stock_status (instock/outofstock) in database.
181 * Improvement: Replaced unreliable stock status checks with aggregated per-location stock calculation.
182 * Improvement: Standardized return values to boolean for accurate WooCommerce compatibility.
183 * Props: Thanks to armanuniverse for identifying and sharing the fix.
184
185 = 3.1.0 =
186 * Resolved 'get_variation_default_attribute' fatal error and out-of-stock display issue caused by Stock Locations plugin update, ensuring variable and simple products now show correct stock status. [Thanks to Renzo Westenbroek | Webreturn][12/03/2026]
187
188 = 3.0.9 =
189 * Fixed: Including API response and optimized approach to DB writes, backorder related status and a few more improvements suggested in support threads since October 2025. [07/03/2026]
190 = 3.0.8 =
191 * Fixed: Compatibility issue with Woodmart theme where early returns in slw_wp_head() prevented closing of <style> tag, causing invalid HTML and breaking mobile viewport (meta viewport ignored, pages rendering in desktop mode on mobile). Refactored dynamic CSS output to collect rules first and only inject <style> block when content exists; bumped hook priority to 20 for safer execution after theme styles. [Thanks to Spikee] [22/02/2026]
192
193 = 3.0.7 =
194 * Added: JSON payload-based API for bulk updating stock and price per location for products and variations. [Thanks to Mark Boorman][12/01/2026]
195
196 = 3.0.6 =
197 * Added: WooCommerce variation availability now respects location stock for swatch-based themes like Woodmart. [Thanks to Renzo Westenbroek][05/01/2026]
198
199 = 3.0.4 =
200 * Tested: WooCommerce variation availability now respects location stock for swatch-based themes like Woodmart. [Thanks to Renzo Westenbroek][05/01/2026]
201
202 = 3.0.2 =
203 * Fixed: Only enabled/active stock locations will contribute in total stock value but it would still be editable. [Thanks to @josephkallinit][21/10/2025]
204 * Fixed: Prevented potential PHP error when `$slw_api_valid_keys` is null during API validation. [Thanks to Tushar Tajane][21/10/2025]
205 * New: Order notes can be turned off from the settings. [Thanks to Rob Wood][21/10/2025]
206 * Fixed: Incorrect price range display for variable products when location-based stock prices are higher than variation base prices. The location price now overrides confusing WooCommerce default range formatting.
207 * Improved: Sale price logic now fully respects location-based pricing — ensuring both range and sale indicators are hidden when local price is higher. [21/10/2025]
208
209 = 3.0.1 =
210 * Added: Conditional CSS injection for WooCommerce Blocks to hide sale and del elements when location price exceeds the base or sale price.
211 * Improved: Price hiding logic refactored for better compatibility across all product types (simple, variable, grouped). [20/10/2025]
212
213 == Upgrade Notice ==
214 = 3.1.7 =
215 This release fixes a critical issue where variable products were displaying as out of stock despite having available inventory. After updating, variable products will correctly reflect stock status without requiring manual stock entry for each variation in the location tab. Simple products already working with the "Everything stock status to instock" setting will continue to function normally. We highly recommend updating to restore proper stock display for your variable products.