Jak łączyć PrestaShop z Google Sheets

dowiedz się

Połączenie PrestaShop z Google Sheets otwiera drogę do przejrzystych raportów, szybkich analiz i bieżącej pracy na danych bez wchodzenia do panelu sklepu. Dzięki temu łatwiej kontrolować stany, ceny i rotację towarów, usprawniać pracę zespołów oraz automatyzować powtarzalne zadania. Poniższa instrukcja prowadzi od wyboru metody, przez konfigurację API i skryptów, po uruchomienie harmonogramów i zabezpieczenia. Znajdziesz tu też wskazówki do wdrożenia dwukierunkowej pracy: z PrestaShop do Sheets i z powrotem.

Wybór metody połączenia

Ścieżki integracji: od prostych do zaawansowanych

Istnieją cztery główne podejścia do połączenia PrestaShop z Google Sheets. Różnią się kosztem, elastycznością i czasem wdrożenia. Dobierz je do wielkości sklepu, częstotliwości zmian asortymentu i kompetencji zespołu:

  • Eksport/import CSV: najszybszy start bez programowania. Dobrze sprawdza się do ad hoc raportów, jednorazowych przeliczeń cen lub migracji. Minusem jest brak trybu ciągłego i ręczne operacje.
  • Gotowy moduł PrestaShop: rozszerzenia z Marketplace potrafią wysyłać i pobierać dane do Arkuszy. To szybka integracja, często z kreatorem i wsparciem. Ograniczeniem bywa elastyczność mapowania i koszt licencji.
  • Platformy iPaaS (Make/Zapier): łączą klocki bez kodu, świetne do przepływów typu order → wiersz w Sheets. Dobre w średniej skali, jednak koszty rosną wraz z liczbą zdarzeń.
  • Google Apps Script + PrestaShop API: najbardziej elastyczne i skalowalne. Pozwala w pełni kontrolować zakres danych, warunki i logikę. Wymaga podstaw JavaScript.

Kiedy którą metodę wybrać

  • Mały katalog, rzadkie zmiany: CSV lub moduł.
  • Raportowanie w czasie prawie rzeczywistym i proste przepływy: iPaaS.
  • Zaawansowane reguły cenowe, obsługa wielu sklepów, dwukierunkowość: Apps Script + Webservice.

Wymagania wstępne i przygotowanie środowiska

  • Dostęp administratora do PrestaShop (1.7 lub 8.x), z włączonym Webservice.
  • Adres sklepu z certyfikatem HTTPS oraz serwer, który prawidłowo przepuszcza zapytania (mod_rewrite/NGINX rewrite).
  • Konto Google z dostępem do Google Sheets i Google Apps Script.
  • Plan działania: jakie dane przenosimy (np. produkty, zamówienia, klienci), jak często oraz w którą stronę.

Dlaczego warto zautomatyzować

Stała automatyzacja zmniejsza ryzyko błędów ręcznych, skraca czas aktualizacji i pozwala szybciej reagować na zmiany popytu. Jednocześnie ułatwia utrzymanie spójności danych między sklepem a działem księgowym, marketingiem czy operacjami.

Konfiguracja przez PrestaShop Webservice i Google Apps Script

Włączenie Webservice w PrestaShop

  • Zaloguj się do zaplecza PrestaShop i przejdź: Zaawansowane → Webservice.
  • Włącz usługę sieciową oraz potwierdź poprawną konfigurację serwera (komunikaty o mod_rewrite lub regułach URL).
  • Utwórz nowy klucz: nadaj nazwę, ogranicz do konkretnych adresów IP (jeśli to możliwe) oraz wybierz tylko niezbędne uprawnienia (GET/POST/PUT/DELETE) dla zasobów, z którymi będziesz pracować.
  • Zapisz klucz. Będzie używany jako mechanizm Basic Auth lub parametr autoryzacyjny.

