Logo

IdoSell Bridge - Uniwersalny Tryb Pracy (UDB)

Konfiguracja uniwersalnego trybu pracy IdoSell Bridge

Integracja z wykorzystaniem uniwersalnego trybu pracy pozwala na synchronizację danych pomiędzy panelem IdoSell a dowolnym programem sprzedażowo-magazynowym.

Żeby aktualizować stany magazynowe i ceny, wystarczy zmieniać, dodawać i usuwać rekordy w tabelach bazy danych iai_brdge_exchange_db. Wykrywaniem zmian, zdarzeniowością i komunikacją z panelem IdoSell zajmuje się aplikacja IdoSell Bridge. Jest to doskonałe rozwiązanie nawet dla początkujących programistów, którzy przy pomocy dowolnego języka programowania np. PHP czy .NET, mogą napisać proste programy aktualizujące stany magazynowe, ceny czy pobierające dane o zamówieniach.

Baza danych iai_brdge_exchange_db może być bazą typu Microsoft SQL lub MySQL. Wyboru typu bazy danych dokonuje się podczas konfiguracji ustawień synchronizowanego programu. Zewnętrzna baza danych, pośrednicząca w wymianie danych między aplikacją IdoSell Bridge a programem F/K, może znajdować się na serwerze lokalnym lub zdalnym.

Po wyborze typu bazy danych i pomyślnym skonfigurowaniu połączenia z serwerem BD, na którym ma zostać utworzona zewnętrzna baza danych, aplikacja sprawdza, czy taka baza danych istnieje już na serwerze. Jeżeli na wybranym serwerze nie zostanie wykryta baza danych, system zainstaluje nową (czystą) bazę danych o nazwie iai_bridge_exchange_db. W przeciwnym wypadku (jeśli program wykryje na serwerze już istniejącą bazę danych), do wyboru pozostają dwie opcje - pozostawić lub usunąć dane z istniejącej bazy danych.

Po pomyślnym skonfigurowaniu pozostałych parametrów programu i zakończeniu pracy kreatora konfiguracji program IdoSell Bridge jest gotowy do pracy z wykorzystaniem uniwersalnego trybu pracy.

Dowiedz się więcej o strukturze bazy danych uniwersalnego trybu pracy IdoSell Bridge.

Operacje wykonywane na dodatkowej bazie danych

Dodawanie i aktualizacja danych o towarach

Żeby rozpocząć integrację pomiędzy posiadanym programem F/K i panelem IdoSell przy wykorzystaniu aplikacji IdoSell Bridge, w uniwersalnym trybie pracy należy zadbać o uzupełnienie tabeli products danymi o towarach z posiadanego programu F/K.

Do tabeli należy wprowadzić dane o wszystkich towarach znajdujących się w bazie danych posiadanego programu F/K. Jeżeli ceny w panelu IdoSell mają być automatycznie aktualizowane na podstawie cen z posiadanego programu F/K, należy również uzupełnić w tabeli products odpowiednie pola wybranymi cenami z bazy danych programu F/K oraz dodać stawkę VAT. W przeciwnym wypadku podczas dodawania danych do tabeli products pól od VAT do distinguished_price nie trzeba uzupełniać danymi z programu F/K.

Z posiadanego programu F/K należy pobrać z bazy danych poprzez zapytanie SQL lub eksport do pliku następujące dane o towarach:

  • identyfikator towaru z programu F/K,

  • dodatkowy identyfikator, jak np. indeks katalogowy, handlowy, kod towaru. W przypadku braku dodatkowego unikalnego identyfikatora, można wykorzystać ID towaru,

  • nazwę towaru,

  • ilość towaru (stan magazynowy).

Opcjonalnie w przypadku chęci aktualizacji cen w sklepie na podstawie danych z programu F/K, należy dodatkowo pobrać dane o wybranych cenach:

  • stawkę VAT,

  • wybrane ceny brutto.

Dane o towarach należy umieścić w tabeli products w dodatkowej bazie danych programu IdoSell Bridge iai_bridge_exchange_db.

Poniżej przykładowa instrukcja SQL przedstawiająca dodanie nowego towaru do dodatkowej bazy danych:

INSERT INTO products (id, ident, name, quantity, vat, retail_price)
VALUES(1, 'BRE000001', 'BRELOK FIAT.', 200, 22, 99.99);

Wykonanie powyższej instrukcji SQL spowoduje dodanie nowego towaru do dodatkowej bazy danych. Towar ten będzie widoczny w programie IdoSell Bridge na liście towarów niesynchronizowanych. Żeby móc zsynchronizować towary pomiędzy programem IdoSell Bridge a panelem IdoSell, na karcie towaru odpowiadającemu towarowi z programu F/K należy wprowadzić w polu Kod zewnętrznego systemu dodatkowy identyfikator towaru z programu F/K, czyli wartość znajdującą się w polu ident tabeli products w dodatkowej bazie danych. Dla powyższego przykładu, żeby udało się zsynchronizować towary w sklepie, towar BRELOK FIAT w polu Kod zewnętrznego systemu musi mieć wprowadzoną wartość BRELOK FIAT.

