Ten plik konfiguracyjny opisuje integrację systemu PC-Market 7 (PCM) poprzez narzędzie pcm2www z platformą WooCommerce.
Integrator działa cyklicznie, pobiera dane z katalogu eksportów PC-Market (exp_*) oraz synchronizuje je z WooCommerce przy użyciu REST API.
- 🚀 Automatyczna synchronizacja produktów i stanów magazynowych
- 🔄 Obsługa cache – pełne i częściowe odświeżanie danych z WooCommerce
- 🗂️ Import plików PCM (
exp_wyk,exp_dok, itp.) z katalogu wymiany - 🛒 Integracja przez REST API WooCommerce (create, update, stock update)
- ⚙️ Elastyczna konfiguracja poprzez plik JSON
- 📡 Ciągła praca w tle – monitoring katalogu i cykliczne taski
Integrator posiada narzędzie CLI, tak samo jak narzędzie Desktopowe (Windows) Plik konfiguracyjny wrzucamy w ~/.config/pcm2www/config.json
{
"integrations": {
"woocommerce": {
"base_url": "https://new...",
"consumer_key": "ck_xxx",
"consumer_secret": "GGoO .... .... .... ....",
"poll_sec": 10,
"cache": {
"prime_on_start": true,
"sweep_interval_minutes": 360
"fields": "id,sku,name,regular_price,sale_price,stock_quantity,manage_stock,status,hurt_price,ean,date_modified_gmt,type"
}
},
"importer": {
"watch_dir": "~/pcm2www/imports",
"poll_sec": 5
}
},
"auto_start": true,
"sync_interval_seconds": 10
}Integracja składa się z trzech głównych sekcji:
- integrations.woocommerce – ustawienia połączenia z WooCommerce
- integrations.importer – ustawienia importu plików z PC-Market
- auto_start, sync_interval_seconds – parametry globalne
- auto_start – integrator startuje automatycznie po uruchomieniu aplikacji.
- sync_interval_seconds – co ile sekund przetwarzane są zadania synchronizacji w kolejce (np. wysyłka zmian do WooCommerce).
→ W tym przypadku co 10 sekund.
- base_url – adres sklepu WooCommerce (REST API).
- consumer_key i consumer_secret – klucze API wygenerowane w WooCommerce (używane do autoryzacji).
- poll_sec – częstotliwość sprawdzania kolejki zadań dla WooCommerce, tutaj co 10 sekund.
Sekcja cache określa sposób buforowania danych produktów z WooCommerce:
- prime_on_start – przy pierwszym uruchomieniu pobierany jest pełny stan produktów z Woo (pełna inicjalizacja cache).
- sweep_interval_minutes – pełne odświeżanie cache produktów co 360 minut (6h).
- fields – lista pól produktów pobieranych z WooCommerce:
- id, sku – identyfikatory
- name – nazwa produktu
- regular_price, sale_price – ceny
- stock_quantity, manage_stock – stany magazynowe
- status – status produktu (np. publish / draft)
- hurt_price, ean – pola rozszerzone (dane hurtowe i kod EAN)
- date_modified_gmt – data ostatniej modyfikacji
- type – typ produktu (np. simple, variable)
Sekcja importer odpowiada za pobieranie danych z PC-Market:
- watch_dir – katalog, w którym PCM umieszcza eksporty (np. exp_wyk_.xml, exp_dok_.xml).
W tej konfiguracji:~/pcm2www/imports. - poll_sec – co ile sekund sprawdzany jest katalog importu, tutaj co 5 sekund.
- PC-Market 7 generuje pliki eksportu (exp_wyk, exp_dok, itd.) do katalogu
~/pcm2www/imports. - Importer monitoruje katalog i wczytuje nowe pliki XML (co 5 sekund).
- Dane są zapisywane do lokalnej bazy/cache integratora.
- WooCommerce worker co 10 sekund sprawdza różnice i wysyła zmiany do WooCommerce REST API.
- Cache WooCommerce jest odświeżany:
- pełny stan co 6h,
- stany magazynowe co 2h,
- dodatkowo pełna synchronizacja przy starcie (
prime_on_start=true).
- Integrator działa w trybie ciągłej synchronizacji.
- Zmiany w PCM (towary, stany, ceny) są widoczne w WooCommerce niemal w czasie rzeczywistym.
- Harmonogram zapewnia równowagę pomiędzy aktualnością danych a wydajnością:
- pliki z PCM → WooCommerce: co 5s
- zadania do WooCommerce: co 10s
- cache pełny: co 6h
- cache stanów: co 2h
Dzięki temu integracja jest szybka, a jednocześnie minimalizuje obciążenie WooCommerce.