Test klucza i punktów końcowych

  • Sprawdź zasób produktów: https://twoj-sklep.pl/api/products. Użyj klucza jako loginu w Basic Auth (hasło puste) lub dodaj nagłówek Authorization.
  • Przetestuj również zasoby: /api/orders, /api/stock_availables, /api/categories. Upewnij się, że lista zwraca poprawne XML.
  • Na czas testów ogranicz wyświetlane pola parametrem display, np.: /api/products?display=[id,name,price]&limit=50.

Przygotowanie struktury w Arkuszu

  • Utwórz zakładki: Products, Orders, Stock, Settings.
  • W Products dodaj nagłówki kolumn: id, name, reference, price, quantity, active, updated_at.
  • W Orders: id, reference, date_add, customer_email, total_paid, status, carrier.
  • W Settings umieść: BASE_URL, API_KEY, PAGE_SIZE, LAST_SYNC_TS.

Utworzenie projektu Google Apps Script

  • W Arkuszu: Rozszerzenia → Apps Script → utwórz projekt.
  • W pliku Code.gs dodaj stałe pobierające BASE_URL i API_KEY z arkusza Settings.
  • Skonfiguruj funkcje pomocnicze: budowanie URL z parametrami, dodawanie nagłówków, logowanie do Loggera.

Pobieranie danych: produkty i zamówienia

  • Funkcja do pobierania produktów: buduje żądanie GET do /api/products z parametrami display, limit i sort; uwzględnia paginację (np. 250 rekordów na stronę).
  • Parsowanie XML: w Apps Script użyj XmlService do konwersji na obiekty; zamknij to w warstwie mapowania (id → kolumna A, name → B, itd.).
  • Wstawianie do Arkusza: użyj batchowego setValues, aby uniknąć limitów wywołań.
  • Analogicznie dla /api/orders: pobierz kluczowe pola, filtruj po dacie (LAST_SYNC_TS), aby ściągać przyrostowo.

W ten sposób uzyskasz wydajną synchronizacja danych do raportów i analiz. Pamiętaj, że PrestaShop Webservice zwraca XML; uproszczenie mapowania skraca czas wykonania funkcji i zmniejsza ryzyko błędów.

Aktualizacja stanów i cen z Arkuszy do PrestaShop

  • Ustal, które kolumny mogą aktualizować dane źródłowe (np. price, quantity, active). Zablokuj inne kolumny hasłem lub formatowaniem warunkowym.
  • Zaimplementuj funkcję onEdit lub osobną akcję UpdateToPS: zbiera zmienione wiersze i dla każdego wykonuje żądanie PUT/POST na właściwym zasobie (produkty → /api/products; stany → /api/stock_availables).
  • PrestaShop Webservice wymaga pełnego dokumentu obiektu przy PUT. Pobierz oryginalny XML, zaktualizuj pojedyncze pola i odeślij całość.
  • Waliduj wartości (np. cena ≥ 0, ilość jest liczbą całkowitą). Błędy zapisuj w kolumnie error_message i w Loggerze.

Harmonogramy i wyzwalacze

  • W Apps Script: Edytor → Wyzwalacze → Dodaj wyzwalacz czasu co 5/15/60 min dla funkcji SyncFromPS i np. raz dziennie dla pełnego odświeżenia.
  • Jeśli chcesz reagować natychmiast po zmianie w sklepie, skorzystaj z modułu PrestaShop generującego webhooki i endpointu w Apps Script (doGet/doPost).
  • Wersjonuj skrypt i testuj na kopii arkusza. Zmieniaj częstotliwości stopniowo, monitorując limity Apps Script (UrlFetch i czas wykonania).

Autoryzacja, nagłówki i ograniczenia

  • Dla PrestaShop Webservice stosuj Basic Auth z kluczem API jako użytkownikiem; możesz też dodać nagłówek Authorization: Basic base64(api_key:).
  • Ustaw nagłówki Accept: application/xml i Content-Type: application/xml przy PUT/POST.
  • Wyświetlaj jedynie potrzebne pola parametrem display – to zwiększa wydajność i stabilność.

