1. Do czego służy moduł

PriceWars zamienia Twój katalog w feedy produktowe, czyli pliki XML, które pobierają Google Merchant Center, katalog Facebooka i Instagrama (Meta), Ceneo i inne platformy, żeby pokazywać Twoje produkty, ceny i stany. Feedów możesz utworzyć dowolnie dużo: osobny dla każdej platformy, języka, waluty lub kraju, każdy z własnymi produktami, kategoriami i cenami.

Feedy dostępne w wersji 1.0:

  • Reklamy i media społecznościowe — Google Merchant Center (reklamy produktowe i bezpłatne informacje) z feedem stanu w sklepach stacjonarnych, Facebook / Instagram (katalog Meta), Pinterest;
  • Porównywarki i marketplace'y — Ceneo (z kategoriami Ceneo albo sklepu), Morele.net Marketplace, Okazje.info, I-SZOP.pl i K-SZOP.pl; Grupa Domodi — Domodi, Homebook, Allani; Heureka.cz / Heureka.sk z feedem dostępności i Zboží.cz (Czechy, Słowacja); Skroutz (Grecja); eMAG Marketplace (Rumunia, Węgry, Bułgaria); Compari.ro, Árukereső.hu i Pazaruvaj.com (Rumunia, Węgry, Bułgaria); Skąpiec.pl; ShopMania; idealo (CSV: Niemcy, Austria, Wielka Brytania, Francja, Włochy, Hiszpania, Polska); Awin (sieć afiliacyjna, CSV); ChatGPT (feed produktów OpenAI wysyłany przez SFTP);
  • Integratory i marketplace'y dla dostawców — Base.com (BaseLinker), Droplo, Media Expert (dwie wersje pliku dostawcy), marketplace'y Mirakl (plik ofert OF01: Carrefour, Decathlon, Empik, Conrad…);
  • Uniwersalny XML — opisany format ze schematem XSD dla partnerów, hurtowni i własnych integracji;
  • Mapa witryny — produkty, kategorie, strony CMS i marek dla wyszukiwarek, z wersjami językowymi (hreflang) i indeksem map dla dużych katalogów;
  • Własny szablon — dowolna struktura XML zbudowana ze smart tagów.

Przed każdym wydaniem sprawdzamy każdy format ze specyfikacją jego platformy, a moduł sprawdza według tych samych reguł każdy wygenerowany przez Ciebie plik (Diagnostyka). Skąpiec.pl, ShopMania, Base.com, Droplo i Media Expert nie publikują specyfikacji: ich pliki mają strukturę, którą te platformy od lat przyjmują od sklepów — sprawdź pierwszy import w panelu platformy.

Działa z PrestaShop 1.7.8, 8.x i 9.x (PHP 7.2.5 lub nowszy) oraz z trybem multistore.

2. Instalacja

  1. Pobierz moduł z Moje konto → Historia zamówień w sklepie addonspresta.com.
  2. W panelu sklepu otwórz Moduły → Menedżer modułów i kliknij Załaduj moduł.
  3. Upuść plik ap_pricewars_v1.0.1.zip i poczekaj na potwierdzenie.
  4. Otwórz Katalog → PriceWars.

3. Jak to działa

  1. Dodaj feed i wybierz platformę. Nowy feed ma od razu ustawienia, jakich oczekuje dana platforma.
  2. W Mapowaniu kategorii wybierz, które kategorie są eksportowane, a dla platform z własnym drzewem kategorii (Google, Meta, Pinterest, Domodi, Ceneo, Heureka, Zboží.cz, I-SZOP.pl) — odpowiadającą im kategorię platformy. Kategoria bez własnego wyboru przejmuje wybór najbliższej kategorii nadrzędnej, więc zmapowanie kategorii głównej obejmuje wszystkie jej podkategorie.
  3. Skopiuj adres feedu z listy i wklej go w panelu platformy (Merchant Center, Commerce Manager, panel Ceneo).
  4. Ustaw zadanie cron, żeby plik był zawsze aktualny (zob. „Generowanie”).

Ceny, stany i koszty dostawy moduł liczy funkcjami samego PrestaShop — wychodzą takie same, jakie widzą Twoi klienci w sklepie, z Twoimi podatkami, cenami specjalnymi i rabatami grup. Duże katalogi są wczytywane porcjami, więc zużycie pamięci pozostaje niskie. Moduł sam nigdzie nie wysyła Twoich danych: to platformy pobierają feedy. Jedyny wyjątek to feed, w którym włączysz Wysyłaj przez SFTP (wymaga tego ChatGPT): jego plik trafia na serwer SFTP, który wskażesz.

