Mi az a Magento MSI?
A Magento 2.3-mal elérhetővé vált a Multi Source Inventory, mely lehetővé teszi a több forrásból érkező termékek és azok készletének magasabb szintű kezelését. Így a kereskedőknek lehetőségünk van omnichanel-szerű stratégiák kialakítására és ezzel együtt az adminisztrátorok feladata is egyszerűsödik.
A 2.3-ban így más lehetőségünk van:
- hozzárendelni egy terméket és annak mennyiségét különböző source-hoz (A Magento 2.3 esetében a source jelenti a raktárakat, üzleteket, elosztó központokat, stb. melyeknek saját termékekkel, illetve készletkezeléssel rendelkeznek).
- az egyes source-ok nyomon követésére. Azaz az MSI-nak köszönhetően naprakész információval rendelkezhetünk az egyes üzletek/raktárak készleteiről.
- létrehozhatunk különböző rule-okat, melyekkel meghatározhatunk prioritásokat, hogy mely készletet használja elsősorban a rendszer a rendelések kiszolgálásánál.
- integrálhatjuk third-party modulokkal a készletkezelést és személyre szabhatjuk az MSI működését.
Miért volt szükség a Multi Source Inventory-ra?
Számos kereskedő ma már a webshop mellett fizikai üzlettel is rendelkezik (vagy pont fordítva, a fizikai üzleteket egészítették ki az e-kereskedelmi lábbal). Az online és az offline retail kapcsolatának összehangolása és átjárhatósága minden projekt esetében komoly fejlesztést igényelt eddig. Gondoljunk csak a készletek párhuzamos szálon történő, valós idejű kezelésére vagy a készletadatok újrakalkulálására!
Az Oander ezzel a kihívással a 9 országot felölelő iSTYLE projekt kapcsán találkozott, ahol egy egyedi készletkezelési logikán alapuló rendszert fejlesztettünk le, mely kiiktatta a Magento natív készletkezelését és egy komplexebb „Warehouse manager” bevezetését jelentette. A Magento 2.3 Multi Source Inventory funkciójával a jövőben nem lesz szükség ehhez hasonló nagy volumenű fejlesztésekre, hiszen az új verzió már magában rejti a szerteágazó készletkezelés lehetőségét.
Hogyan működik a több raktáras készletkezelés?
A Magento készített egy magyarázó ábrát az MSI funkciócsomagjához:
Az MSI alapvetően egy website-ból vagy több boltnézet implementációból áll, ahol egyszerre több forrásból (source) érkező készletváltozásokat (stocks) kezelhetünk le, melyekhez különböző értékesítési csatornák (sales channel) kapcsolódnak. A korábbi verziók esetében alapvetően minden esetben single source mode-ról beszélhetünk, a 2.3-ra való upgradelés után, amennyiben létrehozunk többféle source-t, melyekhez eltérő stock-okat társítunk már multi source mode-ról beszélünk. Ebben az esetben életbe lép a Source Selection Algorithm (SSA).
Egy kis érdekesség: Reservation
A Magento logikája szerint tényleges készletlevonás csak akkor történik, amikor a rendelés kiszállításra kerül (ship). Ebben a lépésben vonja le a készletelosztási logika alapján a konkrét quantityket az egyes source-okból, egészen eddig a pontig csak a reservationökkel dolgozik. Amennyiben a felhasználó kiveszi a kosarából a terméket, vagy egy rendelés canceled státuszba kerül, egy mínuszos mennyiségű reservation jön létre, ami “kiüti” a korábbi pluszos mennyiségű reservationt. Ez így néz ki a Magento ábrázolásában:
Készletelosztási logika / Source Selection Algorithm (SSA)
A Manage Stock kapcsoló használatával érvényesíthetjük a Magento 2.3 készletelosztási/levonási logikáját. A készletelosztási logika csak a rendelésfeldolgozás utolsó, kiszállítási lépésében fut le, egészen addig csak az aggregált készleteket csökkentő reservation-ök jönnek létre.
Az utolsó lépésben, amikor az admin a Ship gombra kattint, a készletelosztási logika alapján kap egy listát, hogy a rendelés egyes soraihoz tartozó mennyiségeket honnan fogja levonni a Magento (ez az adminisztrátorok által felülbírálható).
Jelenleg egyetlen készletelosztási logika van a rendszerben, melyet priority algorithmnek neveznek, és a source-ok prioritása alapján osztja el a készletet (mindig az elérhető legnagyobb prioritású source-ból szolgálja ki a rendelést). Ha ennél bonyolultabb elosztási logikára van szükség, vagy nem a Ship funkcióhoz akarjuk kötni a készletelosztási logikát, akkor a SourceSelectionInterface segítségével saját logika fejleszthető. Lehetőség van akár a checkoutban lefuttatni, ha pl. a szállítási költség függ a kiszolgáló source-tól, vagyis nem csak az order lehet a forrása, hanem a quote is. Egyszerre több algoritmus is létezhet, és mi dönthetjük el, hogy melyiket használjuk, azon a ponton, amikor futtatni akarjuk a készletelosztást.