Poprawna autoryzacja i minimalny zakres danych znacznie ograniczają czas odpowiedzi oraz ryzyko przekroczenia limitów.

Filtrowanie, paginacja i przyrosty

  • Używaj limit i sort (np. sort=[id_ASC]) oraz filtrów filter[id]=[100,999] lub filter[date_upd]=[2023-01-01,2023-12-31].
  • Do przyrostu trzymaj znacznik LAST_SYNC_TS w Settings i pobieraj tylko rekordy zaktualizowane po tej dacie (filter[date_upd]).
  • Twórz checkpointy co X stron: jeśli skrypt zostanie przerwany, wznowisz od ostatniej udanej paginacji.

Obsługa błędów i testy

  • Typowe kody: 401/403 (uprawnienia), 404 (brak zasobu), 400 (zły XML), 500 (błąd po stronie sklepu). Loguj kod i treść odpowiedzi.
  • Wstrzymaj retry z backoff (np. 1s, 2s, 4s) dla odpowiedzi 429/500.
  • Waliduj dane wejściowe przed PUT (np. price jako liczba, active ∈ {0,1}).
  • Uruchamiaj testy na środowisku staging, a dopiero potem na produkcji.

Alternatywy: moduły i platformy iPaaS

Gotowe moduły PrestaShop

  • Wyszukaj w Marketplace moduły łączące PrestaShop z Arkuszami. Sprawdź zakres: eksport, import, harmonogram, mapowanie pól, obsługa wielu sklepów.
  • Zwróć uwagę na wersję PrestaShop, wsparcie techniczne i częstotliwość aktualizacji.
  • Po instalacji zwykle konfigurujesz klucz Google (OAuth lub klucz usługi), wybierasz arkusz i mapujesz kolumny do pól API.

Konfiguracja przykładowa w kilku krokach

  • Podaj adres arkusza i nazwę zakładki (np. Products).
  • Wybierz kierunek: PrestaShop → Sheets (raportowanie) lub dwukierunkowo z kontrolą kolumn edytowalnych.
  • Ustal harmonogram: co X minut synchronizuj ceny i stany, a raz dziennie pełny eksport.
  • Przetestuj na 50 rekordach i zwiększaj zakres.

Make/Zapier: scenariusze bez kodu

  • Nowe zamówienie → dodaj wiersz w arkuszu: wyzwalacz z PrestaShop, akcja w Google Sheets. Zabezpiecz mapowanie statusu i waluty.
  • Zmiana statusu zamówienia → zaktualizuj kolumnę status w arkuszu: filtruj po numerze zamówienia i aktualizuj istniejący wiersz.
  • Aktualizacja cen w arkuszu → wyślij do PrestaShop: krok wyszukujący produkt po referencji i akcja aktualizująca przez moduł/API.

Webhooki i czas rzeczywisty

  • Jeśli moduł wystawia zdarzenia na URL, skonfiguruj Webhook Site lub Apps Script jako endpoint (doPost).
  • Po odebraniu zdarzenia przetwarzaj minimalny payload i wstawiaj tylko zmienione pola do arkusza.
  • Pamiętaj o weryfikacji podpisu zdarzeń i autoryzacji źródła.

Monitorowanie i koszty

  • W iPaaS obserwuj liczbę operacji i limity. Optymalizuj scenariusze, łącząc kroki w batch.
  • W modułach sprawdzaj logi synchronizacji, czas wykonania i błędy w mapowaniu.
  • Decyduj o opłacalności: dla dużej skali często taniej i elastyczniej wychodzi własny Apps Script.

Dwukierunkowa synchronizacja i dobre praktyki

Mapowanie i spójność danych

  • Ustal unikalny identyfikator rekordu w arkuszu (id lub reference). Nie duplikuj wierszy.
  • Oznacz kolumny edytowalne w Sheets (np. price, quantity) i zablokuj resztę.
  • Dodaj kolumny systemowe: last_synced_at, changed_by, error_message, hash_content (do wykrywania zmian).