Towary, które zostaną zsynchronizowane, będą przeniesione na listę towarów synchronizowanych, a ich ceny i stany magazynowe będą aktualizowane w panelu IdoSell, co ustalony czas z zakresu 15-60 minut podczas automatycznej synchronizacji wykonywanej przez IdoSell Bridge.


Oprócz dodawania towarów z posiadanego programu F/K należy również zapewnić okresową aktualizację danych o cenach i stanach magazynowych w tabeli products.
Częstotliwość aktualizacji danych w tabeli products powinna być krótsza o częstotliwości synchronizacji ustawionej w programie IdoSell Bridge. Dla przykładu, jeśli w programie IdoSell Bridge częstotliwość synchronizacji zostanie ustawiona na 30 minut, to dane w tabeli products należy aktualizować np. co 28 minut, tak żeby podczas synchronizacji wykonywanej przez program IdoSell Bridge, dane o towarach z programu F/K w tabeli products były aktualne.

Pobieranie danych o zamówieniach

IdoSell Bridge podczas automatycznej synchronizacji wykonującej się co ustalony czas, pobiera z zsynchronizowanego panelu IdoSell nowe zamówienia. Jeśli wszystkie towary z zamówienia spełniają warunki, tzn. towary są zsynchronizowane, stan magazynowy w tabeli products jest wystarczający, a towary pochodzą z synchronizowanego magazynu, zamówienie jest dodawane w programie IdoSell Bridge na listę zamówień poprawnych i wszystkie dane dotyczące zamówienia dodawane są do tabel orders_products, orders, clients w dodatkowej bazie danych iai_bridge_exchange_db.

Ponadto IdoSell Bridge aktualizuje stan magazynowy towarów w tabeli products, pomniejszając go o ilość towarów z zamówienia. Natomiast w panelu IdoSell dla zamówień, które zostaną pobrane przez program IdoSell Bridge oraz oznaczone jako poprawne, status zamówienia zostanie zmieniony na realizowane w programie F/K. Oznacza to, że realizacja zamówienia została przeniesiona do zewnętrznego systemu.

W przypadku gdy w danym zamówieniu z panelu IdoSell znajduje się przynajmniej jeden towar, który nie spełnia wymienionych wyżej warunków (np. towar nie jest zsynchronizowany w IdoSell Bridge), zamówienie w IdoSell Bridge oznaczone będzie jako błędne i przeniesione zostanie na listę zamówień błędnych. W takiej sytuacji status zamówienia w sklepie nie jest zmieniany, dane o zamówieniu i towarach z zamówienia nie są dodawane do dodatkowej bazy danych, a stan magazynowy towarów w tabeli products nie jest pomniejszany o towary z błędnego zamówienia. Podczas każdej synchronizacji zamówienia oznaczone jako błędne są ponownie sprawdzane i jeśli wszystkie towary spełniają warunki, zamówienie przenoszone jest na listę zamówień poprawnych i dane o zamówieniu dodawane są do dodatkowej bazy iai_bridge_exchange_db.

Dane o zamówionych towarach i zamówieniach można pobierać z dodatkowej bazy danych iai_bridge_exchange_db na kilka sposobów. Najprostszym jest pobieranie danych tylko z tabeli orders_products, w której przechowywane są dane o zamówionych towarach. Jeżeli zamówienia mają być wprowadzane automatycznie do posiadanego programu F/K, to należy również pobrać dodatkowe dane o zamówieniu i kliencie z tabel orders oraz clients.

Istnieje również kilka sposobów na oznaczanie pobranych zamówień. Można pamiętać id ostatnio pobranego zamówienia z dodatkowej bazy danych zamówienia. Następnie pobierać z bazy te zamówienia, które mają większa id od ostatnio zapamiętanego. Można też pobierać wszystkie dane o zamówieniach, a po pobraniu danych kasować dane z tabel orders_products, orders, wykorzystując instrukcje DELETE FROM nazwa_tabeli lub TRUNCATE TABLE nazwa_tabeli.

Poniżej zamieszczono przykładową instrukcję SQL pokazującą, jak pobrać dane o zamówionych towarach z wykorzystaniem id ostatnio pobranego zamówienia.

SELECT * FROM orders_products WHERE order_id > 0 ORDER BY order_id

W wyniku wykonania powyższego zapytania zostaną zwrócone dane o zamówionych towarach z zamówień o id większym od 0. Przykładowe dane, które zostały zwrócone w wyniku wykonania powyższego zapytania:

Istotne zmiany w bazie uniwersalnego trybu pracy w IdoSell Bridge

Od wersji 4.3.2.0

  • Informacja o stanach magazynowych

W związku ze zmianą struktury bazy iai_bridge_exchange_db, w tabeli products nie jest już używana kolumna quantity. Po zainstalowaniu nowej wersji aplikacji IdoSell Bridge nazwa tej kolumny zostanie automatycznie zmieniona na quantity_old, a wartości dla starej kolumny przepisane do nowej tabeli products_quantity. Informacje o stanie magazynowym zostaną przypisane do domyślnego magazynu (Magazyn Główny) z id 1.

