{"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":"actualizacion-masiva-de-productos-prestashop","status":"publish","type":"post","link":"https:\/\/cocos.codes\/es\/archiwa\/prestashop-masowa-aktualizacja-produktow\/","title":{"rendered":"PrestaShop Actualizaci\u00f3n masiva de productos 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":"Documentaci\u00f3n de actualizaci\u00f3n masiva de productos de Presta Shop Documentaci\u00f3n completa del m\u00f3dulo de actualizaci\u00f3n masiva de cantidades y precios de productos de Presta Shop con soporte para importaci\u00f3n de archivos, tareas CRON y actualizaci\u00f3n por criterios (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\/es\/wp-json\/wp\/v2\/posts\/5344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cocos.codes\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cocos.codes\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cocos.codes\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cocos.codes\/es\/wp-json\/wp\/v2\/comments?post=5344"}],"version-history":[{"count":0,"href":"https:\/\/cocos.codes\/es\/wp-json\/wp\/v2\/posts\/5344\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cocos.codes\/es\/wp-json\/wp\/v2\/media\/5352"}],"wp:attachment":[{"href":"https:\/\/cocos.codes\/es\/wp-json\/wp\/v2\/media?parent=5344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cocos.codes\/es\/wp-json\/wp\/v2\/categories?post=5344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cocos.codes\/es\/wp-json\/wp\/v2\/tags?post=5344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}