Opisałem w poprzednim wpisie nowe ogólnie zasady tworzenia adresów kontrahenta, dzisiaj chciałbym to poprzeć przykładami i szerszym wyjaśnieniem.
Po pierwsze jakie adresy możemy otrzymać z Allegro?
- Adres użytkownika – jest to podstawowy adres kupującego skojarzony z jego loginem na Allegro (dane podczas zakładania konta)
- Adres do faktury – kupujący może w trakcie zakupów poprosić o fakturę, w której będzie chciał inne dane niż dane swojego konta (pierwszy przykład kiedy możemy podejmować decyzje czy zakładać nowego kontrahenta czy aktualizować dane istniejącego)
- Adres punktu odbioru – jest to adres techniczny dostawy np. adres punktu odbioru lub paczkomatu, teoretycznie nic nie wnosi a jednak jest istotny z punktu widzenia dostawy ale nie jest istotny z punktu widzenia procesu księgowo/rachunkowego
Jakie mamy adresy w WAPRO Mag/Aukcje?
W przypadku systemu magazynowego wyróżniamy adresy:
- Adres główny kontrahenta oraz adresy historyczne – są to adresy brane do faktur i wydruków wg daty obowiązywania (adres może zmieniać się w czasie i do duplikatów należy brać obowiązujący w danym okresie skąd faktura pochodzi)
- Adres korespondencyjny – adres do korespondencji może być używany np. na etykietach adresowych
- Adresy dostawy – z rozbiciem na adres użytkownika lub adres punktu odbioru
Wiemy jakie mamy rodzaje adresów w Allegro i jakie mamy w WAPRO Mag, pierwsze nasuwające się pytanie zatem to jak te adresy są na siebie mapowane.
- Jeśli klient kupuje coś bez faktury to w WAPRO Mag zakładany jest kontrahent na dane zgodne z tymi z użytkownika Allegro i ten adres kopiowany jest także jako adres dostawy w WAPRO Mag
- Jeśli klient kupuje coś bez faktury ale podaje punkt odbioru to kontrahent zakładany jest na dane z konta ale jako adres dostawy dodany jest adres paczkomatu
- Jeśli klient kupuje coś z fakturą bez podania punktu odbioru to zakładany jest kontrahent na dane z faktury (dane użytkownika z konta są ignorowane bo nic nie wnoszą z pkt widzenia księgowo rachunkowego) i adres z faktury dodany jest jako adres dostawy
- Jeśli klient kupuje coś z fakturą z podaniem punktu odbioru to dane adresowe kontrahenta to dane z formularza do faktury a adres dostawy to adres np. paczkomatu
To jest ogólna logika ale oczywiście od niej jest mnóstwo wyjątków, w których system musi stwierdzić czy nowe dane to ten sam klient czy jednak nowy.
Teoretycznie można by to uprościć (z takimi głosami spotkałem się też od użytkowników) ale jest to mega uproszczenie, propozycja była taka, żeby zawsze dodawać nowego kontrahenta. Propozycja teoretycznie najprostsza ale powodująca mnóstwo dodatkowych problemów, które ujawnią się po czasie:
- tracimy pełną historię danego kupującego ponieważ każdy zakup na inne dane będzie odrębnym kontrahentem
- system nie ma jak powiązać zakupów ponieważ nie można powielić wielu kontrahentów o tym samym loginie
- brak możliwości analizy zakupów z punktu widzenia raportowo/statystycznego
- ciężko namierzyć w przypadku jakiejś reklamacji, który zakup akurat dotyczy danego kontrahenta, który jest powielony
Aby sprostać temu oczekiwaniu zarówno przy integracji z WAPRO B2C jak i Allegro i WAPRO Aukcje została dodana techniczna opcja wiązania kontrahentów poprzez tzw. kontrahenta powiązanego. W praktyce polega to na tym, że algorytm automatycznie podejmuje decyzje w trakcie importu danych kontrahenta czy dane zostały zmienione tylko częściowo (np. zmiana adresu) czy też zmiana była pełna (np. nowa nazwa i nip). Wtedy algorytm albo zakłada nowego kontrahenta (jeśli jest to kolejny zakup od tego samego adresu email lub od tego samego konta Allegro) i „podpina” je do tego kontra pierwotnego.
Dzięki temu w teorii mamy odrębnych kontrahentów ale w praktyce możemy rozwiązać większość zagadnień opisanych powyżej.