Teraz informacja o stanach magazynowych jest pobierana z nowej tabeli products_quantity, gdzie stan dyspozycyjny jest obliczany na podstawie różnicy pomiędzy wartością w kolumnie storageQuantity, a reservation.

Ilość rezerwacji dla towaru jest zmieniana za każdym razem, gdy zostanie złożone zamówienie na dany towar. Jeżeli chcemy zmienić ilość danego towaru w zamówieniu z poziomu bazy programu IdoSell Bridge, należy zaktualizować kolumnę reservation w tabeli products_quantity oraz quantity w orders_products o odpowiednią ilość towaru.

W przypadku włączonej aktualizacji stanów magazynowych w IdoSell Bridge wystarczy zmiana w tabeli products_quantity, żeby zaktualizować dane w IdoSell.

  • Synchronizacja wielu magazynów

Istotną zmianą jest również możliwość synchronizacji więcej niż jednego magazynu (dodana tabela stocks).

W tabeli stocks należy podać ID magazynów oraz ich nazwy. Dzięki temu możliwa jest synchronizacja wielu magazynów z programu F/K z magazynami z panelu IdoSell.

  • Synchronizacja wielu adresów dostawy klienta

Nowością jest także możliwość synchronizacji wielu adresów dostawy klienta. Dzięki dodanej tabeli delivery_addresses możliwe staje się obustronne zarządzanie adresami dostawy klienta.

Jeśli adres dostawy dla zamówienia zmieni się w panelu IdoSell, to zmiana taka zostanie odnotowana przez IdoSell Bridge w tabeli delivery_addresses, clients oraz orders w bazie iai_bridge_exchange_db.

Aktualizacja adresu dostawy dokonana w tabeli delivery_addresses zostanie odnotowana w drugą stronę, a więc w panelu IdoSell.

Dodanie całkiem nowego adresu (o unikalnym id) w tabeli delivery_addresses bazy iai_bridge_exchange_db, spowoduje dodanie adresu do karty klienta w panelu IdoSell. W tym przypadku należy pamiętać o zaktualizowaniu id adresu dostawy w tabeli orders.

Informacje o aktualnym adresie dostawy są również przepisywane do tabeli clients w bazie iai_bridge_exchange_db, dzięki czemu można nadal korzystać ze starej metody pobierania danych o adresach. Stara metoda jednak nie wspiera synchronizacji adresów, dlatego zachęcamy do korzystania z nowego rozwiązania.

  • Zmiana kosztu dostawy dla klienta

Istnieje również możliwość zmiany kosztu dostawy dla klienta w panelu IdoSell. Wystarczy zmienić wartość w kolumnie base_currency_delivery_cost w tabeli orders. Podczas synchronizacji zmianie ulegnie koszt dostawy dla klienta w danym zamówieniu w panelu IdoSell.

Dowiedz się więcej o strukturze bazy danych MS SQL uniwersalnego trybu pracy IdoSell Bridge.  Znajdziesz tam informacje o nowych tabelach oraz o nowych kolumnach, które zostały dodane do istniejących już tabel.

Od wersji 5.0

  • Synchronizacja kontrahentów

Synchronizacja kontrahentów odbywa się w oparciu o kod zewnętrznego systemu. Nowe kolumny w tabeli clients w bazie iai_bridge_exchange_db zostały szczegółowo opisane w opisie struktury bazy danych MS SQL uniwersalnego trybu pracy IdoSell Bridge .

Należy wziąć pod uwagę, jak działa dodawanie klienta z włączoną opcją Automatycznie nadawaj login nowym klientom dodanym w IdoSell, gdy ma zdefiniowany login w bazie iai_bridge_exchange_db IdoSell Bridge. W takim przypadku aplikacja doda klienta do panelu IdoSell zgodnie ze zdefiniowanym wcześniej loginem w bazie danych. Jeśli nie uda się dodać klienta (np. login jest już zajęty), aplikacja wyświetli stosowny komunikat.

  • Synchronizacja rabatów zaawansowanych

Aplikacja IdoSell Bridge 5.0 pozwala również przenieść indywidualne rabaty dla kontrahentów na poszczególne towary. Odpowiadają za to dwie tabele w bazie danych iai_bridge_exchange_db:

  • custom_prices - tabela przechowująca szczegółowe dane o indywidualnych cenach dla klientów na konkretne towary. Przypisanie ceny dla klienta odbywa się w kolumnie price_group_id w tabeli clients.

  • custom_rabates - tabela przechowująca szczegółowe dane o rabacie dla klienta na konkretny towar. Rabat obliczany jest dla wartości z kolumny prices w tabeli custom_prices. Przypisanie rabatu dla klienta odbywa się w kolumnie rabate_group_id w tabeli clients.

Dowiedz się więcej o strukturze bazy danych MS SQL uniwersalnego trybu pracy IdoSell Bridge.  Znajdziesz tam informacje o nowych tabelach oraz o nowych kolumnach, które zostały dodane do istniejących już tabel.

Nie znalazłeś odpowiedzi na pytanie?Skontaktuj się z Działem Wsparcia

Przejdź do Biura Obsługi Klienta i skontaktuj się z ekspertami IdoSell