4. Funkcje i ustawienia

Lista feedów

Katalog → PriceWars pokazuje feedy bieżącego sklepu z liczbą ofert i datą ostatniego pliku. Akcje w wierszu otwierają Mapowanie kategorii, Diagnostykę, Podgląd (pierwsze 20 ofert, nic się nie zapisuje), Generuj teraz, Duplikuj i Usuń. Pod listą jest adres i polecenie crona.

Ustawienia feedu (zakładki)

  • Ogólne — nazwa (widoczna tylko dla Ciebie), nazwa w adresie (np. ceneo, użyta w /feed/ceneo.xml), aktywność.
  • Generowanie — Plik z pamięci podręcznej (plik jest używany ponownie przez ustawiony czas ważności), Tylko plik (zapisuje go cron lub wiersz poleceń — najszybciej, wymagane przez platformy, które potrzebują statycznego pliku) albo Na żywo (generowany przy każdym pobraniu); kompresja; Wymagaj klucza feedu, jeśli feed ma być prywatny.
  • Język i waluta — język, waluta, kraj (podatki i dostawa) oraz grupa klientów (rabaty). Możesz pozwolić na id_lang, id_currency i id_country w adresie, żeby jeden feed obsługiwał kilka rynków. Domyślnie jest to wyłączone i działa tylko dla języka aktywnego w sklepie, waluty aktywnej i przypisanej do sklepu oraz aktywnego kraju; inne wartości są pomijane.
  • Stany i kombinacje — co zrobić z produktami niedostępnymi w magazynie, korekta i minimum stanu, jedna oferta na produkt lub na kombinację, nazwa i id kombinacji. Nie zmieniaj id w działającym feedzie: platformy rozpoznają po nim oferty.
  • Produkty — pomijanie produktów wyłączonych, niedostępnych do zamówienia, wirtualnych i zestawów, bez marki, indeksu, kodu kreskowego lub zdjęcia; filtry widoczności, stanu produktu, ceny i rabatu; listy produktów, marek, dostawców lub kategorii do eksportu albo do wykluczenia.
  • Nazwa i opis — wielkość liter, szablon nazwy ze smart tagami (np. {brand} {name_base} {feature:5}), źródło opisu (krótki, długi, oba lub szablon), obsługa HTML i limity długości.
  • Zdjęcia — rozmiar, liczba zdjęć, najpierw zdjęcia kombinacji.
  • Ceny — która cena trafia do feedu (brutto lub netto, przed rabatami lub po nich), modyfikator ceny, np. 1.1 albo {p} * 1.1 + 5, cena minimalnej ilości zamówienia oraz najniższa cena z 30 dni przed promocją (Omnibus) dla platform, które jej wymagają, oraz cena jednostkowa dla Google (z ceny jednostkowej i jednostki ustawionych w produkcie, np. „za 100 g”).
  • Dostawa — bez kosztu, przewoźnik domyślny, najszybszy lub najtańszy, darmowa dostawa albo stały koszt; pomijani przewoźnicy, kraj dostawy, pomijanie produktów, których nie dostarcza żaden przewoźnik.
  • Linki — parametry UTM (pozostałe dodawane są tylko razem z utm_source) i dodatkowe parametry.
  • Dodatkowe tagi — XML dopisywany do każdej oferty dla pól, których moduł nie zapisuje sam, np. <g:custom_label_0>. Włącz Używaj własnych dodatkowych tagów, aby je wpisać; własny szablon zaczyna się od przykładu. Reguły węzłów XML zmieniają gotowy XML każdej oferty, jedna reguła w wierszu: remove g:mpn, set g:condition = refurbished if g:brand = Outlet, add g:custom_label_0 = {brand}, rename g:mpn => g:gtin, skip if g:availability = out_of_stock (warunki =, !=, contains, is empty, is not empty; działa też ścieżka, np. images/image, i atrybut, np. @basket). Oferty pominięte przez regułę widać w Diagnostyce.
  • Platforma — opcje wybranej platformy, np. identifier_exists, cena promocyjna i MPN dla Google, Kup Teraz (basket) i czas wysyłki (avail) dla Ceneo, częstotliwość zmian i priorytet dla mapy witryny.
  • Zaawansowane — dziedziczenie mapowania przez podkategorie, kategoria produktu (domyślna lub najgłębsza eksportowana), zapis pominiętych produktów.

