Połączenie sklepu z Subiektem nexo działa dobrze tylko wtedy, gdy dane po obu stronach są uporządkowane. Konektor może przenosić zamówienia, stany i ceny, ale nie rozstrzygnie, że ten sam produkt ma w sklepie jedną nazwę, a w programie magazynowym inną. Poniższy poradnik pokazuje, co sprawdzić i poprawić w pięciu krokach, zanim uruchomisz integrację sklepu z ERP.
Dlaczego porządek w danych jest ważniejszy niż konektor
Konektor łączy rekordy według reguł: po identyfikatorze, po kodzie kreskowym albo po nazwie. Jeśli reguły nie mają na czym pracować, wynik jest przypadkowy: stany trafiają do niewłaściwych produktów, zamówienie tworzy w ERP nowy towar zamiast użyć istniejącego, a faktura dostaje zły NIP.
Naprawa takich błędów po uruchomieniu jest droższa niż porządki przed startem, bo trzeba poprawiać dane w dwóch systemach naraz i sprawdzać zamówienia, które już przeszły.
Co przygotować
- eksport kartoteki asortymentu z nexo (symbol, nazwa, kod kreskowy, jednostka miary, stawka VAT, ceny),
- eksport produktów ze sklepu (nazwa, SKU, cena, stan, warianty),
- listę magazynów w nexo i decyzję, który z nich ma zasilać sklep,
- listę cenników, które mają trafić do sklepu,
- dostęp do kopii bazy albo środowiska testowego, na którym wolno popsuć dane.
Arkusz kalkulacyjny z dwiema kolumnami (nexo i sklep) obok siebie wystarczy do porównania.
Krok 1: wspólny identyfikator produktu w sklepie i w nexo
Wybierz jedno pole, które jednoznacznie wskazuje ten sam produkt po obu stronach. Najczęściej jest to symbol towaru w nexo wpisany jako SKU w sklepie. Alternatywą jest kod kreskowy, ale on jest związany z jednostką miary i opakowaniem, więc przy produktach sprzedawanych w kilku opakowaniach nie zawsze wskazuje jeden rekord.
Dokumentacja WooCommerce zaznacza, że każdy wariant produktu może mieć własne SKU i własny stan magazynowy. Jeśli sprzedajesz warianty (rozmiar, kolor), każdy z nich musi mieć w nexo odpowiednik i własny identyfikator.
Co zrobić:
- Porównaj listy w arkuszu i oznacz produkty bez pary.
- Znajdź powtórzone identyfikatory po każdej stronie i je rozdziel.
- Usuń spacje na początku i na końcu oraz różnice wielkości liter, które dla człowieka są niewidoczne, a dla programu oznaczają inny tekst.
- Zdecyduj, co z produktami, które istnieją tylko w jednym systemie: dodać do drugiego czy zostawić poza integracją.
Krok 2: ceny i stawki VAT
Subiekt nexo pozwala prowadzić cennik główny i cenniki dodatkowe, w tym przypisane wybranym klientom. Cena może zależeć od jednostki miary i progu sprzedaży, a precyzja ceny sięga do sześciu miejsc po przecinku. Sklep zwykle pokazuje cenę z dwoma miejscami, więc ustal, jak ma wyglądać zaokrąglenie.
Sprawdź też spójność ustawień sklepu. WooCommerce pozwala wpisywać ceny brutto albo netto i osobno wybrać, czy ceny w katalogu oraz w koszyku mają być pokazywane z podatkiem czy bez. Dokumentacja ostrzega, że niespójne ustawienia mogą powodować błędy zaokrągleń. Cena, którą integracja pobiera z nexo (netto czy brutto), musi pasować do tego, co sklep przyjmuje jako cenę wejściową.
Co zrobić:
- Zdecyduj, który cennik zasila ceny w sklepie.
- Ustal, czy z nexo przychodzi cena netto czy brutto, i dopasuj do tego ustawienia podatków w sklepie.
- Sprawdź, czy stawki VAT produktów w nexo odpowiadają stawkom ustawionym w sklepie. Przy wątpliwościach co do stawek zapytaj księgowego.
- Wybierz kilkanaście produktów i policz cenę ręcznie dla porównania z tym, co pokaże koszyk.
Krok 3: magazyny i stany, które ma widzieć sklep
Nexo prowadzi wiele magazynów, a dokumenty magazynowe są oddzielone od handlowych. Sklep zwykle potrzebuje jednej liczby: ile można sprzedać. Ustal, z których magazynów ta liczba się składa.
Zwróć uwagę na rezerwacje. Według e-Pomocy InsERT rezerwacja stanu na zamówieniu blokuje pozycje dla innych dokumentów, więc program może zgłaszać brak towaru, mimo że fizycznie jest na półce. Jeśli sklep ma pokazywać ilość dostępną, a nie fizyczną, integracja musi wiedzieć, której wartości użyć. Zapisz tę decyzję.
Co zrobić:
- Wypisz magazyny, które mają zasilać sklep.
- Ustal, czy sklep dostaje stan fizyczny, czy dostępny po rezerwacjach.
- Zdecyduj, co robi sklep przy stanie zero: ukrywa produkt, pokazuje „brak” czy pozwala zamawiać na zapas.
- Włącz zarządzanie stanem w sklepie tylko dla tych produktów, które mają być synchronizowane.
Krok 4: kontrahenci i dane do faktur
Zamówienie ze sklepu musi trafić do konkretnego kontrahenta w nexo: istniejącego albo nowego. Ustal zasadę dopasowania, na przykład po NIP dla firm i po adresie e-mail dla klientów indywidualnych.
Co zrobić:
- Sprawdź, czy sklep zbiera NIP, nazwę firmy i adres rozliczeniowy oddzielnie od adresu dostawy.
- Ustal, czy każde zamówienie tworzy nowego kontrahenta, czy łączy się z istniejącym.
- Posprzątaj duplikaty kontrahentów w nexo, zanim integracja zacznie je dopasowywać.
- Zdecyduj, jak oznaczać klientów kupujących bez rejestracji.
Krok 5: próbna synchronizacja na kopii danych
Nigdy nie uruchamiaj pierwszej synchronizacji na produkcyjnej bazie. Zrób kopię bazy nexo i kopię sklepu albo środowisko testowe. Do połączenia ze sklepem użyj osobnych kluczy REST API. W WooCommerce klucz tworzy się w ustawieniach zaawansowanych i wybiera uprawnienia odczytu, zapisu albo obu. Secret widać tylko raz, więc zapisz go od razu.
Co przetestować:
- zamówienie z jednym produktem,
- zamówienie z wariantem,
- zamówienie firmy z NIP,
- zamówienie z rabatem i kosztem dostawy,
- zmianę stanu w nexo i jej pojawienie się w sklepie,
- anulowanie zamówienia.
Po każdym teście porównaj dokumenty w nexo z zamówieniem w sklepie: pozycje, kwoty, kontrahenta i magazyn.
Lista kontrolna przed uruchomieniem
- Każdy synchronizowany produkt ma jednoznaczny identyfikator po obu stronach.
- Nie ma powtórzonych identyfikatorów.
- Wiadomo, który cennik zasila sklep i czy to ceny netto czy brutto.
- Ustawienia podatków w sklepie są spójne.
- Wybrano magazyny zasilające sklep i sposób liczenia dostępności.
- Kontrahenci są dopasowywani według spisanej zasady.
- Testy na kopii danych przeszły dla zamówień zwykłych i nietypowych.
- Ktoś w firmie odpowiada za sprawdzanie błędów synchronizacji.
Najczęstsze pułapki
- Różne zapisy tego samego identyfikatora. Symbol z myślnikiem w jednym systemie i bez w drugim program potraktuje jako dwa różne towary. Ustal jedną postać zapisu i przepisz dane przed pierwszą synchronizacją.
- Produkty tylko w sklepie. Pozycje dodane do sklepu ręcznie, na przykład gratisy, usługi czy opłaty dodatkowe, nie mają odpowiednika w programie magazynowym. Zdecyduj, czy zakładasz dla nich karty w nexo, czy integracja ma je pomijać.
- Warianty bez własnych identyfikatorów. Produkt z rozmiarami, który w sklepie jest jedną kartą, w nexo bywa kilkoma osobnymi towarami. Bez wspólnego klucza dla każdego wariantu stany będą przypisywane do niewłaściwego rozmiaru.
- Ceny pokazywane inaczej niż liczone. Jeśli sklep pokazuje cenę brutto, a nexo przekazuje netto, różnica pojawia się dopiero na dokumencie, gdy klient zauważy ją na fakturze.
- Brak właściciela danych. Gdy nikt nie odpowiada za kartotekę, po kilku tygodniach od uruchomienia wracają duplikaty i literówki.
Jak zapisać ustalenia
Wyniki pięciu kroków spisz na jednej stronie, którą dostanie każdy, kto będzie pracował z integracją: pracownik biura, osoba od sklepu i wykonawca konektora. Powinny się na niej znaleźć: nazwa pola identyfikującego produkt, zasada dopasowania kontrahentów, magazyny zasilające sklep, cennik, z którego idą ceny, oraz osoba odpowiedzialna za porządek w kartotece. Taki dokument skraca rozmowę z wykonawcą i pozwala sprawdzić, czy gotowa wtyczka pasuje do twoich zasad, zanim ją kupisz.
Podsumowanie
Przygotowanie danych przed startem jest zwykle tańsze niż naprawianie skutków chaotycznej synchronizacji. Jeśli chcesz wiedzieć, co jeszcze rozstrzygnąć przed startem, zajrzyj do wpisu o integracji sklepu z ERP. Gdy potrzebujesz konektora dopasowanego do swoich procesów, opis usług M8T znajdziesz w sekcji usługi.
Nazwy Subiekt nexo i InsERT należą do ich właścicieli. M8T nie jest partnerem InsERT, a nazwy użyto wyłącznie opisowo. Funkcje programu mogą różnić się między wersjami, więc sprawdź je w aktualnej dokumentacji.