WordPress i WooCommerce
jak wgrać feed hurtownika do produktów i stanów woocommerce
dlaczego feedy csv hurtowników psują stany w woocommerce
Dostawcy hurtowi zrzucają nocą pliki CSV albo XML z nowymi cenami, jednostkami opakowania i stanami. Ktoś pobiera plik, otwiera Excela, poprawia przecinki dziesiętne i wkleja do wtyczki importu WooCommerce. Przed południem połowa katalogu pokazuje zero, bo pusta kolumna ilości została potraktowana jako aktualizacja, albo dostawca zmienił kod producenta i każde dopasowanie padło. Sklepy sprzedające to samo SKU z dwóch hurtowni kłócą się, który feed wygrywa, a ERP w Comarch Optima lub Subiekt trzyma trzecią ilość, której zakupowi ufa bardziej niż sklepowi. Ręczne importy niszczą też treści. Redakcja tygodniami pisała opisy PL i EN, atrybuty i zdjęcia; pełna podmiana katalogu z hurtowni nadpisuje tytuły WIELKIMI LITERAMI dostawcy i zdejmuje kategorie. Reguły marży znikają, gdy feed przysyła ceny brutto, a sklep oczekuje netto. B2B odczuwa to jako skoki cen łamiące kontrakty z kluczowymi kontami, którym obiecano zamknięty cennik netto. Przy obciążeniu dokładają się awarie. Feed 40 tysięcy wierszy importowany synchronicznie przez WP-Admin kończy się timeoutem, częściowym zapisem i niewiedzą, które SKU weszły. Action Scheduler pomaga tylko, gdy job jest pocięty na chunki z run ID. Bez tabeli kwarantanny jeden zły EAN przerywa cały batch albo, gorzej, przechodzi ze złą jednostką i sprzedajecie sztuki jako zgrzewki. Skutek biznesowy to oversell, ubytki marży i wściekli opiekunowie klientów. Support obiecuje wysyłkę nazajutrz na podstawie zielonego stanu w sklepie, podczas gdy API hurtownika godzinę wcześniej zwróciło zero. Marketing odpala kampanię na SKU, którego cena w feedzie urosła w nocy. Finanse nie potrafią złożyć przychodu sklepu z cenami zakupu w Optimie dla tego samego kodu artykułu. Automatyzacja to nie „włącz import na cronie”. To kontrolowany potok: pobierz, zwaliduj, zmapuj, zastosuj delty z buforem, odizoluj wyjątki i zaraportuj. Aktualizacje stanów i cen muszą dać się odłączyć od treści, żeby praca redakcyjna przeżyła. Gdy ERP jest prawdziwą księgą magazynową, feed hurtownika powinien najpierw aktualizować zakupy lub ERP, a sklep dostać już przefiltrowany push - nie ścigać się z Optimą równoległym wklejeniem CSV. Obserwowalność należy trzymać obok potoku: logi ze run ID, prosty pulpit ostatnich sukcesów oraz właściciel alertów w zespole, który potrafi poprawić mapowanie, a nie w ogólnej skrzynce, której nikt nie czyta. W szczycie sezonu brak takiego RACI kończy się wzajemnym przerzucaniem odpowiedzialności zamiast naprawą pierwszej przyczyny. Zakupy powinny przeglądać kwarantannę codziennie w tygodniach onboardingu feedu, potem co tydzień. Archiwizujcie przykładowe surowe pliki dla każdej wersji schematu od dostawcy, żeby spór o znaczenie kolumny miał dowody. Gdy lead time przekracza dwa tygodnie, podnieście bufor i powiedzcie marketingowi, które SKU są obietnicą, a które realnym stanem. Szczegół operacyjny dla tematu checksum and truncated file guards: wskazani właściciele, przykłady awarii oraz metryka, która dowodzi, że kontrola działa produkcyjnie w tej automatyzacji WooCommerce. Spiszcie krok runbooka, cel alertu oraz akcję rollback lub kompensaty, by dyżur nocny działał bez zgadywania. Podajcie nazwę systemu źródła prawdy i pole ID korelacji używane w logach. Sequence marker pl-wholesaler-feed-to-products-stock-pad-1. Szczegół operacyjny dla tematu dual supplier priority allocation: wskazani właściciele, przykłady awarii oraz metryka, która dowodzi, że kontrola działa produkcyjnie w tej automatyzacji WooCommerce. Spiszcie krok runbooka, cel alertu oraz akcję rollback lub kompensaty, by dyżur nocny działał bez zgadywania. Podajcie nazwę systemu źródła prawdy i pole ID korelacji używane w logach. Sequence marker pl-wholesaler-feed-to-products-stock-pad-4.
kiedy zrzut feedu hurtownika ma zaktualizować katalog sklepu
Uruchamiaj po wrzuceniu nowego pliku na SFTP albo gdy API hurtownika pokazuje `feed.updated` nowszy niż ostatni udany run ID. Typowy rytm to co jedną do czterech godzin dla stanów, nocą pełny cennik. Dodaj ręczne `replay_feed` wskazujące wersję pliku do odzyskania po incydencie. Nie odpalaj na każdym migotaniu znacznika FTP bez zmiany checksumy, bo wypalicie limity API przepisując te same wiersze.
jak bezpiecznie zmapować wiersze hurtownika na produkty woocommerce
- Pobierz feed do object storage lub dysku staging, policz checksumę i odmów przetwarzania, gdy plik jest pusty, obcięty poniżej progu wierszy albo identyczny z ostatnim udanym checksumem.
- Parsuj wiersze z jawnymi regułami kodowania i separatora dziesiętnego. Normalizuj SKU dostawcy, EAN i wasze SKU przez tabelę mapowań. Nieznane SKU kieruj do kolejki onboardingu zamiast auto-tworzyć śmieciowe produkty, chyba że polityka pozwala na draft.
- Waliduj reguły biznesowe: maksymalna delta ceny, jednostka miary, MOQ oraz stany nieujemne. Nałóż bufor bezpieczeństwa, by stan sklepu był poniżej stanu hurtownika przy długim lead time.
- Upsert produktów WooCommerce chunkami przez REST lub uprzywilejowany endpoint: cena, stan, backorder i meta zakupowe. Pomiń pola treści, chyba że dla dostawcy włączono jawny content-sync.
- Zapisz raport runu: ok, kwarantanna, nieznane SKU, SKU zatrzymane hamulcem delty ceny. Powiadom zakupy, gdy kwarantanna przekroczy próg, i zapisz run ID na zaktualizowanych produktach do audytu.
- Opublikuj zdarzenie po runie, żeby feed Google Merchant, marketplace i alerty low-stock czytały nowy run ID dopiero po commit, unikając półzaktualizowanego katalogu.
Systemy
- WooCommerce
- Wholesaler SFTP/API
- Comarch Optima
- Subiekt
Narzędzia
- n8n
- WP-Cron
- Action Scheduler
- WooCommerce REST
jak ftp api i n8n przenoszą dane hurtownika do sklepu
n8n albo mały worker ściąga SFTP/API, trzyma surowý plik i parsuje do tabeli staging. Mapowanie żyje w wersjonowanej tabeli, którą utrzymuje product ops. Zapisy do WooCommerce idą REST z Application Passwords lub custom route, z Action Scheduler po stronie WP tylko na chunkowane write'y gdy potrzebujecie locków sklepowych. Gdy Comarch Optima lub enova jest źródłem stanów, feed aktualizuje najpierw kartoteki zakupowe ERP; sklep słucha delt ERP zamiast pisać stany hurtownika wprost - unikacie dual-write. Make.com wystarczy przy jednym prostym CSV; złożona kwarantanna i hamulce delty są czytelniejsze w n8n lub custom PHP. Poświadczeń FTP hurtownika nie trzymajcie w jawnej opcji wtyczki bez szyfrowania. Rozmiar chunka dopasujcie do hostingu: kilkaset update'ów REST z jitterem bije jeden wielki admin-ajax. Per-SKU last hash pozwala pominąć niezmienione wiersze. Obserwowalność należy trzymać obok potoku: logi ze run ID, prosty pulpit ostatnich sukcesów oraz właściciel alertów w zespole, który potrafi poprawić mapowanie, a nie w ogólnej skrzynce, której nikt nie czyta. W szczycie sezonu brak takiego RACI kończy się wzajemnym przerzucaniem odpowiedzialności zamiast naprawą pierwszej przyczyny. Szczegół operacyjny dla tematu decimal comma normalisation rules: wskazani właściciele, przykłady awarii oraz metryka, która dowodzi, że kontrola działa produkcyjnie w tej automatyzacji WooCommerce. Spiszcie krok runbooka, cel alertu oraz akcję rollback lub kompensaty, by dyżur nocny działał bez zgadywania. Podajcie nazwę systemu źródła prawdy i pole ID korelacji używane w logach. Sequence marker pl-wholesaler-feed-to-products-stock-pad-2.
jak izolować złe wiersze feedu bez kasowania stanów sklepu
Gdy plik nie przejdzie checksumy lub progu wierszy, przerwij run i nie ruszaj wczorajszych stanów sklepu. Złe pojedyncze wiersze izoluj bez padania całego batcha, jeśli błąd jest lokalny. Przy 429 z WooCommerce wstrzymaj workera chunków z backoffem i wznów ten sam run ID. Przy częściowej awarii sklepu nie oznaczaj runu jako success: zapisz kursor. Hamulec delty ceny wymaga ludzkiego approve z logiem kto zatwierdził. Alertuj, gdy udział kwarantanny przekroczy próg - zwykle dostawca zmienił kolumny. Przy SKU z dwóch źródeł rozstrzygaj priorytetem, nie last-write-wins. Jeśli wersja mapowania nie pasuje do nagłówka feedu, fail closed. Rollback rzadko oznacza pełne odtworzenie katalogu; wolcie transakcje kompensujące tylko SKU dotknięte nieudanym run ID na podstawie snapshota pre-image. Szczegół operacyjny dla tematu price delta brake approvals: wskazani właściciele, przykłady awarii oraz metryka, która dowodzi, że kontrola działa produkcyjnie w tej automatyzacji WooCommerce. Spiszcie krok runbooka, cel alertu oraz akcję rollback lub kompensaty, by dyżur nocny działał bez zgadywania. Podajcie nazwę systemu źródła prawdy i pole ID korelacji używane w logach. Sequence marker pl-wholesaler-feed-to-products-stock-pad-3.
kiedy automatyczny sync feedu hurtownika jeszcze się nie opłaca
Macie poniżej kilkuset SKU aktualizowanych tygodniowo i jednego dostawcę, który już oddaje czysty CSV pod WooCommerce ze stabilnymi kolumnami. Wtedy nadzorowany import tygodniowy może wygrać z budową kwarantanny. Poczekajcie też, jeśli dostawca co miesiąc wymienia schemat bez zapowiedzi - najpierw ustabilizujcie kontrakt.
wskaźniki zdrowia feedu hurtownika do stanów woocommerce
- Czas od checksumy feedu do ostatniego zacommitowanego chunka
- Udział wierszy w kwarantannie na run
- Overselle wynikające z przestarzałego stanu hurtownika
- Liczba pól treści przypadkowo nadpisanych miesięcznie
Kalkulator opłacalności automatyzacji
Wpisz liczbę wykonań procesu w miesiącu, ile minut zajmuje jedno i swój koszt godziny. Wynik to symulacja, nie wycena naszej pracy.
Godziny = wykonania × minuty / 60 × odzysk %. Wartość czasu = godziny × stawka × realizacja %. Uniknięte błędy = wykonania × błąd % × koszt błędu × realizacja %. Netto = suma − utrzymanie. Zwrot = wdrożenie / netto, tylko gdy netto > 0.
Godziny odzyskane / miesiąc: -
Godziny odzyskane / rok: -
Wartość czasu / miesiąc: -
Uniknięty koszt błędów / miesiąc: -
Netto / miesiąc: -
Zwrot (miesiące): -
Wynik w pierwszym roku: -
Często zadawane pytania
Najważniejsze odpowiedzi, które pomagają wdrożyć temat w praktyce.
Czy feed ma automatycznie tworzyć nowe produkty?
#Jak obsłużyć dwóch hurtowników dla jednego SKU?
#Czy stan i cena mają iść w tym samym runie?
#Potrzebujesz FAQ dopasowanego do branży i rynku? Przygotujemy wersję pod Twoje cele biznesowe.
Porozmawiajmy