Rozwiązywanie konfliktów

  • Zasada ostatniej modyfikacji: porównuj updated_at ze sklepu i timestamp edycji w arkuszu.
  • Strategia scalania: jeśli zmienia się zarówno cena w arkuszu, jak i w sklepie, wybierz źródło nadrzędne lub zgłoś konflikt do ręcznej akceptacji.
  • Weryfikuj integralność: dla wariantów korzystaj z kombinacji i stock_availables zamiast globalnego quantity.

Harmonogramy i wydajność

  • Pełny eksport rzadziej (np. raz dziennie), przyrostowe aktualizacje częściej (co 5–15 min).
  • Batchuj żądania: aktualizuj maksymalnie N pozycji w jednej iteracji, aby zmieścić się w limitach.
  • Minimalizuj zakres pól: display zawierający wyłącznie potrzebne atrybuty znacząco przyspiesza.

Stany, ceny i logika magazynowa

  • Dla stanów wykorzystuj zasób stock_availables; dla produktów z kombinacjami trzymaj stan per atrybut.
  • Dwukierunkowa aktualizacja ilości powinna respektować rezerwacje z koszyków i nie kompletować na minus.
  • W arkuszu kontroluj widełki cenowe i progi marż, aby uniknąć przypadkowych obniżek.

Synchronizacja stanów i procesy wokół działu magazyn są najbardziej wrażliwe na opóźnienia i konflikty, dlatego rekomendowane są krótsze interwały oraz blokady edycji na czas nocnych przeliczeń.

Bezpieczeństwo, dostęp i RODO

  • Ogranicz uprawnienia klucza Webservice do niezbędnych zasobów i metod. W razie potrzeby utwórz oddzielne klucze do odczytu i zapisu.
  • Przechowuj klucze w arkuszu Settings z ograniczeniem dostępu do pliku (tylko wybrane konta, brak udostępniania publicznego).
  • Włącz wymuszony HTTPS, rozważ filtrowanie IP po stronie serwera i rotację kluczy co X miesięcy.
  • Minimalizuj przetwarzanie danych osobowych w arkuszach (np. e-mail klienta). Ustal politykę retencji i maskowania danych.

Priorytetem jest bezpieczeństwo i zgodność z RODO: najmniejszy konieczny zakres danych, kontrola dostępu i monitorowanie użycia kluczy.

Audyt, logi i wersjonowanie

  • W Apps Script zapisuj dzienniki synchronizacji do osobnego arkusza Logs (timestamp, akcja, liczba rekordów, błędy).
  • Włącz wersjonowanie projektu skryptu, opisuj releasy i trzymaj changelog w zakładce Documentation.
  • Regularnie twórz kopie arkuszy i eksportuj dane do CSV/Drive, aby móc odtworzyć historyczny stan.

Typowe problemy i ich rozwiązania

  • Brak uprawnień 401/403: sprawdź zaznaczone prawa do zasobów i włączony Webservice.
  • Wolne odpowiedzi: zawęź display, zwiększ limit per strona i zmniejsz częstotliwość pełnych eksportów.
  • Błędny XML przy PUT: pobierz świeży schemat obiektu z GET, zaktualizuj tylko zmieniane pola i zachowaj strukturę tagów.
  • Duplikaty w arkuszu: zastosuj unikalny index po id/reference i aktualizuj istniejące wiersze zamiast dopisywać nowe.

Ścieżka krok po kroku: od zera do działającej integracji

Krok 1: Aktywuj Webservice i wygeneruj klucz

  • Włącz Webservice, wygeneruj API_KEY z minimalnym zakresem (GET dla odczytu, PUT dla aktualizacji stanów/cen).
  • Notuj adresy testowe, np. /api/products?display=[id,name,price]&limit=10.

Krok 2: Zaprojektuj arkusze i mapowanie

  • Products: id, name, reference, price, quantity, active, updated_at, error_message.
  • Orders: id, reference, date_add, customer_email, total_paid, status.
  • Settings: BASE_URL, API_KEY, LAST_SYNC_TS, PAGE_SIZE=200.

