🔁 Instrukcja migracji / ręcznego parowania produktów w module SEIGI MobyDick
Moduł SEIGI MobyDick umożliwia powiązanie już istniejących produktów w sklepie z produktami z hurtowni — niezależnie od tego, czy zostały dodane ręcznie, czy przez inne integracje lub importery. Dzięki temu możliwa jest migracja z innych rozwiązań lub uniknięcie duplikatów produktów w katalogu.
🧠 Jak to działa?
Podczas działania integracji, zanim dodany zostanie nowy produkt, MobyDick sprawdza, czy produkt już istnieje w sklepie. Jeżeli standardowe metody (np. po ID dostawcy) nie przyniosą rezultatu, MobyDick może użyć dodatkowej funkcji:
function mobydick_custom_matcher($param)
To niestandardowy matcher, który umożliwia własną logikę wyszukiwania produktów w sklepie.
Parametry przekazywane do funkcji:
-
$param['supplier_id']– ID dostawcy (z integracji) -
$param['supplier_reference']– Numer referencyjny od dostawcy (często = ID) -
$param['reference']– Kod producenta (jeśli występuje) -
$param['ean13']– Kod EAN (jeśli dostępny) -
$param['settings']– Tablica z aktualnymi ustawieniami integracji -
$param['raw']– Surowe dane z hurtowni (XML lub tablica) -
$param['wholesaler']– Identyfikator hurtowni (małymi literami)
Przykładowa logika:
if (!empty($param['ean13']) && $id_product = Product::getIdByEan13($param['ean13'])) {
return new Product($id_product);
}
return false;
🛑 Uwaga: ZAWSZE sprawdzaj, czy parametry, których używasz, nie są puste (empty()).
W przeciwnym razie możesz przypadkowo dopasować produkt o pustym EAN lub referencji — co może prowadzić do błędnych powiązań lub nadpisania danych.
⚙️ Instrukcja migracji (czyli jak sparować produkty ręcznie)
-
Zaimplementuj funkcję
mobydick_custom_matcher()w pliku ładowanym razem z PrestaShop (np.override, własny moduł lubinit.php). -
W funkcji zaimplementuj własną logikę wyszukiwania — najlepiej po
ean13,reference,supplier_referencelub innym unikalnym polu. Zawsze sprawdzaj, czy dane pole nie jest puste. -
W konfiguracji modułu MobyDick wyłącz opcję “Dodawaj nowe produkty” na czas testów parowania.
-
Uruchom synchronizację integracji:
- Jeśli produkty zostaną prawidłowo sparowane, będą widoczne jako zmapowane w module.
- Jeśli nie zostaną odnalezione, nie zostaną automatycznie dodane, co zapobiegnie błędnym wpisom.
-
Po upewnieniu się, że wszystkie produkty są poprawnie sparowane, włącz ponownie dodawanie nowych produktów.
💡 Protip
🔒 Zawsze wyłącz dodawanie nowych produktów w czasie testów parowania.
Jeśli Twoja funkcja parująca (mobydick_custom_matcher) zawiera błąd lub jest zbyt uproszczona, może przypisać tylko część produktów, a pozostałe zostaną automatycznie dodane jako nowe. To prowadzi do bałaganu i duplikatów w sklepie.
📌 Dla kogo jest ta funkcja?
- Dla sklepów, które zmieniają integrację (np. z innego skryptu XML, CSV lub API).
- Dla sklepów, które wcześniej dodawały produkty ręcznie, a teraz chcą je zautomatyzować.
- Dla właścicieli, którzy chcą zachować obecne dane produktów, takie jak opisy SEO, zdjęcia czy metadane.