Przewodnik konfiguracji lokalizacji Stokkap
Stokkap Connect uses a two-tier system to organise where your stock is stored: Location Types and Locations. This guide covers everything from initial setup to day-to-day management.
Location management (creating types, creating locations, reordering, and deleting) is done within the WordPress plugin admin. The Stokkap web app provides additional ways to assign locations to individual products - such as scanning, the product list edit button, and the product detail view - but the setup and configuration is handled in the plugin.
Understanding the two-tier system
Location Types are categories that describe the kind of place stock is stored. Think of them as labels: Shop, Warehouse, Supplier.
Locations are the specific named places within those categories. "Main Shop", "London Warehouse", "Acme Supplies Ltd" are all locations.
Produkt można przypisać do wielu lokalizacji tego samego typu, na przykład dwóch sklepów lub kilku regałów magazynowych. Typy grupują podobne lokalizacje; nie trzeba tworzyć osobnego typu dla każdego miejsca.
Step 1 - Create location types
Navigate to your WordPress admin:
Stokkap → Location Types
Adding a type
- Enter a Label - the display name shown throughout the admin (e.g., "Shop")
- Optionally set a Slug - an internal identifier auto-generated from the label if left blank. Uses only lowercase letters, numbers, and underscores. The slug cannot be changed after creation, so choose carefully or leave blank to auto-generate.
- Set the Priority - this controls stock depletion order (explained in detail below). Lower numbers mean higher priority. The default auto-increments in steps of 10 (10, 20, 30...) to leave room for re-ordering later.
Click Add Location Type to save.
Slugs are permanent. Once a location type is created, its slug cannot be changed - even via CSV import. This protects existing locations and product stock meta that reference the slug. If you need a different slug, delete the type (only possible when no locations use it) and recreate it.
Real-world type examples
Here are setups for different kinds of stores:
Small independent shop:
| Typ | Priorytet |
|---|---|
| Shop | 10 |
| Supplier | 20 |
Simple - sell from the shop first, fall back to supplier stock.
Multi-location retailer:
| Typ | Priorytet |
|---|---|
| Shop | 10 |
| Warehouse | 20 |
| Supplier | 30 |
Shop floor stock sells first. When the shop is empty, warehouse stock is used. Supplier stock is the last resort.
Online-only business with multiple warehouses:
| Typ | Priorytet |
|---|---|
| Magazyn główny | 10 |
| Magazyn rezerwowy | 20 |
| Dostawca dropshippingowy | 30 |
Prioritise your main warehouse, overflow handles excess, suppliers fulfil the rest.
Retailer with shelved and displayed stock:
| Typ | Priorytet |
|---|---|
| Ekspozycja | 10 |
| Regał | 20 |
| Zaplecze | 30 |
| Supplier | 40 |
Sell displayed items first, restock from shelves, then back room, then fall back to supplier.
Container storage business (real customer example):
| Typ | Priorytet |
|---|---|
| Sala sprzedaży | 10 |
| Mały kontener | 20 |
| Duży kontener | 30 |
| Zaplecze biurowe | 40 |
| Supplier | 50 |
This customer uses container types to separate different physical storage areas. Stock is taken from the shop floor first, then small containers, then large containers, then back office reserves, and finally the supplier. Each container type can hold many location names describing exact positions.
Editing and deleting types
- Click Edit next to any type to change its label or priority. The slug remains fixed.
- Click Delete to remove a type. You can only delete a type that has no locations assigned to it. Reassign or delete its locations first.
Step 2 - Create locations
Navigate to your WordPress admin:
Stokkap → Locations
This page will not be available until you have created at least one location type.
Adding a location
- Enter a Name - the specific place (e.g., "Main Shop", "Birmingham Warehouse", "Acme Supplies Ltd")
- Select the Type from the dropdown
- Set the Priority - defaults to the type's priority, but can be overridden per location. This controls the order within the same type and across types.
Click Add Location to save.
Real-world location examples
Small independent shop with one supplier:
| Nazwa lokalizacji | Typ | Priorytet |
|---|---|---|
| My Shop | Shop | 10 |
| Main Supplier | Supplier | 20 |
Multi-location retailer:
| Nazwa lokalizacji | Typ | Priorytet |
|---|---|---|
| Manchester Store | Shop | 10 |
| Leeds Store | Shop | 10 |
| Central Warehouse | Warehouse | 20 |
| Acme Wholesale | Supplier | 30 |
| Budget Parts Ltd | Supplier | 30 |
Wiele lokalizacji może mieć ten sam typ i priorytet. Produkt może mieć zapas zarówno w Manchester Store, jak i w Leeds Store w ramach typu Shop.
Warehouse with zone-based shelving:
| Nazwa lokalizacji | Typ | Priorytet |
|---|---|---|
| Zone A - Electronics | Shelf | 10 |
| Zone B - Clothing | Shelf | 10 |
| Zone C - Homeware | Shelf | 10 |
| Returns Area | Shelf | 15 |
| Main Supplier | Supplier | 20 |
Produkt może mieć zapas na wielu półkach. Lokalizacja o nazwie Returns Area nadal jest sprzedażowa, chyba że została wyraźnie utworzona jako niesprzedażowa. Niższy priorytet rozchodu jedynie opóźnia jej użycie; nie blokuje sprzedaży z tej lokalizacji.
Container storage with position codes (real customer example):
| Nazwa lokalizacji | Typ | Priorytet |
|---|---|---|
| Shop Front | Sala sprzedaży | 10 |
| L/H/S/Shelf 1 | Mały kontener | 20 |
| L/H/S/Shelf 2 | Mały kontener | 20 |
| L/H/S/Rack 1 | Mały kontener | 20 |
| R/H/S/Shelf 1 | Duży kontener | 30 |
| R/H/S/Rack 1 | Duży kontener | 30 |
| Back Office Store | Zaplecze biurowe | 40 |
| Wholesale Direct | Supplier | 50 |
Krótkie kody pozycji, takie jak L/H/S (lewa strona) lub R/H/S (prawa strona), z numerem półki lub regału pomagają znaleźć towary. Produkt może mieć wiele lokalizacji w obrębie jednego typu kontenera.
The locations table
Your locations are displayed in a table showing:
- Priority number
- Name
- Slug (shown as the meta key format
_st_stock_{slug}) - Type
- Status (Active/Inactive)
- Actions (Edit, Delete)
Przeciągaj wiersze, aby zmieniać priorytet rozchodu. Zamówienia korzystają z kwalifikujących się aktywnych lokalizacji sprzedażowych od góry do dołu; zapas niesprzedażowy jest pomijany.
Editing a location
Click Edit next to any location. You can change:
- Name - rename the location at any time
- Type - reassign to a different type
- Priority - adjust the depletion order
- Aktywna — zwykłe lokalizacje można dezaktywować dopiero po przeniesieniu lub usunięciu ich zapasu. Lokalizacji niesprzedażowych nie można dezaktywować.
The slug cannot be changed after creation. The slug is generated from the original name and is used internally as the stock meta key. Renaming a location updates only the display name - all stock data remains intact because the slug stays the same.
Możliwość sprzedaży ustala się podczas tworzenia lokalizacji. Istniejącej lokalizacji nie można zmienić ze sprzedażowej na niesprzedażową ani odwrotnie. Gdy zapas będzie gotowy do sprzedaży, przenieś go do lokalizacji sprzedażowej.
Deleting a location
Usunięcie lokalizacji usuwa samo miejsce, a nie tylko przypisanie do jednego produktu. Lokalizacje niesprzedażowe trzeba wcześniej opróżnić. Usunięcie mogą także blokować nierozwiązane powiązania lub operacje.
Gdy lokalizacja jest pusta: potwierdź usunięcie po rozwiązaniu pozostałych powiązań lub operacji.
Dla zwykłych lokalizacji sprzedażowych z zapasem: okno usuwania udostępnia poniższe opcje. Nie omijają one kontroli obowiązujących dla lokalizacji niesprzedażowych:
- Download Report - Generates a text file listing every product at that location with its SKU, barcode, stock quantity, and product name. Use this to verify what will be affected before proceeding.
- Transfer & Delete - Choose a destination location from the dropdown. All stock is transferred to the destination in the background, then the location is deleted. Use this when moving stock to a new location (e.g., closing a store and moving inventory to your warehouse).
- Delete Without Transfer - Permanently removes the location and all associated stock data. This requires an extra confirmation checkbox: "I understand this will permanently lose X unit(s)". Only use this if the stock no longer exists physically.
Usunięcie przypisania do pojedynczego produktu to osobna czynność. Przed usunięciem lokalizacji niesprzedażowej przenieś towary zwykłym lub zbiorczym transferem.
Lokalizacje niesprzedażowe
Lokalizacje niesprzedażowe przechowują zarejestrowany zapas niedostępny do sprzedaży, na przykład towary uszkodzone, zwroty oczekujące na sprawdzenie lub zapas czekający na kontrolę jakości.
Niesprzedażowość jest właściwością pojedynczej lokalizacji, a nie osobnym typem lokalizacji. Lokalizacje sprzedażowe i niesprzedażowe mogą należeć do tego samego typu Warehouse lub Shop.
Włączanie i tworzenie lokalizacji niesprzedażowej
- Zaktualizuj Stokkap Connect do wersji 1.6.6 lub nowszej i korzystaj z najnowszej aplikacji Stokkap.
- Otwórz Stokkap → Ustawienia.
- Pod kartą ustawień Typy lokalizacji znajdź Lokalizacje niesprzedażowe i kliknij Włącz lokalizacje niesprzedażowe.
- Otwórz Stokkap → Lokalizacje, utwórz nową lokalizację i zaznacz Niesprzedażowa.
Istniejące lokalizacje pozostają sprzedażowe. Włączenie funkcji nie zmienia istniejącego zapasu.
Możliwość sprzedaży jest ustalana przy tworzeniu: istniejących lokalizacji nie można zmieniać ze sprzedażowych na niesprzedażowe ani odwrotnie. Po włączeniu funkcji nie można jej wyłączyć w Ustawieniach.
Aby udostępnić zapas do sprzedaży, przenieś go do lokalizacji sprzedażowej.
Obsługiwane operacje i ograniczenia
Dla zwykłych produktów bez śledzenia numerów seryjnych:
- Podgląd i korekta: edycja produktu, Quick Lookup, Stock Control i Scan obsługują ilości niesprzedażowe. Lokalizacje mają wyraźną etykietę Niesprzedażowa.
- Przenoszenie zapasu: zwykłe i zbiorcze transfery umożliwiają przemieszczanie zapasu między lokalizacjami sprzedażowymi i niesprzedażowymi.
- Liczenie: lokalizacje niesprzedażowe są wyłączone z inwentaryzacji oraz zliczania bieżącego i zbiorczego.
- Nieobsługiwane miejsca docelowe: lokalizacji niesprzedażowych nie można używać do zapasu z numerami seryjnymi, przyjęć zakupów ani aktywacji zbiorczej.
- Importy CSV: obsługiwane procesy importu nie mogą tworzyć ani zmieniać stanów niesprzedażowych. Zwykłe importy zapasu sprzedażowego nadal działają.
- Raporty i eksporty: mogą pokazywać ilości niesprzedażowe i etykiety lokalizacji. Zapas niesprzedażowy jest wyłączony z wyceny według kosztu i ceny detalicznej oraz nie liczy się jako zapas dostępny do sprzedaży w raportach niskiego i zerowego stanu.
Reordering locations (drag and drop)
The locations table supports drag-and-drop reordering. Grab the handle on the left side of any row and drag it to a new position. The priority numbers update automatically when you drop.
Kwalifikujący się zapas sprzedażowy jest pobierany od góry do dołu. Zamówienia korzystają z aktywnych lokalizacji sprzedażowych według priorytetu, przechodząc w razie potrzeby do następnej. Zapas niesprzedażowy jest pomijany bez względu na priorytet.
This is the quickest way to adjust depletion order without manually editing priority numbers.
How priority and stock depletion works
Priority is the core concept that determines which location's stock is used first when a customer places an order.
The depletion cascade
Po złożeniu zamówienia Stokkap korzysta z kwalifikujących się aktywnych lokalizacji sprzedażowych od najniższego numeru priorytetu (najwyższy priorytet) do najwyższego. Zapas niesprzedażowy jest zawsze pomijany:
Example: A customer orders 8 units of a product.
| Nazwa lokalizacji | Priorytet | Dostępny zapas | Działanie |
|---|---|---|---|
| Main Shop | 10 | 3 sztuki | Pobierz 3 (pozostało 0) |
| Warehouse | 20 | 10 sztuk | Pobierz 5 (pozostało 5) |
| Supplier | 30 | 50 sztuk | Pominięto (zamówienie pokryte) |
Wynik: 3 sztuki pochodzą z Main Shop, a 5 z Warehouse. Stan dostępny do sprzedaży w WooCommerce spada o 8.
Jeśli dozwolone są zamówienia oczekujące na dostawę, a kwalifikujący się zapas sprzedażowy nie wystarcza, brak przypisywany jest do kwalifikującej się lokalizacji sprzedażowej o najwyższym priorytecie. Zapas niesprzedażowy nie może pokryć tego braku.
Type priority vs location priority
Location types have a default priority that new locations inherit. You can override this on individual locations.
For most setups, keeping all locations of the same type at the same priority works well - the system processes them in the order they appear. If you need finer control (e.g., preferring one warehouse over another), give individual locations different priority numbers.
Smart Delivery add-on: zone-based priority overrides
With the Smart Delivery add-on (coming soon as a subscription), you can override the default type priority per WooCommerce shipping zone. This lets you change which location type is preferred based on where the customer is shipping to.
For example, your default priority might be Shop (10) > Warehouse (20) > Supplier (30). But for international orders, you could set it to Warehouse first because it is closer to the port. Each shipping zone can have its own priority order.
Smart Delivery also enables:
- Geolocation-aware depletion - Stokkap detects the customer's location automatically and applies the correct priority order before they even reach checkout.
- Delivery time messages - Show customers estimated delivery times on product pages based on which location would supply their order.
- Shipping rate filtering - Automatically show or hide shipping methods based on which location types will fulfil the order.
- Click-and-collect fulfilment - Orders using a click-and-collect shipping rate can be prioritised to deplete shop floor stock.
Bulk import & export (CSV)
Use the built-in CSV import and export tools when you need to create a lot of locations or location types at once - for example, 10+ locations, warehouse aisle-and-bin grids, or multi-store rollouts.
This is different from the product-stock CSV import described below in Assigning locations to products. This section creates and updates the locations and location types themselves; it does not assign product quantities to those locations.
Two separate CSVs
Stokkap uses separate importers for:
- Location Types - the categories such as Shop, Warehouse, Supplier, or Aisle M01.
- Locations - the actual places within those types, such as Main Shop, Central Warehouse, or M01-G01.
Create location types first, then import locations that reference those types.
Location Types CSV columns
| Kolumna | Wymagane? | Uwagi |
|---|---|---|
label |
Wymagane | Nazwa wyświetlana typu, np. Warehouse lub Aisle M01. |
slug |
Opcjonalne | Identyfikator wewnętrzny. Jeśli jest pusty, Stokkap tworzy go z nazwy. Slug jest trwały po utworzeniu i nie można go później zmienić importem CSV. |
priority |
Opcjonalne | Priorytet pobierania zapasu. Najpierw używane są niższe liczby. Pusta wartość oznacza standardowe domyślne zachowanie priorytetów Stokkap. |
Locations CSV columns
| Kolumna | Wymagane? | Uwagi |
|---|---|---|
name |
Wymagane | Nazwa wyświetlana lokalizacji, np. Main Shop lub M01-G01. |
type |
Wymagane | Typ lokalizacji. Można użyć sluga lub nazwy typu; dopasowanie nie rozróżnia wielkości liter. |
priority |
Opcjonalne | Priorytet pobierania zapasu z tej lokalizacji. Pusta wartość oznacza użycie priorytetu lub domyślnego zachowania typu lokalizacji. |
Duplicate detection and preview
For locations, duplicates are detected by name + type. If your CSV contains a location with the same name under the same type as an existing location, Stokkap treats it as the same location rather than creating a duplicate.
After you drop in a CSV, Stokkap shows an import preview table with a per-row status. Review this before importing so you can catch missing required columns, unknown types, duplicate rows, and invalid priority values.
Export existing data
Use Export existing before preparing a large import. The exported CSV gives you the current column structure and real examples from your store, so it is the safest starting point for edits in a spreadsheet.
From the Locations import card, you can also use the Export location types shortcut. This is useful when building a locations CSV because you can copy the exact type labels or slugs into the type column.
Worked example: 792 warehouse bins
Scenario: a warehouse with 8 aisles x 99 bays = 792 storage bins.
-
Create 8 location types, one per aisle: M01, M02, ... M08. You can create them through the UI or import a Location Types CSV:
label,priority Aisle M01,10 Aisle M02,20 ... Aisle M08,80 -
Generate the bay locations in a spreadsheet:
name,type,priority M01-G01,aisle_m01,10 M01-G02,aisle_m01,20 ... M08-G99,aisle_m08,990 - Save the spreadsheet as CSV, drop it into the import widget, review the preview table, then click Import.
Assigning locations to products
Location assignment within the plugin is available on the WooCommerce product edit screen and quick edit. The Stokkap web app offers additional ways to assign locations - including barcode scanning, the product list, and the product detail view.
Simple products (full edit)
- Open any simple product and go to the Inventory tab
- Tick Manage with Stokkap to enable multi-location stock management. This also enables WooCommerce's "Manage stock?" if it was not already enabled.
- The location stock section appears. Click Add location type... and select a type (e.g., "Shop")
- A row appears with a dropdown of all locations of that type. Select the specific location (e.g., "Main Shop")
- Enter the stock quantity
- Powtórz dla kolejnych lokalizacji, również dla wielu lokalizacji tego samego typu.
- Podsumowanie rozróżnia stan dostępny do sprzedaży, stan niesprzedażowy i stan zarejestrowany. Tylko zapas w aktywnych lokalizacjach sprzedażowych jest używany jako stan sprzedażowy WooCommerce.
Tip: On product edit screens, the Add location dropdown has a search box above it - type to filter through long location lists.
Kliknij X przy wierszu lokalizacji, aby usunąć jej przypisanie do produktu. Nie trzeba wcześniej zapisywać ilości równej zero. Usunięcie przypisania usuwa zarejestrowaną ilość z tego produktu; nie przenosi zapasu ani nie zmienia zapasu niesprzedażowego w sprzedażowy. Używaj transferu, gdy towary są fizycznie przemieszczane. Przeniesienie całego zapasu może pozostawić przypisanie z ilością zero; jego usunięcie jest osobną czynnością.
If you enable Stokkap on a product that already has WooCommerce stock (e.g., 50 units), a dialog appears asking where to assign the existing stock. Choose a location to transfer it, or start fresh with zero.
Simple products (quick edit)
For faster updates from the product list:
- Go to Products in WooCommerce
- Hover over a product and click Quick Edit
- The Stokkap section shows the same location type rows - adjust quantities or add/remove locations
- Click Update to save
Quick edit is ideal for day-to-day stock adjustments without opening the full product editor.
Variable products
For variable products, stock is managed per variation, not at the parent level. Open each variation's panel to see the same location type and stock fields as simple products. Each variation can be at different locations with different quantities.
Stan dostępny do sprzedaży, niesprzedażowy i zarejestrowany
Stan sprzedażowy WooCommerce pochodzi z aktywnych lokalizacji sprzedażowych. Ilości niesprzedażowe pozostają zarejestrowane osobno i nie wchodzą do stanu dostępnego do sprzedaży.
| Suma | Znaczenie |
|---|---|
| Stan dostępny do sprzedaży | Zapas w aktywnych lokalizacjach sprzedażowych; używany jako stan sprzedażowy WooCommerce. |
| Stan niesprzedażowy | Zarejestrowane ilości w lokalizacjach niesprzedażowych, wyłączone ze stanu dostępnego do sprzedaży. |
| Stan zarejestrowany | Stan dostępny do sprzedaży plus stan niesprzedażowy. |
Przykład: 10 do sprzedaży + 4 niesprzedażowe = 14 zarejestrowanych. Stan sprzedażowy WooCommerce wynosi 10. Przenieś 2 sztuki do lokalizacji sprzedażowej: 12 do sprzedaży + 2 niesprzedażowe = 14 zarejestrowanych. Stan sprzedażowy WooCommerce wynosi teraz 12.
Stokkap automatycznie synchronizuje stan sprzedażowy WooCommerce przy zmianie kwalifikujących się ilości sprzedażowych. Korekta wyłącznie zapasu niesprzedażowego nie zwiększa stanu dostępnego do sprzedaży.
Nieaktywne lokalizacje nie zwiększają stanu sprzedażowego WooCommerce. Przed dezaktywacją zwykłej lokalizacji przenieś lub usuń jej zapas; lokalizacji niesprzedażowych nie można dezaktywować.
Bulk setup and CSV import
There are three bulk workflows, each for a different job:
- Konfiguracja zbiorcza — włącza zarządzanie Stokkap dla wielu produktów. Jako miejsce docelowe aktywacji wybierz lokalizację sprzedażową; lokalizacje niesprzedażowe nie są obsługiwane jako miejsca docelowe.
- CSV import for locations and location types - new in 1.4.9. Use the built-in CSV tools to create or update the locations and types themselves. See Bulk import & export (CSV) above.
- Importy CSV stanów produktów — zwykłe importy zapasu sprzedażowego nadal są obsługiwane, także dla wielu lokalizacji tego samego typu. Obsługiwane procesy importu nie mogą tworzyć ani zmieniać stanów niesprzedażowych. Do korekt używaj edycji produktu, Quick Lookup, Stock Control lub Scan, a do przemieszczania zapasu — transferów. Powyższe pliki CSV konfiguracji tworzą lub aktualizują lokalizacje i typy, a nie ilości produktów.
Tips and best practices
- Start simple. Two types (Shop and Supplier) is enough for most small businesses. Add more as your needs grow.
- Use types for categories, locations for specifics. "Warehouse" is a type. "Birmingham Warehouse" is a location.
- Leave gaps in priority numbers. The auto-increment of 10, 20, 30 leaves room to slot in new types later without renumbering everything.
- Drag to reorder rather than editing priority numbers manually - it is faster and the numbers update automatically.
- Download the report before deleting a location with stock. Even if you plan to transfer, the report is a useful backup.
- Przenoś zapas, gdy towary zmieniają miejsce. Zwykłe i zbiorcze transfery obsługują lokalizacje sprzedażowe i niesprzedażowe. Opróżnij lokalizację niesprzedażową przed jej usunięciem.
- Slugs are permanent. Think of them as internal codes. The display name can be changed freely, but the slug sticks. If you make a mistake, delete the location and create a new one (transferring stock to the replacement).
- Kilka lokalizacji tego samego rodzaju? Zachowaj je w jednym typie. Produkt może mieć zapas w więcej niż jednej z tych lokalizacji.