Każde pole ma pod sobą krótką podpowiedź. Wartości są sprawdzane przy zapisie, a formularz pokazuje, co poprawić.

Smart tagi

Nazwy, opisy, dodatkowe tagi, wartości UTM i własne szablony przyjmują smart tagi w nawiasach klamrowych, np. {name}, {name_base}, {brand}, {reference}, {gtin}, {price}, {price_regular}, {quantity}, {link}, {image}, {category}, {feature:ID}, {attribute:ID:separator}, {shipping_price}. Filtry zmieniają wartość: {name|upper}, {description_short|strip|truncate:200}. Działają też nazwy znane z PriceWars II, np. {cecha:ID}.

Mapowanie kategorii

Kolumna Eksport każdej kategorii sklepu ma wartość Jak nadrzędna, Tak albo Nie. Dla platform z drzewem kategorii zamiast tego wybierasz kategorię platformy — wpisz kilka liter i wybierz z listy; zmapowana kategoria jest eksportowana, Nie ją pomija. Ustaw to samo we wszystkich podkategoriach kopiuje wybór w dół drzewa. Dwie liczby przy kategorii to produkty, dla których jest ona domyślna, i wszystkie jej produkty.

Listy kategorii platform są dołączone do modułu. Gdy platforma zmieni swoje drzewo, kliknij Pobierz aktualną listę pod tabelą: moduł pobierze listę od platformy (Google, Ceneo, Heureka, Zboží.cz) i będzie jej używał, dopóki aktualizacja modułu nie przyniesie nowszej. I-SZOP.pl ma stałą listę sześciu kategorii.

Narzędzia mapowania nad tabelą: Każda kategoria + Zastosuj do wszystkich ustawia jeden wybór we wszystkich wierszach (zapisz przyciskiem Zapisz); Skopiuj mapowanie z innego feedu sklepu (kategorie platformy tylko między feedami tej samej platformy); Eksportuj CSV i Importuj CSV, aby edytować mapowanie w arkuszu — kolumny id_category, state (inherit, yes, no) i platform_category_id; kategorie, których nie ma w pliku, zachowują swój wybór.

Diagnostyka

Strona diagnostyki pokazuje:

  • ostrzeżenia o konfiguracji — np. feed bez mapowania, tryb katalogu, stary plik albo nieudane generowanie;
  • sprawdzenie zgodności ze specyfikacją bieżącego pliku — każdą naruszoną regułę z ofertą i miejscem w dokumentacji platformy, z którego reguła pochodzi;
  • pominięte produkty z ostatniego generowania z powodem (gdy włączone jest Zapisuj pominięte produkty);
  • statystyki ostatnich 30 generowań: oferty wyeksportowane i pominięte oraz czas generowania (wskaż słupek, aby zobaczyć liczby);
  • ostatnie generowania z liczbą ofert, czasem i pamięcią.

Podgląd → Tester produktu: wpisz ID produktu, aby zobaczyć, czy feed go wybiera, dlaczego dana oferta jest pomijana (np. Brak w magazynie albo Brak marki (wymaganej przez platformę)) i jaki XML ma każda eksportowana oferta. Nic nie jest zapisywane.

Ustawienia wspólne dla wszystkich feedów

Moduły → Menedżer modułów → PriceWars → Konfiguruj: krótkie adresy feedów, udostępnianie feedów podczas przerwy technicznej, eksport produktów z kategorii głównej, liczba produktów w porcji, limity czasu i pamięci, czas przechowywania statystyk. Ramka Pomoc na górze prowadzi do tej instrukcji i do strony modułu na addonspresta.com.

Generowanie

Feedy w trybie Plik z pamięci podręcznej lub Tylko plik potrzebują zadania cron. Najlepiej z wiersza poleceń:

php /sciezka/do/sklepu/modules/ap_pricewars/bin/generate.php --shop=1

Uruchamiaj je co 15–60 minut. Panel hostingu ma zwykle stronę „Zadania cron”; jeśli przyjmuje tylko adresy, użyj adresu crona spod listy feedów. Generuj teraz zapisuje plik od razu.

5. Multistore

