A Magento 2.3 újdonsága: több raktáras készletkezelés
A Magento 2.3 újdonsága: több raktáras készletkezelés
Integráció

A Magento 2.3 újdonsága: több raktáras készletkezelés

Olvasási idő: 5 perc

2018 év végén stabil változatban elérhetővé vált a Magento legújabb verziója, a Magento 2.3, amely számos új funkciót tartalmaz. Az egyik ilyen nagy volumenű újdonság, a Multi Source Inventory (MSI) névre keresztelt core modulcsomag, amely gyökeresen átalakítja a jól megszokott Magento készletkezelést, kosár (quote) kezelést és rendelés feldolgozást. A most következő posztban elmondjuk, hogy mi is az az MSI, miért volt égető szükség rá, illetve arról is szó lesz, hogy hogyan működik a több raktáras készletkezelés.

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.
MSI készletadatok

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:

Készletkezelés diagram

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:

Magento MSI készletek

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.

MSI