{"id":5344,"date":"2025-09-16T11:57:00","date_gmt":"2025-09-16T09:57:00","guid":{"rendered":"https:\/\/cocos.codes\/?p=5344"},"modified":"2026-01-21T14:55:17","modified_gmt":"2026-01-21T13:55:17","slug":"prestashop-mise-a-jour-de-masse-des-produits","status":"publish","type":"post","link":"https:\/\/cocos.codes\/fr\/archiwa\/prestashop-masowa-aktualizacja-produktow\/","title":{"rendered":"PrestaShop Mise \u00e0 jour massive des produits 1.0"},"content":{"rendered":"<h6 data-rm-block-id=\"block-1\">Dokumentacja PrestaShop Masowa Aktualizacja Produkt\u00f3w<\/h6>Kompleksowa dokumentacja dla modu\u0142u masowej aktualizacji ilo\u015bci i cen produkt\u00f3w w <a href=\"https:\/\/addons.prestashop.com\/\" title=\"PrestaShop\" target=\"_blank\" rel=\"noopener\">PrestaShop<\/a> z obs\u0142ug\u0105 importu plik\u00f3w, zada\u0144 <a href=\"https:\/\/crontab.guru\/\" title=\"CRON\" target=\"_blank\" rel=\"noopener\">CRON<\/a> oraz aktualizacji wed\u0142ug kryteri\u00f3w (<a href=\"https:\/\/cocos.codes\/pl\/produkt\/masowa-aktualizacja-produktow\/\" title=\"Cc_ps_mass_update_product\">cc_ps_mass_update_product<\/a>).<br \/><br \/><strong>Spis tre\u015bci<\/strong><ol><li data-rm-block-id=\"block-2\">Wprowadzenie<\/li><li data-rm-block-id=\"block-3\">Instalacja<\/li><li data-rm-block-id=\"block-4\">Aktywacja licencji<\/li><li data-rm-block-id=\"block-5\">Panel zarz\u0105dzania<\/li><li data-rm-block-id=\"block-6\">Import plik\u00f3w<\/li><li data-rm-block-id=\"block-7\">Masowa aktualizacja wed\u0142ug kryteri\u00f3w<\/li><li data-rm-block-id=\"block-8\">Zadania CRON<\/li><li data-rm-block-id=\"block-9\">System logowania<\/li><li data-rm-block-id=\"block-10\">Typy identyfikator\u00f3w produkt\u00f3w<\/li><li data-rm-block-id=\"block-11\">Mapowanie kolumn<\/li><li data-rm-block-id=\"block-12\">Rozwi\u0105zywanie problem\u00f3w<\/li><li data-rm-block-id=\"block-13\">FAQ<\/li><\/ol><h6 data-rm-block-id=\"block-14\"><br \/>1. Wprowadzenie<\/h6>CC Masowy Aktualizator Produkt\u00f3w to zaawansowany modu\u0142 do masowej aktualizacji ilo\u015bci i cen produkt\u00f3w w PrestaShop. Modu\u0142 umo\u017cliwia import danych z plik\u00f3w CSV, Excel oraz XLS, aktualizacj\u0119 wed\u0142ug kryteri\u00f3w oraz automatyzacj\u0119 proces\u00f3w za pomoc\u0105 zada\u0144 CRON.<br \/><br \/>Modu\u0142 oferuje:<ul><li data-rm-block-id=\"block-15\">Import z plik\u00f3w CSV, XLS, XLSX z r\u00f3\u017cnych \u017ar\u00f3de\u0142 (upload, serwer, URL)<\/li><li data-rm-block-id=\"block-16\">Masow\u0105 aktualizacj\u0119 produkt\u00f3w wed\u0142ug kryteri\u00f3w (kategorie, cenowy zakres, producent)<\/li><li data-rm-block-id=\"block-17\">Obs\u0142ug\u0119 zada\u0144 CRON w dw\u00f3ch trybach (konfiguracja i parametry URL)<\/li><li data-rm-block-id=\"block-18\">Wsparcie r\u00f3\u017cnych typ\u00f3w identyfikator\u00f3w produkt\u00f3w (ID, EAN, UPC, ISBN, MPN, Reference, GTIN)<\/li><li data-rm-block-id=\"block-19\">Zaawansowany system logowania operacji<\/li><li data-rm-block-id=\"block-20\">Intuicyjne mapowanie kolumn z podgl\u0105dem pliku<\/li><li data-rm-block-id=\"block-21\">Walidacj\u0119 i kontrol\u0119 b\u0142\u0119d\u00f3w<\/li><li data-rm-block-id=\"block-22\">System zarz\u0105dzania licencjami<\/li><li data-rm-block-id=\"block-23\">Zapami\u0119tywanie ustawie\u0144 u\u017cytkownika<\/li><\/ul><h6 data-rm-block-id=\"block-24\"><br \/>2. Instalacja<\/h6><strong>Wymagania systemowe<\/strong><ul><li data-rm-block-id=\"block-25\">PrestaShop 1.7 lub nowszy<\/li><li data-rm-block-id=\"block-26\">PHP 7.1 lub nowszy<\/li><li data-rm-block-id=\"block-27\">Rozszerzenie PHP: PhpSpreadsheet (dla plik\u00f3w Excel)<\/li><li data-rm-block-id=\"block-28\">Minimalna ilo\u015b\u0107 pami\u0119ci: 128MB<\/li><li data-rm-block-id=\"block-29\">Uprawnienia do tworzenia katalog\u00f3w tymczasowych<\/li><\/ul><strong>Proces instalacji<\/strong><ol><li data-rm-block-id=\"block-30\">Pobierz plik ZIP modu\u0142u z oficjalnego sklepu <a class=\"button\" href=\"https:\/\/cocos.codes\" title=\"Cocos.codes\">cocos.codes<\/a><\/li><li data-rm-block-id=\"block-31\">Zaloguj si\u0119 do panelu administracyjnego PrestaShop<\/li><li data-rm-block-id=\"block-32\">Przejd\u017a do: Modu\u0142y \u2192 Mened\u017cer modu\u0142\u00f3w \u2192 Dodaj nowy modu\u0142<\/li><li data-rm-block-id=\"block-33\">Kliknij &#8222;Dodaj modu\u0142&#8221; i wybierz pobrany plik ZIP<\/li><li data-rm-block-id=\"block-34\">Po zako\u0144czeniu instalacji kliknij &#8222;Konfiguruj&#8221;<\/li><li data-rm-block-id=\"block-35\">Modu\u0142 automatycznie utworzy katalogi tymczasowe i zainstaluje wymagane ustawienia<\/li><\/ol><div class=\"cc-alert cc-alert-info\"><div class=\"cc-alert-title\" data-rm-block-id=\"block-36\">Info<\/div><div class=\"cc-alert-content\" data-rm-block-id=\"block-37\">Po instalacji modu\u0142 automatycznie utworzy zak\u0142adk\u0119 &#8222;Masowy aktualizator&#8221; w menu &#8222;Usprawnienia&#8221; panelu administracyjnego oraz niezb\u0119dne katalogi robocze w folderze modu\u0142u.<\/div><\/div><h6 data-rm-block-id=\"block-38\"><br \/>3. Aktywacja licencji<\/h6>Przed rozpocz\u0119ciem korzystania z pe\u0142nej funkcjonalno\u015bci modu\u0142u konieczna jest aktywacja licencji:<ol><li data-rm-block-id=\"block-39\">Po instalacji przejd\u017a do konfiguracji modu\u0142u<\/li><li data-rm-block-id=\"block-40\">Wybierz zak\u0142adk\u0119 &#8222;Licencja&#8221;<\/li><li data-rm-block-id=\"block-41\">Wprowad\u017a klucz licencyjny otrzymany po zakupie<\/li><li data-rm-block-id=\"block-42\">Kliknij &#8222;Aktywuj licencj\u0119&#8221;<\/li><li data-rm-block-id=\"block-43\">Po pomy\u015blnej aktywacji zobaczysz komunikat potwierdzaj\u0105cy i odblokowane zostan\u0105 wszystkie funkcje<\/li><\/ol><div class=\"cc-alert cc-alert-warning\"><div class=\"cc-alert-title\" data-rm-block-id=\"block-44\">Ostrze\u017cenie<\/div><div class=\"cc-alert-content\" data-rm-block-id=\"block-45\">Bez aktywnej licencji modu\u0142 b\u0119dzie dzia\u0142a\u0142 w trybie ograniczonym. W g\u00f3rnej cz\u0119\u015bci panelu administracyjnego b\u0119dzie wy\u015bwietlany komunikat o nieaktywnej licencji, a wszystkie operacje aktualizacji b\u0119d\u0105 zablokowane.<\/div><\/div><h6 data-rm-block-id=\"block-46\"><br \/>4. Panel zarz\u0105dzania<\/h6>Panel zarz\u0105dzania modu\u0142em dost\u0119pny jest w menu &#8222;Usprawnienia&#8221; \u2192 &#8222;Masowy aktualizator&#8221; i sk\u0142ada si\u0119 z nast\u0119puj\u0105cych zak\u0142adek:<br \/><br \/><strong>G\u0142\u00f3wne zak\u0142adki:<\/strong><ul><li data-rm-block-id=\"block-47\"><strong>Import pliku<\/strong> &#8211; import danych z plik\u00f3w CSV\/Excel<\/li><li data-rm-block-id=\"block-48\"><strong>Masowa aktualizacja<\/strong> &#8211; aktualizacja produkt\u00f3w wed\u0142ug kryteri\u00f3w<\/li><li data-rm-block-id=\"block-49\"><strong>Zadania CRON<\/strong> &#8211; konfiguracja automatyzacji<\/li><li data-rm-block-id=\"block-50\"><strong>Logi<\/strong> &#8211; podgl\u0105d i zarz\u0105dzanie logami operacji<\/li><\/ul><br \/><strong>Zak\u0142adki konfiguracyjne modu\u0142u:<\/strong><ul><li data-rm-block-id=\"block-51\"><strong>Ustawienia<\/strong> &#8211; konfiguracja og\u00f3lna modu\u0142u<\/li><li data-rm-block-id=\"block-52\"><strong>Dokumentacja<\/strong> &#8211; link do instrukcji online<\/li><li data-rm-block-id=\"block-53\"><strong>Wsparcie<\/strong> &#8211; dost\u0119p do pomocy technicznej<\/li><li data-rm-block-id=\"block-54\"><strong>Wtyczki<\/strong> &#8211; informacje o dodatkowych rozszerzeniach<\/li><li data-rm-block-id=\"block-55\"><strong>Licencja<\/strong> &#8211; zarz\u0105dzanie licencj\u0105 modu\u0142u<\/li><\/ul><div class=\"cc-alert cc-alert-tip\"><div class=\"cc-alert-title\" data-rm-block-id=\"block-56\">Wskaz\u00f3wka<\/div><div class=\"cc-alert-content\" data-rm-block-id=\"block-57\">Modu\u0142 automatycznie zapami\u0119tuje ustawienia u\u017cytkownika (mapowania kolumn, \u017ar\u00f3d\u0142a plik\u00f3w, typu identyfikator\u00f3w) w localStorage przegl\u0105darki, co znacznie przyspiesza prac\u0119 przy powtarzaj\u0105cych si\u0119 operacjach.<\/div><\/div><h6 data-rm-block-id=\"block-58\"><br \/>5. Import plik\u00f3w<\/h6>Zak\u0142adka &#8222;Import pliku&#8221; umo\u017cliwia import danych produktowych z r\u00f3\u017cnych \u017ar\u00f3de\u0142 i format\u00f3w.<br \/><br \/><strong>Obs\u0142ugiwane \u017ar\u00f3d\u0142a plik\u00f3w:<\/strong><ul><li data-rm-block-id=\"block-59\"><strong>Upload pliku<\/strong> &#8211; przes\u0142anie pliku bezpo\u015brednio z komputera<\/li><li data-rm-block-id=\"block-60\"><strong>\u015acie\u017cka na serwerze<\/strong> &#8211; wskazanie pliku znajduj\u0105cego si\u0119 na serwerze<\/li><li data-rm-block-id=\"block-61\"><strong>URL do pliku<\/strong> &#8211; pobranie pliku z zewn\u0119trznego adresu URL<\/li><\/ul><strong>Obs\u0142ugiwane formaty:<\/strong><ul><li data-rm-block-id=\"block-62\">CSV (z automatycznym wykrywaniem separatora: , ; | tab)<\/li><li data-rm-block-id=\"block-63\">XLS (starsze pliki Excel)<\/li><li data-rm-block-id=\"block-64\">XLSX (nowsze pliki Excel)<\/li><\/ul><strong>Proces importu:<\/strong><ol><li data-rm-block-id=\"block-65\">Wybierz \u017ar\u00f3d\u0142o pliku<\/li><li data-rm-block-id=\"block-66\">Wska\u017c plik (upload, \u015bcie\u017cka lub URL)<\/li><li data-rm-block-id=\"block-67\">Wybierz typ identyfikatora produktu<\/li><li data-rm-block-id=\"block-68\">Okre\u015bl, czy plik zawiera nag\u0142\u00f3wki<\/li><li data-rm-block-id=\"block-69\">Kliknij &#8222;Podgl\u0105d i mapowanie&#8221;<\/li><li data-rm-block-id=\"block-70\">Zmapuj kolumny z danymi (identyfikator, ilo\u015b\u0107, cena)<\/li><li data-rm-block-id=\"block-71\">Kliknij &#8222;Wykonaj import&#8221;<\/li><\/ol><strong>Walidacja plik\u00f3w:<\/strong><ul><li data-rm-block-id=\"block-72\">Maksymalny rozmiar pliku: 10MB (konfigurowalny)<\/li><li data-rm-block-id=\"block-73\">Sprawdzanie formatu i integralno\u015bci pliku<\/li><li data-rm-block-id=\"block-74\">Walidacja struktury danych<\/li><li data-rm-block-id=\"block-75\">Kontrola dost\u0119pno\u015bci plik\u00f3w zewn\u0119trznych<\/li><\/ul><div class=\"cc-alert cc-alert-note\"><div class=\"cc-alert-title\" data-rm-block-id=\"block-76\">Notatka<\/div><div class=\"cc-alert-content\" data-rm-block-id=\"block-77\">Modu\u0142 automatycznie wykrywa separator w plikach CSV i obs\u0142uguje r\u00f3\u017cne kodowania znak\u00f3w. Pliki tymczasowe s\u0105 automatycznie usuwane po zako\u0144czeniu operacji importu.<\/div><\/div><h6 data-rm-block-id=\"block-78\"><br \/>6. Masowa aktualizacja wed\u0142ug kryteri\u00f3w<\/h6>Zak\u0142adka &#8222;Masowa aktualizacja&#8221; pozwala na aktualizacj\u0119 produkt\u00f3w na podstawie okre\u015blonych kryteri\u00f3w bez konieczno\u015bci importu pliku.<br \/><br \/><strong>Dost\u0119pne kryteria selekcji:<\/strong><ul><li data-rm-block-id=\"block-79\"><strong>Kategorie<\/strong> &#8211; wyb\u00f3r produkt\u00f3w z okre\u015blonych kategorii<\/li><li data-rm-block-id=\"block-80\"><strong>Zakres ID produkt\u00f3w<\/strong> &#8211; od okre\u015blonego ID do okre\u015blonego ID<\/li><li data-rm-block-id=\"block-81\"><strong>Zakres cenowy<\/strong> &#8211; produkty o cenach w okre\u015blonym przedziale<\/li><li data-rm-block-id=\"block-82\"><strong>Producent<\/strong> &#8211; produkty okre\u015blonego producenta<\/li><li data-rm-block-id=\"block-83\"><strong>Status<\/strong> &#8211; aktywne lub nieaktywne produkty<\/li><\/ul><strong>Mo\u017cliwe aktualizacje:<\/strong><ul><li data-rm-block-id=\"block-84\"><strong>Nowa ilo\u015b\u0107<\/strong> &#8211; ustawienie okre\u015blonej ilo\u015bci dla wszystkich wybranych produkt\u00f3w<\/li><li data-rm-block-id=\"block-85\"><strong>Nowa cena<\/strong> &#8211; ustawienie okre\u015blonej ceny dla wszystkich wybranych produkt\u00f3w<\/li><li data-rm-block-id=\"block-86\">Mo\u017cna aktualizowa\u0107 jednocze\u015bnie ilo\u015b\u0107 i cen\u0119 lub tylko jeden z parametr\u00f3w<\/li><\/ul><strong>Proces aktualizacji wed\u0142ug kryteri\u00f3w:<\/strong><ol><li data-rm-block-id=\"block-87\">Wybierz kryteria selekcji produkt\u00f3w<\/li><li data-rm-block-id=\"block-88\">Okre\u015bl nowe warto\u015bci (ilo\u015b\u0107 i\/lub cena)<\/li><li data-rm-block-id=\"block-89\">Kliknij &#8222;Aktualizuj produkty&#8221;<\/li><li data-rm-block-id=\"block-90\">System poka\u017ce liczb\u0119 zaktualizowanych produkt\u00f3w i ewentualne b\u0142\u0119dy<\/li><\/ol><div class=\"cc-alert cc-alert-warning\"><div class=\"cc-alert-title\" data-rm-block-id=\"block-91\">Ostrze\u017cenie<\/div><div class=\"cc-alert-content\" data-rm-block-id=\"block-92\">Masowa aktualizacja wed\u0142ug kryteri\u00f3w zmienia dane wszystkich produkt\u00f3w spe\u0142niaj\u0105cych okre\u015blone warunki. Zalecamy wykonanie kopii zapasowej bazy danych przed przeprowadzeniem masowych operacji.<\/div><\/div><h6 data-rm-block-id=\"block-93\"><br \/>7. Zadania CRON<\/h6>Zak\u0142adka &#8222;Zadania CRON&#8221; umo\u017cliwia konfiguracj\u0119 automatycznych zada\u0144 aktualizacji produkt\u00f3w. Modu\u0142 oferuje dwa tryby pracy z CRON-em:<br \/><br \/><strong>Tryb konfiguracji (jeden szablon)<\/strong><ul><li data-rm-block-id=\"block-94\">Zapisanie ustawie\u0144 w bazie danych<\/li><li data-rm-block-id=\"block-95\">Jedno zadanie CRON dla wszystkich automatycznych aktualizacji<\/li><li data-rm-block-id=\"block-96\">\u0141atwa konfiguracja przez interfejs webowy<\/li><li data-rm-block-id=\"block-97\">URL zadania: <span class=\"cc-highlight\">\/modules\/cc_ps_mass_update_product\/controllers\/front\/cron.php?token=&#8230;<\/span><\/li><\/ul><strong>Tryb parametr\u00f3w URL (wiele zada\u0144)<\/strong><ul><li data-rm-block-id=\"block-98\">Przekazywanie wszystkich parametr\u00f3w bezpo\u015brednio w URL<\/li><li data-rm-block-id=\"block-99\">Mo\u017cliwo\u015b\u0107 tworzenia wielu r\u00f3\u017cnych zada\u0144 CRON<\/li><li data-rm-block-id=\"block-100\">Elastyczno\u015b\u0107 konfiguracji dla zaawansowanych u\u017cytkownik\u00f3w<\/li><li data-rm-block-id=\"block-101\">Ka\u017cde zadanie mo\u017ce mie\u0107 inne ustawienia<\/li><\/ul><strong>Konfiguracja trybu konfiguracji:<\/strong><ol><li data-rm-block-id=\"block-102\">W\u0142\u0105cz &#8222;Zadania CRON&#8221;<\/li><li data-rm-block-id=\"block-103\">Wybierz \u017ar\u00f3d\u0142o pliku (serwer lub URL)<\/li><li data-rm-block-id=\"block-104\">Wska\u017c \u015bcie\u017ck\u0119 lub URL do pliku<\/li><li data-rm-block-id=\"block-105\">Skonfiguruj typ identyfikatora i mapowanie kolumn<\/li><li data-rm-block-id=\"block-106\">Zapisz ustawienia<\/li><li data-rm-block-id=\"block-107\">Dodaj URL do crontab serwera<\/li><\/ol><strong>Parametry dla trybu URL:<\/strong><ul><li data-rm-block-id=\"block-108\"><span class=\"cc-highlight\">token<\/span> &#8211; token bezpiecze\u0144stwa (wymagany)<\/li><li data-rm-block-id=\"block-109\"><span class=\"cc-highlight\">source<\/span> &#8211; \u017ar\u00f3d\u0142o pliku (server|url)<\/li><li data-rm-block-id=\"block-110\"><span class=\"cc-highlight\">file_path<\/span> &#8211; \u015bcie\u017cka do pliku na serwerze<\/li><li data-rm-block-id=\"block-111\"><span class=\"cc-highlight\">file_url<\/span> &#8211; URL do pliku<\/li><li data-rm-block-id=\"block-112\"><span class=\"cc-highlight\">identifier_type<\/span> &#8211; typ identyfikatora produktu<\/li><li data-rm-block-id=\"block-113\"><span class=\"cc-highlight\">has_header<\/span> &#8211; czy plik zawiera nag\u0142\u00f3wki (1|0)<\/li><li data-rm-block-id=\"block-114\"><span class=\"cc-highlight\">mapping_identifier<\/span> &#8211; numer kolumny z identyfikatorem<\/li><li data-rm-block-id=\"block-115\"><span class=\"cc-highlight\">mapping_quantity<\/span> &#8211; numer kolumny z ilo\u015bci\u0105<\/li><li data-rm-block-id=\"block-116\"><span class=\"cc-highlight\">mapping_price<\/span> &#8211; numer kolumny z cen\u0105<\/li><\/ul><strong>Przyk\u0142ady zada\u0144 CRON:<\/strong><div class=\"cc-code-quote\"><pre data-rm-block-id=\"block-117\"><code># Codziennie o 2:00 - tryb konfiguracji\r\n0 2 * * * \/usr\/bin\/curl \"https:\/\/sklep.pl\/modules\/cc_ps_mass_update_product\/controllers\/front\/cron.php?token=abc123\"\r\nCodziennie o 3:00 - aktualizacja ilo\u015bci z serwera\r\n0 3 * * * \/usr\/bin\/curl \"https:\/\/sklep.pl\/modules\/cc_ps_mass_update_product\/controllers\/front\/cron.php?token=abc123&amp;source=server&amp;file_path=\/var\/www\/files\/quantities.csv&amp;identifier_type=ean&amp;has_header=1&amp;mapping_identifier=0&amp;mapping_quantity=1\"\r\nCodziennie o 4:00 - aktualizacja cen z URL\r\n0 4 * * * \/usr\/bin\/curl \"https:\/\/sklep.pl\/modules\/cc_ps_mass_update_product\/controllers\/front\/cron.php?token=abc123&amp;source=url&amp;file_url=https:\/\/dostawca.pl\/prices.csv&amp;identifier_type=reference&amp;has_header=1&amp;mapping_identifier=0&amp;mapping_price=2\"<\/code><\/pre><\/div><div class=\"cc-alert cc-alert-info\"><div class=\"cc-alert-title\" data-rm-block-id=\"block-118\">Info<\/div><div class=\"cc-alert-content\" data-rm-block-id=\"block-119\">Zadania CRON zwracaj\u0105 odpowied\u017a w formacie JSON z informacjami o powodzeniu operacji, liczbie zaktualizowanych produkt\u00f3w oraz czasie wykonania. Wszystkie operacje s\u0105 logowane w systemie log\u00f3w modu\u0142u.<\/div><\/div><h6 data-rm-block-id=\"block-120\"><br \/>8. System logowania<\/h6>Zak\u0142adka &#8222;Logi&#8221; udost\u0119pnia zaawansowany system \u015bledzenia wszystkich operacji modu\u0142u.<br \/><br \/><strong>Funkcje systemu logowania:<\/strong><ul><li data-rm-block-id=\"block-121\">Automatyczne logowanie wszystkich operacji aktualizacji<\/li><li data-rm-block-id=\"block-122\">R\u00f3\u017cne poziomy logowania (INFO, WARNING, ERROR)<\/li><li data-rm-block-id=\"block-123\">Oddzielne pliki log\u00f3w dla ka\u017cdego dnia<\/li><li data-rm-block-id=\"block-124\">Podgl\u0105d log\u00f3w bezpo\u015brednio w panelu administracyjnym<\/li><li data-rm-block-id=\"block-125\">Mo\u017cliwo\u015b\u0107 pobierania pe\u0142nych plik\u00f3w log\u00f3w<\/li><li data-rm-block-id=\"block-126\">Automatyczne czyszczenie starych log\u00f3w<\/li><\/ul><strong>Zarz\u0105dzanie logami:<\/strong><ul><li data-rm-block-id=\"block-127\"><strong>Status logowania<\/strong> &#8211; w\u0142\u0105czenie\/wy\u0142\u0105czenie zapisywania log\u00f3w<\/li><li data-rm-block-id=\"block-128\"><strong>Lista plik\u00f3w log\u00f3w<\/strong> &#8211; przegl\u0105d wszystkich plik\u00f3w z datami i rozmiarami<\/li><li data-rm-block-id=\"block-129\"><strong>Podgl\u0105d log\u00f3w<\/strong> &#8211; wy\u015bwietlanie ostatnich 200 linii z kolorowaniem wed\u0142ug poziomu<\/li><li data-rm-block-id=\"block-130\"><strong>Pobieranie log\u00f3w<\/strong> &#8211; download pe\u0142nych plik\u00f3w log\u00f3w<\/li><li data-rm-block-id=\"block-131\"><strong>Czyszczenie starych log\u00f3w<\/strong> &#8211; usuwanie log\u00f3w starszych ni\u017c 30 dni<\/li><\/ul><strong>Format log\u00f3w:<\/strong><div class=\"cc-code-quote\"><pre data-rm-block-id=\"block-132\"><code>[2025-01-15 14:30:22] [INFO] Rozpoczynam masow\u0105 aktualizacj\u0119 z pliku: \/var\/www\/files\/products.csv\r\n[2025-01-15 14:30:23] [INFO] Zaktualizowano ilo\u015b\u0107 produktu: ID 123, Ilo\u015b\u0107: 50\r\n[2025-01-15 14:30:23] [WARNING] Produkt nie znaleziony po kodzie EAN: 1234567890123\r\n[2025-01-15 14:30:25] [INFO] Masowa aktualizacja zako\u0144czona | Context: {\"success\":45,\"failed\":2}<\/code><\/pre><\/div><div class=\"cc-alert cc-alert-tip\"><div class=\"cc-alert-title\" data-rm-block-id=\"block-133\">Wskaz\u00f3wka<\/div><div class=\"cc-alert-content\" data-rm-block-id=\"block-134\">Logi s\u0105 zapisywane zar\u00f3wno w systemie logowania modu\u0142u, jak i w standardowych logach PrestaShop. Dzi\u0119ki temu mo\u017cna \u015bledzi\u0107 operacje r\u00f3wnie\u017c poprzez standardowe narz\u0119dzia do analizy log\u00f3w serwera.<\/div><\/div><h6 data-rm-block-id=\"block-135\"><br \/>9. Typy identyfikator\u00f3w produkt\u00f3w<\/h6>Modu\u0142 obs\u0142uguje r\u00f3\u017cne sposoby identyfikacji produkt\u00f3w, co zapewnia maksymaln\u0105 elastyczno\u015b\u0107 przy imporcie danych.<br \/><br \/><strong>Obs\u0142ugiwane typy identyfikator\u00f3w:<\/strong><table class=\"woocommerce-table shop_table\"><thead><tr><td data-rm-block-id=\"block-136\"><strong>Typ<\/strong><\/td><td data-rm-block-id=\"block-137\"><strong>Opis<\/strong><\/td><td data-rm-block-id=\"block-138\"><strong>Przyk\u0142ad<\/strong><\/td><\/tr><\/thead><tbody><tr><td data-rm-block-id=\"block-139\">ID produktu<\/td><td data-rm-block-id=\"block-140\">Wewn\u0119trzne ID PrestaShop<\/td><td data-rm-block-id=\"block-141\">123, 456, 789<\/td><\/tr><tr><td data-rm-block-id=\"block-142\">Reference (SKU)<\/td><td data-rm-block-id=\"block-143\">Kod produktu\/SKU<\/td><td data-rm-block-id=\"block-144\">PROD-001, ABC-123<\/td><\/tr><tr><td data-rm-block-id=\"block-145\">EAN<\/td><td data-rm-block-id=\"block-146\">Europejski kod produktu (8-13 cyfr)<\/td><td data-rm-block-id=\"block-147\">1234567890123<\/td><\/tr><tr><td data-rm-block-id=\"block-148\">UPC<\/td><td data-rm-block-id=\"block-149\">Uniwersalny kod produktu<\/td><td data-rm-block-id=\"block-150\">123456789012<\/td><\/tr><tr><td data-rm-block-id=\"block-151\">ISBN<\/td><td data-rm-block-id=\"block-152\">Numer ksi\u0105\u017cki<\/td><td data-rm-block-id=\"block-153\">978-3-16-148410-0<\/td><\/tr><tr><td data-rm-block-id=\"block-154\">MPN<\/td><td data-rm-block-id=\"block-155\">Numer cz\u0119\u015bci producenta<\/td><td data-rm-block-id=\"block-156\">AB-12345<\/td><\/tr><tr><td data-rm-block-id=\"block-157\">INDEKS<\/td><td data-rm-block-id=\"block-158\">Indeks produktu (u\u017cywa pola Reference)<\/td><td data-rm-block-id=\"block-159\">IND-001<\/td><\/tr><tr><td data-rm-block-id=\"block-160\">GTIN<\/td><td data-rm-block-id=\"block-161\">Globalny kod handlowy (sprawdza EAN, UPC, ISBN)<\/td><td data-rm-block-id=\"block-162\">Dowolny z powy\u017cszych<\/td><\/tr><\/tbody><\/table><br \/><strong>Wyb\u00f3r odpowiedniego identyfikatora:<\/strong><ul><li data-rm-block-id=\"block-163\"><strong>ID produktu<\/strong> &#8211; najszybszy, ale wymagaj\u0105cy znajomo\u015bci wewn\u0119trznych ID<\/li><li data-rm-block-id=\"block-164\"><strong>Reference\/SKU<\/strong> &#8211; najcz\u0119\u015bciej u\u017cywany w sklepach internetowych<\/li><li data-rm-block-id=\"block-165\"><strong>EAN<\/strong> &#8211; standard dla produkt\u00f3w fizycznych<\/li><li data-rm-block-id=\"block-166\"><strong>GTIN<\/strong> &#8211; uniwersalny, sprawdza wszystkie mo\u017cliwe kody kreskowe<\/li><\/ul><div class=\"cc-alert cc-alert-note\"><div class=\"cc-alert-title\" data-rm-block-id=\"block-167\">Notatka<\/div><div class=\"cc-alert-content\" data-rm-block-id=\"block-168\">Wyb\u00f3r odpowiedniego typu identyfikatora jest kluczowy dla powodzenia importu. Modu\u0142 automatycznie waliduje formaty identyfikator\u00f3w i informuje o b\u0142\u0119dnych warto\u015bciach w logach.<\/div><\/div><h6 data-rm-block-id=\"block-169\"><br \/>10. Mapowanie kolumn<\/h6>System mapowania kolumn pozwala na elastyczne przypisanie danych z pliku do odpowiednich p\u00f3l produktu.<br \/><br \/><strong>Proces mapowania:<\/strong><ol><li data-rm-block-id=\"block-170\">Po wybraniu pliku system pokazuje podgl\u0105d pierwszych 5 wierszy<\/li><li data-rm-block-id=\"block-171\">U\u017cytkownik wskazuje, kt\u00f3ra kolumna zawiera identyfikator produktu<\/li><li data-rm-block-id=\"block-172\">Opcjonalnie wskazuje kolumny z ilo\u015bci\u0105 i\/lub cen\u0105<\/li><li data-rm-block-id=\"block-173\">System waliduje poprawno\u015b\u0107 mapowania<\/li><li data-rm-block-id=\"block-174\">Po zatwierdzeniu nast\u0119puje import danych<\/li><\/ol><strong>Wymagania mapowania:<\/strong><ul><li data-rm-block-id=\"block-175\"><strong>Kolumna identyfikatora<\/strong> &#8211; zawsze wymagana<\/li><li data-rm-block-id=\"block-176\"><strong>Kolumna ilo\u015bci<\/strong> &#8211; opcjonalna (liczby ca\u0142kowite \u2265 0)<\/li><li data-rm-block-id=\"block-177\"><strong>Kolumna ceny<\/strong> &#8211; opcjonalna (liczby rzeczywiste \u2265 0, max 2 miejsca po przecinku)<\/li><li data-rm-block-id=\"block-178\">Minimum jedna z kolumn (ilo\u015b\u0107 lub cena) musi by\u0107 zmapowana<\/li><li data-rm-block-id=\"block-179\">Kolumny nie mog\u0105 by\u0107 identyczne<\/li><\/ul><strong>Inteligentne zapami\u0119tywanie:<\/strong><ul><li data-rm-block-id=\"block-180\">Modu\u0142 automatycznie zapami\u0119tuje ostatnie mapowania w localStorage<\/li><li data-rm-block-id=\"block-181\">Mapowania s\u0105 przywracane dla plik\u00f3w o identycznej strukturze<\/li><li data-rm-block-id=\"block-182\">Ka\u017cde mapowanie zawiera informacj\u0119 o typie identyfikatora i nag\u0142\u00f3wkach<\/li><li data-rm-block-id=\"block-183\">Mapowania s\u0105 wa\u017cne przez 7 dni<\/li><li data-rm-block-id=\"block-184\">Mo\u017cliwo\u015b\u0107 r\u0119cznego wyczyszczenia zapami\u0119tanych ustawie\u0144<\/li><\/ul><strong>Przyk\u0142ad pliku CSV:<\/strong><div class=\"cc-code-quote\"><pre data-rm-block-id=\"block-185\"><code>ean,nazwa,ilosc,cena\r\n1234567890123,\"Produkt A\",50,19.99\r\n1234567890124,\"Produkt B\",30,29.99\r\n1234567890125,\"Produkt C\",0,39.99<\/code><\/pre><\/div>Mapowanie: kolumna 0 (ean) \u2192 identyfikator, kolumna 2 (ilosc) \u2192 ilo\u015b\u0107, kolumna 3 (cena) \u2192 cena<div class=\"cc-alert cc-alert-success\"><div class=\"cc-alert-title\" data-rm-block-id=\"block-186\">Sukces<\/div><div class=\"cc-alert-content\" data-rm-block-id=\"block-187\">Automatyczne zapami\u0119tywanie mapowa\u0144 znacznie przyspiesza prac\u0119 przy regularnych importach. System rozpoznaje struktur\u0119 pliku i przywraca odpowiednie ustawienia.<\/div><\/div><h6 data-rm-block-id=\"block-188\"><br \/>11. Rozwi\u0105zywanie problem\u00f3w<\/h6><strong>Import pliku nie dzia\u0142a<\/strong><ol><li data-rm-block-id=\"block-189\">Sprawd\u017a, czy modu\u0142 ma aktywn\u0105 licencj\u0119<\/li><li data-rm-block-id=\"block-190\">Upewnij si\u0119, \u017ce plik ma obs\u0142ugiwany format (CSV, XLS, XLSX)<\/li><li data-rm-block-id=\"block-191\">Sprawd\u017a rozmiar pliku (domy\u015blnie max 10MB)<\/li><li data-rm-block-id=\"block-192\">Dla plik\u00f3w z serwera sprawd\u017a uprawnienia do odczytu<\/li><li data-rm-block-id=\"block-193\">Dla URL sprawd\u017a dost\u0119pno\u015b\u0107 i poprawno\u015b\u0107 adresu<\/li><li data-rm-block-id=\"block-194\">Sprawd\u017a logi modu\u0142u w poszukiwaniu szczeg\u00f3\u0142\u00f3w b\u0142\u0119du<\/li><\/ol><strong>Produkty nie s\u0105 aktualizowane<\/strong><ol><li data-rm-block-id=\"block-195\">Sprawd\u017a poprawno\u015b\u0107 mapowania kolumn<\/li><li data-rm-block-id=\"block-196\">Zweryfikuj typ identyfikatora produktu<\/li><li data-rm-block-id=\"block-197\">Upewnij si\u0119, \u017ce identyfikatory w pliku s\u0105 poprawne<\/li><li data-rm-block-id=\"block-198\">Sprawd\u017a, czy produkty istniej\u0105 w sklepie<\/li><li data-rm-block-id=\"block-199\">Zweryfikuj format danych (liczby dla ilo\u015bci i cen)<\/li><li data-rm-block-id=\"block-200\">Przejrzyj logi w poszukiwaniu ostrze\u017ce\u0144<\/li><\/ol><strong>Zadania CRON nie dzia\u0142aj\u0105<\/strong><ol><li data-rm-block-id=\"block-201\">Sprawd\u017a poprawno\u015b\u0107 tokena bezpiecze\u0144stwa<\/li><li data-rm-block-id=\"block-202\">Upewnij si\u0119, \u017ce cron jest w\u0142\u0105czony w konfiguracji (tryb konfiguracji)<\/li><li data-rm-block-id=\"block-203\">Zweryfikuj dost\u0119pno\u015b\u0107 pliku \u017ar\u00f3d\u0142owego<\/li><li data-rm-block-id=\"block-204\">Sprawd\u017a logi zada\u0144 CRON na serwerze<\/li><li data-rm-block-id=\"block-205\">Upewnij si\u0119, \u017ce URL zadania CRON jest poprawny<\/li><li data-rm-block-id=\"block-206\">Sprawd\u017a, czy serwer mo\u017ce wykonywa\u0107 zapytania HTTP<\/li><\/ol><strong>Problemy z wydajno\u015bci\u0105<\/strong><ol><li data-rm-block-id=\"block-207\">Zmniejsz rozmiar importowanych plik\u00f3w<\/li><li data-rm-block-id=\"block-208\">Zwi\u0119ksz limit czasu wykonania PHP (max_execution_time)<\/li><li data-rm-block-id=\"block-209\">Zwi\u0119ksz limit pami\u0119ci PHP (memory_limit)<\/li><li data-rm-block-id=\"block-210\">Wy\u0142\u0105cz logowanie dla bardzo du\u017cych import\u00f3w<\/li><li data-rm-block-id=\"block-211\">U\u017cyj zada\u0144 CRON zamiast importu przez przegl\u0105dark\u0119<\/li><li data-rm-block-id=\"block-212\">Podziel du\u017ce pliki na mniejsze cz\u0119\u015bci<\/li><\/ol><div class=\"cc-alert cc-alert-error\"><div class=\"cc-alert-title\" data-rm-block-id=\"block-213\">B\u0142\u0105d<\/div><div class=\"cc-alert-content\" data-rm-block-id=\"block-214\">Je\u015bli nadal napotykasz problemy, sprawd\u017a logi PHP serwera oraz logi modu\u0142u. W przypadku b\u0142\u0119d\u00f3w krytycznych skontaktuj si\u0119 z wsparciem COCOS poprzez stron\u0119 <a class=\"button\" href=\"https:\/\/cocos.codes\/wsparcie\/\" title=\"Cocos.codes\/wsparcie\">cocos.codes\/wsparcie<\/a>.<\/div><\/div><h6 data-rm-block-id=\"block-215\"><br \/>12. FAQ<\/h6><strong>Jakie s\u0105 limity dotycz\u0105ce rozmiaru plik\u00f3w?<\/strong><br \/>Domy\u015blny limit to 10MB, ale mo\u017cna go zwi\u0119kszy\u0107 w ustawieniach modu\u0142u. Pami\u0119taj o limitach PHP (upload_max_filesize, post_max_size).<br \/><br \/><strong>Czy mog\u0119 aktualizowa\u0107 tylko ceny bez zmiany ilo\u015bci?<\/strong><br \/>Tak, mo\u017cna aktualizowa\u0107 tylko ceny lub tylko ilo\u015bci. W mapowaniu wystarczy wskaza\u0107 odpowiedni\u0105 kolumn\u0119, a drug\u0105 pozostawi\u0107 pust\u0105.<br \/><br \/><strong>Czy modu\u0142 obs\u0142uguje produkty z atrybutami?<\/strong><br \/>Modu\u0142 aktualizuje produkty bazowe. Dla produkt\u00f3w z atrybutami aktualizuje si\u0119 ilo\u015b\u0107 i cen\u0119 produktu g\u0142\u00f3wnego.<br \/><br \/><strong>Jak cz\u0119sto mog\u0119 uruchamia\u0107 zadania CRON?<\/strong><br \/>Cz\u0119stotliwo\u015b\u0107 zale\u017cy od wielko\u015bci plik\u00f3w i zasob\u00f3w serwera. Zalecamy nie cz\u0119\u015bciej ni\u017c co 15 minut dla du\u017cych plik\u00f3w.<br \/><br \/><strong>Czy mog\u0119 u\u017cywa\u0107 modu\u0142u na wielu sklepach?<\/strong><br \/>Licencja obowi\u0105zuje dla jednej domeny. Dla ka\u017cdego sklepu potrzebna jest oddzielna licencja.<br \/><br \/><strong>Co si\u0119 stanie z produktami, kt\u00f3re nie zostan\u0105 znalezione?<\/strong><br \/>Produkty nieznalezione s\u0105 pomijane i rejestrowane w logach jako ostrze\u017cenia. Nie wp\u0142ywa to na pozosta\u0142e produkty w imporcie.<br \/><br \/><strong>Czy mog\u0119 przywr\u00f3ci\u0107 poprzednie warto\u015bci po aktualizacji?<\/strong><br \/>Modu\u0142 nie tworzy automatycznie kopii zapasowych. Zalecamy wykonanie kopii zapasowej bazy danych przed masowymi operacjami.<br \/><br \/><strong>Jak mog\u0119 zautomatyzowa\u0107 import z FTP?<\/strong><br \/>U\u017cyj zada\u0144 CRON z trybem &#8222;\u015bcie\u017cka na serwerze&#8221;, wskazuj\u0105c na katalog, do kt\u00f3rego pliki s\u0105 przesy\u0142ane przez FTP.<br \/><br \/><strong>Czy modu\u0142 loguje wszystkie operacje?<\/strong><br \/>Tak, wszystkie operacje s\u0105 logowane z mo\u017cliwo\u015bci\u0105 w\u0142\u0105czenia\/wy\u0142\u0105czenia tej funkcji w ustawieniach. Logi zawieraj\u0105 szczeg\u00f3\u0142owe informacje o powodzeniu i b\u0142\u0119dach.<br \/><br \/><strong>Jakie kodowania znak\u00f3w s\u0105 obs\u0142ugiwane?<\/strong><br \/>Modu\u0142 automatycznie wykrywa i obs\u0142uguje najpopularniejsze kodowania, w tym UTF-8, ISO-8859-1, Windows-1250.","protected":false},"excerpt":{"rendered":"Documentation sur la mise \u00e0 jour en masse des produits Presta Shop Documentation compl\u00e8te pour le module de mise \u00e0 jour en masse des quantit\u00e9s et des prix des produits Presta Shop avec le support de l'importation de fichiers, des t\u00e2ches CRON et de la mise \u00e0 jour par crit\u00e8res (cc_ps_mass_update_product).","protected":false},"author":1,"featured_media":5352,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"powered_cache_disable_cache":false,"powered_cache_disable_css_optimization":false,"powered_cache_disable_js_optimization":false,"footnotes":""},"categories":[236],"tags":[197,270,298,143],"class_list":["post-5344","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dokumentacje-prestashop","tag-dokumentacja","tag-masowa-zmiana-cen","tag-masowa-zmiana-ilosci","tag-prestashop"],"_links":{"self":[{"href":"https:\/\/cocos.codes\/fr\/wp-json\/wp\/v2\/posts\/5344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cocos.codes\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cocos.codes\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cocos.codes\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cocos.codes\/fr\/wp-json\/wp\/v2\/comments?post=5344"}],"version-history":[{"count":0,"href":"https:\/\/cocos.codes\/fr\/wp-json\/wp\/v2\/posts\/5344\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cocos.codes\/fr\/wp-json\/wp\/v2\/media\/5352"}],"wp:attachment":[{"href":"https:\/\/cocos.codes\/fr\/wp-json\/wp\/v2\/media?parent=5344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cocos.codes\/fr\/wp-json\/wp\/v2\/categories?post=5344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cocos.codes\/fr\/wp-json\/wp\/v2\/tags?post=5344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}