🔁 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)

  1. Zaimplementuj funkcję mobydick_custom_matcher() w pliku ładowanym razem z PrestaShop (np. override, własny moduł lub init.php).

  2. W funkcji zaimplementuj własną logikę wyszukiwania — najlepiej po ean13, reference, supplier_reference lub innym unikalnym polu. Zawsze sprawdzaj, czy dane pole nie jest puste.

  3. W konfiguracji modułu MobyDick wyłącz opcję “Dodawaj nowe produkty” na czas testów parowania.

  4. 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.
  5. 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.