Zadzwoń do mnie

579 512 597

Napisz do mnie

kontakt@marcinpohl.pl

Uruchomiłeś nowy sklep w trybie multistore w PrestaShop i zauważyłeś, że brakuje w nim podstawowych stron, takich jak „Kontakt z nami”, „Mapa strony” czy „Nowe produkty”? To częsty problem, który sprawia, że klienci nie mogą dotrzeć do kluczowych informacji, a Twój nowy sklep traci na funkcjonalności.

Zazwyczaj problem objawia się na dwa sposoby:

  1. Na stronie frontowej sklepu linki do tych podstron po prostu nie działają lub w ogóle się nie wyświetlają.
  2. W panelu administracyjnym, w sekcji Preferencje > Ruch > SEO & URL, lista stron dla nowego sklepu jest niekompletna w porównaniu do sklepu głównego.

Przyczyną jest to, że PrestaShop podczas tworzenia nowego sklepu nie zawsze automatycznie kopiuje konfiguracje URL dla stron generowanych przez moduły. Innymi słowy, w bazie danych brakuje wpisów, które mówią PrestaShop, że strona „kontakt” ma istnieć również dla tego nowego sklepu.

Rozwiązanie: Szybka synchronizacja stron za pomocą SQL

Zamiast ręcznie odtwarzać każdą brakującą stronę, możemy w kilka sekund sklonować wszystkie ustawienia z działającego sklepu do tego nowego. Wystarczy do tego jedno zapytanie do bazy danych.

Krok 1: Wykonaj kopię zapasową (ważne!) 🛡️

Zanim wykonasz jakiekolwiek zmiany, zabezpiecz się. W swoim narzędziu do zarządzania bazą danych (np. DBeaver, phpMyAdmin) wykonaj poniższą komendę, aby stworzyć kopię zapasową tabeli z ustawieniami URL.

CREATE TABLE ps_meta_lang_backup AS SELECT * FROM ps_meta_lang;

Krok 2: Znajdź ID swoich sklepów 🆔

Musisz znać id_shop obu sklepów: tego, który działa poprawnie (będzie on źródłem) i tego, w którym brakuje stron (sklep docelowy). Numery ID znajdziesz w tabeli ps_shop w bazie danych.

Krok 3: Uruchom zapytanie synchronizujące ⚙️

Teraz wykonaj poniższy kod SQL. Pamiętaj, aby podmienić id_shop na właściwe dla Twojej instalacji. W naszym przykładzie kopiujemy ustawienia ze sklepu o id_shop = 1 do sklepu o id_shop = 5.

INSERT INTO ps_meta_lang (id_meta, id_shop, id_lang, title, description, keywords, url_rewrite)
SELECT
  ml.id_meta,
  5 AS id_shop,   -- <-- WSTAW TUTAJ ID SKLEPU, W KTÓRYM BRAKUJE STRON
  ml.id_lang,
  ml.title,
  ml.description,
  ml.keywords,
  ml.url_rewrite
FROM ps_meta_lang ml
WHERE ml.id_shop = 1      -- <-- WSTAW TUTAJ ID SKLEPU, KTÓRY DZIAŁA POPRAWNIE
  AND NOT EXISTS (
    SELECT 1
    FROM ps_meta_lang ml2
    WHERE ml2.id_shop   = 5 -- <-- PONOWNIE WSTAW ID SKLEPU NAPRAWIANEGO
      AND ml2.id_meta   = ml.id_meta
      AND ml2.id_lang   = ml.id_lang
  );

Co robi to zapytanie? W skrócie: inteligentnie kopiuje brakujące wpisy. Wybiera wszystkie konfiguracje stron ze sklepu źródłowego, a następnie sprawdza (NOT EXISTS), czy dana strona istnieje już w sklepie docelowym. Jeśli nie, dodaje ją. To gwarantuje, że nie powstaną żadne duplikaty.

Krok 4: Wyczyść pamięć podręczną PrestaShop 🧹

Aby PrestaShop zobaczył zmiany w bazie danych, musisz wyczyścić cache.

  • W panelu administracyjnym przejdź do Zaawansowane > Wydajność i kliknij przycisk „Wyczyść pamięć podręczną”.
  • Możesz też usunąć zawartość katalogu var/cache/prod na serwerze.

I to wszystko! Po odświeżeniu strony wszystkie brakujące podstrony powinny pojawić się w Twoim nowym sklepie, a lista w panelu SEO & URL będzie kompletna.

user image

Marcin Pohl

Programista Java i twórca stron internetowych oraz sklepów opartych na WordPressie i PrestaShop. Specjalizuje się w budowie wydajnych aplikacji webowych i systemów CRM, integrując backend z funkcjonalnym i intuicyjnym frontendem. Tworzy nowoczesne strony i sklepy dostosowane do potrzeb biznesu, dbając o SEO, UX oraz bezpieczeństwo. Łączy wiedzę techniczną z praktycznym podejściem do rozwiązywania realnych problemów firm.

Person Image

Zadzwoń do mnie

579 512 597

Napisz do mnie

kontakt@marcinpohl.pl

Wyślij wiadomość

    Shapes Shapes