Krok 3: Zbuduj funkcje w Apps Script

  • getSettings(): pobiera konfigurację z arkusza Settings.
  • fetchProductsPage(page): pobiera jedną stronę produktów z filtrami i mapuje do tablicy wierszy.
  • syncProducts(): czyści zakres danych i wstawia nowe wiersze batchowo.
  • syncOrdersIncremental(): pobiera zamówienia z ostatnich X godzin, aktualizuje/uzupełnia wiersze po id/reference.
  • updateProductRow(row): pobiera XML produktu, aktualizuje price/active, odsyła PUT i zapisuje wynik.

Krok 4: Ustaw wyzwalacze i testy

  • Wyzwalacz czasowy co 15 min dla syncOrdersIncremental i co 6 h dla syncProducts.
  • Test na kopii arkusza z 200 rekordami. Porównaj dane z panelem sklepu.
  • Dodaj walidacje i formatowanie warunkowe (np. cena ujemna na czerwono, quantity poniżej progu na żółto).

Krok 5: Wprowadź dwukierunkowość z kontrolą jakości

  • Włącz aktualizację price i quantity tylko po zatwierdzeniu (kolumna approve=TRUE).
  • Ustaw limit maks. zmian per synchronizacja (np. 100 rekordów), by uniknąć błędów masowych.
  • Loguj pełne żądania/odpowiedzi dla rekordów z błędami i taguj je w arkuszu.

Krok 6: Skaluj i utrzymuj

  • Wydziel konfiguracje dla wielu sklepów (BASE_URL_1, BASE_URL_2) i odrębne projekty skryptów.
  • Wprowadź cache wyników GET (PropertiesService) na czas jednej sesji synchronizacji.
  • Raz w miesiącu audytuj uprawnienia, rotuj klucze i przeglądaj logi.

Po wdrożeniu wszystkich kroków, Twój zestaw narzędzi – od Webservice, przez Apps Script, po dobrze zaprojektowane arkusze – stanie się centralnym punktem pracy na danych e-commerce. Sklepy PrestaShop zyskują przejrzystość, szybkość aktualizacji i pełną kontrolę nad procesami – od cen i stanów, po analitykę i operacje. Dzięki temu zarówno dział sprzedaży, jak i operacje magazynowe mogą działać spójnie w oparciu o jeden, zawsze aktualny zestaw informacji. A jeśli potrzeba elastyczności większej niż w gotowych modułach, własne skrypty pozwolą rozszerzać rozwiązanie o kolejne scenariusze, takie jak rekalkulacja marż, kontrola SLA wysyłek czy automatyczne alerty w Slack/Email.

W praktyce, łączenie PrestaShop z Google Sheets nie wymaga rozbudowanej infrastruktury – kluczem jest świadome zaprojektowanie przepływów, dobra higiena danych oraz właściwe balansowanie między częstotliwością odświeżeń a stabilnością. Pamiętaj, by na każdym etapie testować na ograniczonym zakresie, sukcesywnie zwiększać wolumen i konsekwentnie utrzymywać porządek w mapowaniach pól. W ten sposób Twoje dane staną się realnym wsparciem decyzji, a nie kolejnym źródłem chaosu.

Jeżeli w przyszłości rozważysz rozszerzenie o analitykę BI, ten sam strumień danych z Arkuszy może zasilić Looker Studio lub BigQuery. Zbudujesz wtedy pulpit z KPI sprzedaży, rotacją SKU, marżą kontrybuowaną i trendami zapasów, nadal zachowując prostotę codziennej edycji wybranych parametrów bezpośrednio w Arkuszach.

Na koniec pamiętaj: niezależnie od wybranej metody, fundamenty – dobre mapowanie, kontrola uprawnień, testy regresyjne i jasno zdefiniowane role w zespole – decydują o skuteczności całego wdrożenia. Dzięki nim połączenie sklepu z Arkuszami będzie stabilne, skalowalne i gotowe na dalszą rozbudowę.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz