{"id":6207,"date":"2026-03-21T14:42:41","date_gmt":"2026-03-21T13:42:41","guid":{"rendered":"https:\/\/cocos.codes\/?p=6207"},"modified":"2026-03-21T15:08:25","modified_gmt":"2026-03-21T14:08:25","slug":"prestashop-1-6-i-1-7-blad-xml-w-panelu-admina","status":"publish","type":"post","link":"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/archiwa\/prestashop-1-6-i-1-7-blad-xml-w-panelu-admina\/","title":{"rendered":"PrestaShop 1.6 i 1.7 \u2013 b\u0142\u0105d XML w panelu admina (must_have_modules_list.xml, modules_native_addons.xml)"},"content":{"rendered":"Mened\u017cer modu\u0142\u00f3w w PrestaShop wyrzuca b\u0142\u0105d XML? Poni\u017cej wyja\u015bniamy, dlaczego tak si\u0119 dzieje i w jaki spos\u00f3b skutecznie to naprawimy &#8211; bez konieczno\u015bci aktualizacji sklepu ani ingerencji w baz\u0119 danych.<br \/><br \/><h6>Czym s\u0105 pliki XML w katalogu config\/xml\/?<\/h6>PrestaShop przechowuje lokalnie kilka plik\u00f3w XML, kt\u00f3re odpowiadaj\u0105 za dzia\u0142anie sekcji <strong>Modu\u0142y &gt; Mened\u017cer modu\u0142\u00f3w<\/strong> w panelu administracyjnym. Pobierane s\u0105 cyklicznie z zewn\u0119trznego API <a href=\"https:\/\/addons.prestashop.com\/pl\/prawne\/96548-eu-cookies-law-rodo-google-consent-20.html?search_query_id=3b8c0da3b7e22e70c1e6bbb5ac6b2ca2&amp;search_index=Products_PL_relevance\" target=\"_blank\" rel=\"noopener\">PrestaShop Addons<\/a> i zapisywane w katalogu:<br \/><br \/><div class=\"cc-code-quote\"><pre><code>config\/xml\/<\/code><\/pre><\/div>Najwa\u017cniejsze z nich to:<br \/><br \/><ul><li><span class=\"cc-highlight\">must_have_modules_list.xml<\/span> &#8211; lista modu\u0142\u00f3w oznaczonych jako &#8222;must have&#8221; przez PrestaShop<\/li><li><span class=\"cc-highlight\">modules_native_addons.xml<\/span> &#8211; lista modu\u0142\u00f3w natywnych dost\u0119pnych w Addons<\/li><li><span class=\"cc-highlight\">default_country_modules_list.xml<\/span> &#8211; modu\u0142y sugerowane dla konkretnego kraju<\/li><li><span class=\"cc-highlight\">trusted_modules_list.xml<\/span> &#8211; lista zaufanych modu\u0142\u00f3w weryfikowanych przez PrestaShop<\/li><\/ul>Pliki te nie maj\u0105 wp\u0142ywu na frontend sklepu ani na przetwarzanie zam\u00f3wie\u0144. S\u0142u\u017c\u0105 wy\u0142\u0105cznie do wy\u015bwietlania informacji w sekcji modu\u0142\u00f3w panelu admina.<h6><br \/>Jak wygl\u0105da b\u0142\u0105d XML i gdzie si\u0119 pojawia?<\/h6>B\u0142\u0105d najcz\u0119\u015bciej pojawia si\u0119 bezpo\u015brednio w panelu administracyjnym &#8211; w zak\u0142adce <strong>Modu\u0142y<\/strong> lub po wej\u015bciu do <strong>Mened\u017cera modu\u0142\u00f3w<\/strong>. Komunikaty mog\u0105 wygl\u0105da\u0107 nast\u0119puj\u0105co:<br \/><br \/><div class=\"cc-code-quote\"><pre><code>Error found : Start tag expected, '&lt;' not found in must_have_modules_list.xml file\r\nError found : Start tag expected, '&lt;' not found in modules_native_addons.xml file\r\nError found : Start tag expected, '&lt;' not found in default_country_modules_list.xml file<\/code><\/pre><\/div><div class=\"cc-alert cc-alert-note\"><div class=\"cc-alert-title\">Notatka<\/div><div class=\"cc-alert-content\">B\u0142\u0119dy te pojawiaj\u0105 si\u0119 w PrestaShop 1.7 oraz PrestaShop 8.x. W starszych wersjach 1.6 mechanizm dzia\u0142a podobnie, cho\u0107 lokalizacja niekt\u00f3rych plik\u00f3w mo\u017ce si\u0119 r\u00f3\u017cni\u0107.<\/div><\/div><h6><br \/>Sk\u0105d bierze si\u0119 ten b\u0142\u0105d?<\/h6>PrestaShop wysy\u0142a zapytania HTTP do API PrestaShop Addons, aby pobra\u0107 aktualne listy modu\u0142\u00f3w. Przyk\u0142adowy endpoint wygl\u0105da tak:<br \/><br \/><div class=\"cc-code-quote\"><pre><code>https:\/\/api.addons.prestashop.com\/?version=1.7.8.x&amp;method=listing&amp;action=must-have<\/code><\/pre><\/div>Sklep oczekuje odpowiedzi w formacie XML. Problem pojawia si\u0119, gdy:<ul><li>API Addons zwraca odpowied\u017a w innym formacie (np. JSON lub stron\u0119 b\u0142\u0119du HTML)<\/li><li>po\u0142\u0105czenie z API jest zablokowane przez firewall lub konfiguracj\u0119 serwera<\/li><li>serwer sklepu nie ma dost\u0119pu do zewn\u0119trznych zasob\u00f3w (brak wychodz\u0105cego ruchu HTTP\/HTTPS)<\/li><li>API Addons jest chwilowo niedost\u0119pne lub zwraca timeout<\/li><li>wersja PrestaShop jest zbyt stara i nie jest ju\u017c obs\u0142ugiwana przez API<\/li><\/ul>Parser PHP <span class=\"cc-highlight\">simplexml_load_string()<\/span> przy pr\u00f3bie przetworzenia nieprawid\u0142owej odpowiedzi zg\u0142asza w\u0142a\u015bnie ten b\u0142\u0105d &#8211; <em>Start tag expected<\/em>.<br \/><br \/><h6><br \/>Czy b\u0142\u0105d wp\u0142ywa na dzia\u0142anie sklepu?<\/h6><div class=\"cc-alert cc-alert-success\"><div class=\"cc-alert-title\">Sukces<\/div><div class=\"cc-alert-content\">Frontend sklepu, koszyk, zam\u00f3wienia, p\u0142atno\u015bci i wszystkie procesy zakupowe dzia\u0142aj\u0105 normalnie. B\u0142\u0105d dotyczy wy\u0142\u0105cznie panelu administracyjnego &#8211; konkretnie sekcji zarz\u0105dzania modu\u0142ami.<\/div><\/div>Co mo\u017ce przesta\u0107 dzia\u0142a\u0107 w panelu:<ul><li>lista rekomendowanych modu\u0142\u00f3w<\/li><li>sekcja &#8222;must have&#8221; w mened\u017cerze modu\u0142\u00f3w<\/li><li>marketplace Addons dost\u0119pny z poziomu admina<\/li><li>sugestie modu\u0142\u00f3w dla kraju<\/li><li>wolniejsze \u0142adowanie strony Modu\u0142y (timeout przy pr\u00f3bie po\u0142\u0105czenia z API)<\/li><\/ul><h6><br \/>Krok 1 &#8211; sprawdzenie zawarto\u015bci plik\u00f3w XML<\/h6>Przed wprowadzeniem jakichkolwiek zmian warto sprawdzi\u0107, co aktualnie znajduje si\u0119 w plikach. Przez <a href=\"https:\/\/pl.wikipedia.org\/wiki\/Secure_Shell\" title=\"SSH\" target=\"_blank\" rel=\"noopener\">SSH<\/a> wykonujemy:<br \/><br \/><div class=\"cc-code-quote\"><pre><code>cat config\/xml\/must_have_modules_list.xml<\/code><\/pre><\/div>Je\u015bli plik jest pusty, zawiera HTML (np. stron\u0119 b\u0142\u0119du 503) lub JSON zamiast XML &#8211; to w\u0142a\u015bnie jest \u017ar\u00f3d\u0142o problemu.<br \/><br \/><div class=\"cc-alert cc-alert-tip\"><div class=\"cc-alert-title\">Wskaz\u00f3wka<\/div><div class=\"cc-alert-content\">Do sprawdzenia zawarto\u015bci pliku mo\u017cna te\u017c u\u017cy\u0107 mened\u017cera plik\u00f3w w panelu hostingowym (np. Hestia CP, cPanel) lub klienta FTP &#8211; nie jest wymagany dost\u0119p SSH.<\/div><\/div><h6><br \/>Krok 2 &#8211; podmiana plik\u00f3w na poprawny XML<\/h6>Najszybsze rozwi\u0105zanie to zast\u0105pienie zawarto\u015bci problematycznych plik\u00f3w minimalnym, poprawnym XML-em. Przez SSH wykonujemy:<br \/><br \/><div class=\"cc-code-quote\"><pre><code>echo '&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;&lt;modules\/&gt;' &gt; config\/xml\/must_have_modules_list.xml\r\necho '&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;&lt;modules\/&gt;' &gt; config\/xml\/modules_native_addons.xml\r\necho '&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;&lt;modules\/&gt;' &gt; config\/xml\/default_country_modules_list.xml\r\necho '&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;&lt;modules\/&gt;' &gt; config\/xml\/trusted_modules_list.xml<\/code><\/pre><\/div>Mo\u017cna te\u017c wgra\u0107 pliki r\u0119cznie przez FTP. Zawarto\u015b\u0107 ka\u017cdego z nich powinna wygl\u0105da\u0107 tak:<br \/><br \/><div class=\"cc-code-quote\"><pre><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;modules\/&gt;<\/code><\/pre><\/div><div class=\"cc-alert cc-alert-warning\"><div class=\"cc-alert-title\">Ostrze\u017cenie<\/div><div class=\"cc-alert-content\">Samo zast\u0105pienie plik\u00f3w rozwi\u0105\u017ce problem tymczasowo. PrestaShop przy kolejnym od\u015bwie\u017ceniu strony modu\u0142\u00f3w spr\u00f3buje ponownie pobra\u0107 dane z API i mo\u017ce nadpisa\u0107 pliki b\u0142\u0119dn\u0105 odpowiedzi\u0105.<\/div><\/div><h6><br \/>Krok 3 &#8211; trwa\u0142e rozwi\u0105zanie przez override klasy<\/h6>Aby trwale zablokowa\u0107 pr\u00f3by pobierania XML z API Addons, tworzymy override klasy <span class=\"cc-highlight\">Tools<\/span>. Tworzymy plik:<br \/><br \/><div class=\"cc-code-quote\"><pre><code>override\/classes\/Tools.php<\/code><\/pre><\/div>O nast\u0119puj\u0105cej zawarto\u015bci:<br \/><br \/><div class=\"cc-code-quote\"><pre><code>&lt;?php\r\nclass Tools extends ToolsCore\r\n{\r\n    protected static $is_addons_up = false;\r\n}<\/code><\/pre><\/div>W\u0142a\u015bciwo\u015b\u0107 <span class=\"cc-highlight\">$is_addons_up = false<\/span> sprawia, \u017ce PrestaShop nie b\u0119dzie pr\u00f3bowa\u0142 \u0142\u0105czy\u0107 si\u0119 z API Addons &#8211; a co za tym idzie, nie b\u0119dzie pobiera\u0142 ani nadpisywa\u0142 plik\u00f3w XML.<br \/><br \/>Po utworzeniu pliku override czy\u015bcimy cache. Dla <strong>PrestaShop 1.7 \/ 8.x<\/strong>:<br \/><br \/><div class=\"cc-code-quote\"><pre><code>rm -rf var\/cache\/dev\/*\r\nrm -rf var\/cache\/prod\/*<\/code><\/pre><\/div>Mo\u017cna te\u017c wyczy\u015bci\u0107 cache z poziomu panelu administracyjnego: <strong>Zaawansowane &gt; Wydajno\u015b\u0107 &gt; Wyczy\u015b\u0107 cache<\/strong>.<br \/><br \/><div class=\"cc-alert cc-alert-info\"><div class=\"cc-alert-title\">Info<\/div><div class=\"cc-alert-content\">Po zastosowaniu override sekcja modu\u0142\u00f3w nadal dzia\u0142a w pe\u0142ni &#8211; mo\u017cna instalowa\u0107, odinstalowywa\u0107 i aktualizowa\u0107 modu\u0142y z pliku ZIP. Wy\u0142\u0105czona zostaje jedynie integracja z marketplace Addons w panelu admina.<\/div><\/div><h6><br \/>Alternatywa &#8211; blokada zapisu do plik\u00f3w<\/h6>Je\u015bli nie chcemy korzysta\u0107 z override, mo\u017cna ustawi\u0107 plikom XML prawa tylko do odczytu. PrestaShop nie b\u0119dzie m\u00f3g\u0142 ich nadpisa\u0107:<br \/><br \/><div class=\"cc-code-quote\"><pre><code>chmod 444 config\/xml\/must_have_modules_list.xml\r\nchmod 444 config\/xml\/modules_native_addons.xml\r\nchmod 444 config\/xml\/default_country_modules_list.xml\r\nchmod 444 config\/xml\/trusted_modules_list.xml<\/code><\/pre><\/div><div class=\"cc-alert cc-alert-note\"><div class=\"cc-alert-title\">Notatka<\/div><div class=\"cc-alert-content\">Metoda z chmod jest prostsza, ale nie eliminuje pr\u00f3b po\u0142\u0105czenia z API &#8211; PrestaShop nadal b\u0119dzie je wykonywa\u0142, co mo\u017ce spowalnia\u0107 \u0142adowanie strony modu\u0142\u00f3w. Override klasy Tools jest rozwi\u0105zaniem czystszym technicznie.<\/div><\/div><h6><br \/>Czego nie tracimy po wy\u0142\u0105czeniu Addons API?<\/h6>Warto wiedzie\u0107, \u017ce w \u015brodowisku produkcyjnym wi\u0119kszo\u015b\u0107 tych funkcji i tak nie jest u\u017cywana na co dzie\u0144:<br \/><br \/><table class=\"woocommerce-table shop_table\"><thead><tr><td><strong>Funkcja<\/strong><\/td><td><strong>Po wy\u0142\u0105czeniu API<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Frontend sklepu<\/td><td>Dzia\u0142a bez zmian<\/td><\/tr><tr><td>Zam\u00f3wienia i koszyk<\/td><td>Dzia\u0142a bez zmian<\/td><\/tr><tr><td>Instalacja modu\u0142\u00f3w z ZIP<\/td><td>Dzia\u0142a bez zmian<\/td><\/tr><tr><td>Aktualizacje modu\u0142\u00f3w<\/td><td>Dzia\u0142a bez zmian<\/td><\/tr><tr><td>Marketplace Addons w adminie<\/td><td>Niedost\u0119pne<\/td><\/tr><tr><td>Rekomendacje modu\u0142\u00f3w &#8222;must have&#8221;<\/td><td>Niedost\u0119pne<\/td><\/tr><tr><td>Sugestie modu\u0142\u00f3w dla kraju<\/td><td>Niedost\u0119pne<\/td><\/tr><\/tbody><\/table><br \/><h6>Kiedy b\u0142\u0105d mo\u017ce powr\u00f3ci\u0107?<\/h6>Je\u015bli zastosujemy wy\u0142\u0105cznie podmian\u0119 plik\u00f3w bez override lub chmod, b\u0142\u0105d mo\u017ce powr\u00f3ci\u0107 po:<br \/><br \/><ul><li>od\u015bwie\u017ceniu strony Mened\u017cera modu\u0142\u00f3w<\/li><li>uruchomieniu crona PrestaShop<\/li><li>aktualizacji PrestaShop<\/li><li>wyczyszczeniu cache<\/li><\/ul>Dlatego zalecamy po\u0142\u0105czenie obu krok\u00f3w &#8211; podmian\u0119 plik\u00f3w <strong>i<\/strong> override klasy lub blokad\u0119 zapisu.<br \/><br \/><h6>Podsumowanie<\/h6>B\u0142\u0105d XML w panelu PrestaShop to problem komunikacji starej wersji sklepu z API Addons &#8211; nie jest to awaria serwera, problem z baz\u0105 danych ani obecno\u015b\u0107 z\u0142o\u015bliwego oprogramowania. Sklep dzia\u0142a normalnie. Rozwi\u0105zanie jest szybkie i nie wymaga aktualizacji PrestaShop.<br \/><br \/>Rekomendowane kroki:<br \/><br \/><ol><li>Sprawdzenie zawarto\u015bci plik\u00f3w w <span class=\"cc-highlight\">config\/xml\/<\/span><\/li><li>Podmiana plik\u00f3w na minimalny poprawny XML<\/li><li>Dodanie override klasy <span class=\"cc-highlight\">Tools<\/span> z <span class=\"cc-highlight\">$is_addons_up = false<\/span><\/li><li>Wyczyszczenie cache PrestaShop<\/li><\/ol>Je\u015bli potrzebujecie pomocy przy wdro\u017ceniu powy\u017cszych zmian lub chcecie przy okazji przeprowadzi\u0107 audyt techniczny sklepu &#8211; ch\u0119tnie pomo\u017cemy.<br \/><br \/><a class=\"button\" href=\"https:\/\/iarina029.supserv.cozmoslabs.com\/kontakt\" title=\"Skontaktuj Si\u0119 Z Nami\">Skontaktuj si\u0119 z nami<\/a>","protected":false},"excerpt":{"rendered":"Mened\u017cer modu\u0142\u00f3w w Presta Shop wyrzuca b\u0142\u0105d XML? Poni\u017cej wyja\u015bniamy, dlaczego tak si\u0119 dzieje i w jaki spos\u00f3b skutecznie to naprawimy &#8211; bez konieczno\u015bci aktualizacji sklepu ani ingerencji w baz\u0119","protected":false},"author":1,"featured_media":6220,"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":[137,135],"tags":[344,346,345,143],"class_list":["post-6207","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-prestashop","category-baza-wiedzy","tag-blad-xml","tag-modules_native_addons-xml","tag-must_have_modules_list-xml","tag-prestashop"],"_links":{"self":[{"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/wp-json\/wp\/v2\/posts\/6207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/wp-json\/wp\/v2\/comments?post=6207"}],"version-history":[{"count":0,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/wp-json\/wp\/v2\/posts\/6207\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/wp-json\/wp\/v2\/media\/6220"}],"wp:attachment":[{"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/wp-json\/wp\/v2\/media?parent=6207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/wp-json\/wp\/v2\/categories?post=6207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/wp-json\/wp\/v2\/tags?post=6207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}