Ten wpis opisuje, jak xSale dobiera kontrahenta podczas przekazywania zamówienia do Comarch ERP Optima. Jeżeli chcesz sprawdzić, kiedy xSale przypisuje importowane zamówienie do istniejącego kontrahenta w samym xSale, zobacz wpis Jak xSale przypisuje kontrahenta do importowanego zamówienia?.
W aktualnym działaniu integracji z Optimą najważniejsze jest to, czy zamówienie ma numer NIP. Zamówienia z NIP są obsługiwane inaczej niż zamówienia bez NIP, żeby ograniczyć tworzenie duplikatów i nie podpinać zamówień osób fizycznych pod kartoteki firmowe.
W tym artykule znajdziesz
- Jak xSale rozpoznaje kontrahenta?
- Jak działa zamówienie z NIP?
- Jak działa zamówienie bez NIP?
- Co się dzieje, gdy jest kilka pasujących kartotek?
- Jak działa techniczne powiązanie kontrahenta z ERP?
- Kiedy xSale tworzy nowy kod kontrahenta?
- Co dzieje się po zmianie kodu kontrahenta w xSale?
- Jakie dodatkowe ustawienia można włączyć w webservice?
- Jak działa ustawienie grupy kontrahenta RO?
Jak xSale rozpoznaje kontrahenta?
Uwaga! Opisane poniżej zmiany w sposobie rozpoznawania kontrahenta obowiązują od wersji Optimy 2026.5.1.
Podczas przekazywania zamówienia do Comarch ERP Optima xSale sprawdza, czy w Optimie istnieje już odpowiednia kartoteka kontrahenta. Sposób wyszukiwania zależy od danych na zamówieniu:
- jeżeli zamówienie ma NIP, xSale szuka kontrahenta po NIP,
- jeżeli zamówienie nie ma NIP, xSale szuka kontrahenta po e-mailu lub kodzie, ale tylko wśród kartotek bez NIP.
Dzięki temu zamówienie firmowe z NIP nie zostanie przypadkowo podpięte pod kontrahenta znalezionego po kodzie lub e-mailu, a zamówienie osoby fizycznej bez NIP nie zostanie podpięte pod kartotekę firmową.
Zamówienie z NIP
Jeżeli na zamówieniu jest podany NIP, integracja szuka kontrahenta w Comarch ERP Optima po tym numerze NIP. W tym scenariuszu NIP jest najważniejszym identyfikatorem kontrahenta.
- Jeżeli w Optimie istnieje kontrahent z takim NIP, xSale użyje tej kartoteki.
- Jeżeli kontrahent z takim NIP nie istnieje, xSale nie przechodzi na dopasowanie po kodzie ani e-mailu.
- Nowa kartoteka kontrahenta zostanie utworzona dopiero wtedy, gdy w Optimie nie ma kontrahenta z podanym NIP.
NIP jest normalizowany na potrzeby wyszukiwania. Oznacza to, że integracja ignoruje typowe różnice w zapisie, takie jak spacje, myślniki czy przedrostek PL przy polskim NIP.
Kontrahent tworzony dla zamówienia z NIP powinien zostać oznaczony jako podmiot gospodarczy, zgodnie z danymi przekazanymi z xSale i ustawieniami webservice.
Zamówienie bez NIP
Jeżeli zamówienie nie ma numeru NIP, integracja traktuje je jako zamówienie osoby fizycznej. W takim przypadku xSale może szukać kontrahenta po e-mailu oraz kodzie, ale tylko wśród kartotek, które również nie mają NIP.
- Jeżeli znajdzie pasującą kartotekę bez NIP, użyje jej na zamówieniu.
- Jeżeli znajdzie kartotekę po e-mailu lub kodzie, ale ta kartoteka ma NIP, nie użyje jej dla zamówienia bez NIP.
- Jeżeli nie znajdzie pasującej kartoteki bez NIP, utworzy nową kartotekę osoby fizycznej.
Takie działanie zapobiega sytuacji, w której zamówienie osoby prywatnej zostanie przypisane do istniejącej kartoteki firmowej tylko dlatego, że zgadza się e-mail albo kod kontrahenta.
Co się dzieje, gdy jest kilka pasujących kartotek?
Jeżeli w Optimie istnieje kilka kartotek spełniających warunek wyszukiwania, integracja użyje pierwszej znalezionej kartoteki. W praktyce oznacza to pierwszą kartotekę według identyfikatora kontrahenta w Optimie.
Jeżeli klient ma w Optimie wiele kartotek z tym samym NIP, e-mailem lub kodem, warto uporządkować dane w ERP, żeby integracja wskazywała oczekiwanego kontrahenta.
Techniczne powiązanie kontrahenta z ERP
xSale zapisuje techniczne powiązanie kontrahenta z ERP w polu wewnętrznym, niewidocznym w standardowym widoku interfejsu. Dzięki temu system pamięta, jaki kod kontrahenta został ostatecznie użyty po stronie Comarch ERP Optima.
W praktyce oznacza to, że:
- jeżeli kontrahent został już wcześniej powiązany z ERP, przy kolejnych synchronizacjach xSale korzysta z tego ustalonego powiązania,
- jeżeli podczas wysyłki xSale znajdzie istniejącą kartę kontrahenta w ERP, zapisuje użyty kod i wykorzystuje go przy kolejnych synchronizacjach.
Powiązanie techniczne nie zmienia zasad wyszukiwania opisanych wyżej. Nadal istotne jest to, czy zamówienie ma NIP, czy go nie ma.
Kiedy xSale tworzy nowy kod kontrahenta?
Jeżeli xSale nie znajdzie istniejącego kontrahenta w Optimie i ma utworzyć nową kartotekę, sprawdza, czy aktualny kod kontrahenta może zostać użyty w ERP.
Dla Comarch ERP Optima kod kontrahenta jest uznawany za nieprawidłowy, gdy:
- jest pusty,
- ma więcej niż 20 znaków,
- zawiera znaki kontrolne,
- zawiera znaki spoza zakresu akceptowanego przez integrację.
Jeżeli kod jest poprawny, może zostać użyty przy tworzeniu kontrahenta w ERP. Jeżeli kod nie spełnia tych warunków, xSale generuje nowy kod i zapisuje go jako techniczne powiązanie do kolejnych synchronizacji.
Zmiana kodu kontrahenta w xSale
Jeżeli na karcie kontrahenta w xSale zmienisz pole Kod, dotychczasowe techniczne powiązanie z ERP zostanie wyczyszczone. Przy kolejnej synchronizacji xSale ponownie przejdzie proces wyszukiwania i dopasowania kontrahenta.
To rozwiązanie pomaga w sytuacjach, w których dotychczasowe powiązanie trzeba zbudować od nowa, na przykład po zmianie kodu lub po korekcie danych kontrahenta.
Ustawienia dodatkowe w webservice
W integracji z Comarch ERP Optima można dodatkowo włączyć ustawienia, które wpływają na sposób aktualizacji danych istniejącego kontrahenta.
Wyłączenie nadpisywania danych kontrahenta
Jeżeli kontrahent już istnieje w Optimie, można ustawić integrację tak, aby xSale podłączał zamówienie do istniejącej karty bez nadpisywania danych na tej karcie.
W tym celu przejdź w webservice do sekcji Wczytywanie dok. do ERP i zaznacz opcję Nie nadpisuj danych na istniejących w ERP kontrahentach.
Po zapisaniu ustawień zrestartuj usługę webservice, aby zmiana zaczęła obowiązywać.
Grupa kontrahenta RO
Ustawienia Grupa kontrahenta RO, Ustaw grupę na kontrahencie (RO) oraz Tylko gdy nowy dotyczą grupy zapisywanej na karcie kontrahenta w Comarch ERP Optima. Webservice może wpisać tę grupę na kontrahencie podczas tworzenia nowej karty kontrahenta przy wczytywaniu RO.
Ważne: pole Grupa kontrahenta RO nie ogranicza wyszukiwania kontrahenta do wskazanej grupy. Jeśli wybierzesz w tym polu grupę, na przykład B2B, integracja nie będzie szukała kontrahenta tylko w grupie B2B.
Wyszukiwanie kontrahenta działa osobną logiką opisaną wyżej: dla zamówień z NIP kontrahent jest szukany po NIP, a dla zamówień bez NIP po e-mailu lub kodzie, ale tylko wśród kartotek bez NIP. Wybrana grupa jest używana dopiero wtedy, gdy zaznaczysz opcję Ustaw grupę na kontrahencie (RO) i webservice tworzy nowego kontrahenta w Optimie.
Jak działa samo pole „Grupa kontrahenta RO”
Samo wskazanie grupy w polu Grupa kontrahenta RO nie zmienia danych kontrahenta i nie zmienia dokumentu RO. To pole tylko wskazuje, jaka grupa ma zostać użyta przy tworzeniu nowej karty kontrahenta, jeśli włączysz opcję Ustaw grupę na kontrahencie (RO).
Jak działa „Ustaw grupę na kontrahencie (RO)”
Po zaznaczeniu opcji Ustaw grupę na kontrahencie (RO) webservice może wpisać wybraną grupę na karcie kontrahenta w Comarch ERP Optima, ale tylko wtedy, gdy podczas wczytywania RO zakłada nowego kontrahenta.
Jeżeli kontrahent już istnieje w Optimie, webservice nie ustawi na nim grupy z pola Grupa kontrahenta RO. Dotyczy to również sytuacji, w której istniejący kontrahent nie ma określonej grupy. Grupa nie zostanie wtedy dopisana do istniejącej karty kontrahenta.
Przykład: jeśli w polu Grupa kontrahenta RO wybierzesz grupę B2B i zaznaczysz Ustaw grupę na kontrahencie (RO), grupa B2B może zostać wpisana tylko na nowej karcie kontrahenta utworzonej przez webservice w Optimie. Istniejący kontrahent zachowa dotychczasowe dane grupy, także wtedy, gdy pole grupy jest u niego puste.
Jak działa „Tylko gdy nowy”
Opcja Tylko gdy nowy jest zgodna z faktycznym działaniem tego ustawienia: grupa kontrahenta RO jest ustawiana tylko dla nowych kontrahentów tworzonych w Optimie przez webservice.
Przy obecnym działaniu webservice nie dopisuje ani nie nadpisuje grupy na kontrahencie, który już istnieje w Optimie. Oznacza to, że jeśli istniejący kontrahent nie ma określonej grupy, grupa z pola Grupa kontrahenta RO również nie zostanie na nim ustawiona.
- Jeśli kontrahent jest tworzony jako nowy w Optimie, grupa może zostać wpisana na jego karcie.
- Jeśli kontrahent już istnieje w Optimie i ma przypisaną grupę, webservice jej nie zmieni.
- Jeśli kontrahent już istnieje w Optimie i nie ma przypisanej grupy, webservice nie dopisze mu grupy z tego ustawienia.
Przykładowe konfiguracje
- Grupa kontrahenta RO = B2B, ale Ustaw grupę na kontrahencie (RO) nie jest zaznaczone: grupa B2B nie zostanie wpisana na karcie kontrahenta w Optimie.
- Grupa kontrahenta RO = B2B i Ustaw grupę na kontrahencie (RO) jest zaznaczone: grupa B2B może zostać wpisana tylko na nowo tworzonej karcie kontrahenta.
- Jeśli kontrahent już istnieje w Optimie, grupa B2B nie zostanie dopisana ani nadpisana na jego karcie, niezależnie od tego, czy kontrahent ma już grupę, czy pole grupy jest puste.
EN