Każdy feed należy do jednego sklepu. Wybierz sklep w nagłówku panelu, aby zobaczyć i edytować jego feedy; ceny, stany, linki i podatki pochodzą z tego sklepu. Ustawienia wspólne zapisują się dla sklepu lub grupy sklepów. W kontekście wszystkich sklepów albo grupy zapisać może tylko pracownik, który zarządza każdym jej sklepem. Jedna licencja obejmuje wszystkie sklepy instalacji.

6. Odinstalowanie

Menedżer modułów → PriceWars → Odinstaluj usuwa wszystkie feedy, mapowania, statystyki, wygenerowane pliki i ustawienia. Adresy feedów przestają działać. Aby wszystko zachować, wybierz Wyłącz.

7. Najczęstsze pytania i problemy

Feed jest pusty. Otwórz Mapowanie kategorii: dopóki nie zmapujesz żadnej kategorii, nic nie jest eksportowane. Potem sprawdź Diagnostyka → Pominięte produkty (najpierw włącz Zapisuj pominięte produkty w zakładce Zaawansowane).

Merchant Center zgłasza złą cenę. Sprawdź kraj i grupę klientów feedu — cena jest liczona właśnie dla nich. W Stanach Zjednoczonych i Kanadzie Google oczekuje cen netto, w pozostałych krajach brutto; moduł robi to sam.

Ceneo odrzuca kategorie. Użyj feedu Ceneo z mapowaniem kategorii albo Ceneo bez mapowania kategorii, wtedy Ceneo samo przypisze kategorie.

Feed generuje się długo albo przerywa w połowie. Ustaw tryb Tylko plik lub Plik z pamięci podręcznej z cronem w wierszu poleceń i zmniejsz Produktów w jednej porcji, jeśli serwerowi brakuje pamięci. Gdy serwer przerywa skrypty po kilku sekundach (hosting współdzielony), włącz Generuj partiami: każde wywołanie crona zapisuje kolejne Produktów w partii, a plik jest podmieniany po ostatniej partii — uruchamiaj cron co kilka minut.

Platforma wymaga pola, którego moduł nie wysyła. Dodaj je w Dodatkowych tagach ze smart tagiem, np. <g:material>{feature:7}</g:material>.

Heureka: którego feedu potrzebuję? Feed Heureka.cz / Heureka.sk zawiera produkty. Sklepy w trybie PPC mogą dodać feed dostępności, który Heureka pobiera co 10 minut — ustaw w obu te same opcje kombinacji i kategorii, bo identyfikatory muszą się zgadzać. W feedzie dostępności Dni dostawy, Godzina graniczna zamówienia i Godzina dostawy dodają gwarantowany termin dostawy (tylko dni robocze). Kilku przewoźników: w Przewoźnicy → DELIVERY_ID wpisz pary, np. 12=PPL, 15=ZASILKOVNA (id przewoźnika z Wysyłka → Przewoźnicy).

Skroutz zgłasza moje linki lub zdjęcia. Skroutz przyjmuje tylko adresy https. Aby wysyłać rozmiary jako warianty, a każdy kolor jako osobny produkt, ustaw w zakładce Platforma Grupę atrybutów rozmiaru i Grupę atrybutów koloru (id z Katalog → Atrybuty i cechy).

eMAG prosi o zmapowanie pól. eMAG nie ma stałej struktury pliku: w panelu eMAG, w Products → Feeds, przypisz każdy element pliku do pola eMAG o tej samej nazwie, a swoje kategorie do kategorii eMAG.

Skąd biorą się dane GPSR (producent, osoba odpowiedzialna)? Z adresów Twoich marek lub dostawców (Katalog → Marki i dostawcy, adres marki albo dostawcy): wymagane są nazwa firmy (lub nazwa marki), ulica, kod pocztowy, miasto i kraj, a kontaktowy e-mail wpisz w polu Inne. Włącz Wysyłaj dane GPSR w zakładce Platforma feedu Ceneo lub Heureka i wybierz, czy producentem jest marka, czy dostawca. Dla producentów spoza UE wybierz Osobę odpowiedzialną w UE (na przykład dostawcę, który jest importerem). Ostrzeżenia bezpieczeństwa pochodzą z cechy produktu, którą wskazujesz jej id.

Jak wysłać produkty do ChatGPT? OpenAI przyjmuje feedy produktów tylko przez wysyłkę na serwer SFTP, który podaje po zatwierdzeniu sklepu. Dodaj feed ChatGPT i uzupełnij Wysyłaj przez SFTP w zakładce Ogólne: host, użytkownika, hasło, nazwę pliku, której oczekuje OpenAI (domyślnie products.csv.gz), oraz odcisk klucza serwera (MD5 albo SHA256:…, tak jak pokazuje ssh-keygen -l). Wysyłka zostanie przerwana, gdy serwer pokaże inny klucz. Po zmianie hosta, portu lub użytkownika wpisz hasło ponownie. Każde generowanie z crona wysyła wtedy cały katalog feedu; nieudana wysyłka jest widoczna w Diagnostyce przy przebiegu.

Używałem SEIGI PriceWars II. Czy mogę przenieść feedy? Tak: Katalog → PriceWars → Import z PriceWars II pokazuje feedy PriceWars II w sklepie. Import tworzy feedy z ich formatem, ustawieniami, które mają tu odpowiednik, i mapowaniem kategorii; PriceWars II nie jest zmieniany. Z opcją Nazwij nowe feedy pw2-N strona pokazuje reguły Apache i nginx, które przekierowują stare adresy (modules/pricewars2/service.php?id_xml=N) na nowe feedy, więc platformy dalej działają. Przeczytaj raport: są w nim ustawienia bez dokładnego odpowiednika — sprawdź je i wygeneruj każdy feed, zanim się przełączysz.

Jak dać hurtownikowi feed z jego cenami? Włącz Linki B2B w zakładce Język i waluta feedu, a potem w Diagnostyka → Linki B2B utwórz link dla grupy klientów (np. Hurt) albo dla jednego klienta (ID lub e-mail). Link ma podpis: feed trafia do niego z rabatami tej grupy i cenami specyficznymi tego klienta. Przy każdym linku widać ostatnie pobranie; Unieważnij wyłącza jeden link, Unieważnij wszystkie linki zmienia podpis feedu, więc żaden stary link już nie działa. Pracownik bez dostępu do Klientów widzi tylko ID klienta i tworzy linki po ID.

Okazje.info albo Zboží.cz nie pokazują mojej promocji. Obie platformy wymagają najniższej ceny z 30 dni przed promocją (dyrektywa Omnibus). Moduł zapisuje ceny przy każdym generowaniu feedu i przechowuje je przez 400 dni, więc zna tę cenę dopiero wtedy, gdy feed był generowany w tych 30 dniach — ustaw zadanie cron co najmniej raz dziennie. Do tego czasu promocja trafia do feedu jak zwykła cena. Historia cen jest prowadzona osobno dla sklepu, waluty, kraju i grupy klientów, a opcja jest w zakładce Ceny (Najniższa cena przed promocją, domyślnie włączona). Tag {omnibus_price} daje tę samą cenę dla dowolnej innej platformy.

Gdzie wpisać adres feedu Compari.ro? W Centrul de clienti Compari, w Datele magazinului → Sursa listei produselor; Árukereső.hu i Pazaruvaj.com mają to samo menu. Compari pobiera plik raz dziennie. Produkty na stanie mają czas dostawy 1 („In stoc” — tylko przy tej wartości działa koszyk Compari Marketplace), pozostałe czas dostawy produktów bez stanu z zakładki Platforma. W elektronice, IT, AGD i LEGO uzupełnij MPN produktów: Compari łączy oferty po kodzie producenta.

Adres /feed/….xml zwraca „nie znaleziono strony”. Włącz przyjazne adresy URL w Preferencje → Ruch albo użyj adresu z index.php i sprawdź, czy feed jest aktywny.

8. Aktualizacje i wsparcie

Aktualizacje są bezpłatne bez limitu czasu: nowe wersje pobierzesz z Moje konto → Historia zamówień w sklepie addonspresta.com i wgrasz jak nowy moduł. Feedy i ustawienia zostają. Nowe platformy dochodzą w bezpłatnych aktualizacjach.

Wsparcie obejmuje 12 miesięcy od zamówienia: napisz na mail@addonspresta.com lub przez formularz kontaktowy na addonspresta.com (od poniedziałku do piątku, 10:00–16:00; odpowiadamy zwykle w ciągu 2 dni roboczych). Podaj wersję PrestaShop, wersję modułu i zrzut ekranu strony Diagnostyka feedu.

Wróć do: Instrukcje modułów

Ładowanie...
Powrót do góry