Zawartość artykułu
Co nam daje zmiana ustawień poprzez MySQL?
Wprowadzenie lub zmiana podstawowych ustawień w sklepie PrestaShop za pomocą bazy danych jest najbardziej efektywne. Pozwala na wykonanie błyskawicznie czynności, która wymaga zalogowania, wyklikania, przeładowania strony itp.
Jeśli zależy Ci na np. szybkim wyłaczeniu sklepu czy to poprzez MySQL czy przez zewnętrzny skrypt lub CRON ponizej znajdziesz jakiego zapytania użyć.
Umieściliśmy tutaj takze inne kluczowe ustawienia, które można szybko zmienić poprzez MySQL.
Jak ustalić adres PhpMyAdmin na Twoim serwerze albo gdzie znaleźć dane do połączenia z MySQL w zależności od wersji PrestaShop znajdziesz np. w tym artykule:
W poniższych zapytaniach stosujemy domyślny prefix dla tabel „ps_” w Twoich zapytaniach użyj ustawionego dla Twojej instalacji PrestaShop.
Zapytania były wykonywane dla sklepu PrestaShop w wersji 1.7.8.8, ale powinny też działać w starszych instalacjach. Nawet 1.6, jak nie starszych.
Wyłączenie sklepu (przerwa techniczna)
Wyłączenie sklepu wykonasz poprzez zapytanie:
UPDATE `ps_configuration` SET `value` = NULL WHERE `name` = 'PS_SHOP_ENABLE';
Natomiast włączenie:
UPDATE `ps_configuration` SET `value` = 1 WHERE `name` = 'PS_SHOP_ENABLE';
Dodanie wyjątu IP aby można było oglądać sklep mimo jego wyłączenia
UPDATE `ps_configuration` SET `value` = '76.42.150.10' WHERE `name` = 'PS_MAINTENANCE_IP';
Jeśli zapytanie zwróci błąd:
0 rows affected. (Query took 0.0002 seconds.)
A wyjątek IP się nie zatwierdzi użyj:
INSERT INTO `ps_configuration`(`id_configuration`, `id_shop_group`, `id_shop`, `name`, `value`, `date_add`, `date_upd`) VALUES (NULL, NULL, NULL, 'PS_MAINTENANCE_IP', '76.42.150.10', NOW(), NOW());
usunięcie wyjątku dla tego IP:
UPDATE `ps_configuration` SET `value` = '' WHERE `name` = 'PS_MAINTENANCE_IP';
UWAGA! Jeśli już jest dodany wcześniej wyjątek należy go uwzlędnić w zapytaniu. Najlepiej sprawdź to przed modyfikacją poprzez zapytanie:
SELECT * FROM `ps_configuration` WHERE `name` = 'PS_MAINTENANCE_IP';
IP są zapisywane po przecinku czyli np:
UPDATE `ps_configuration` SET `value` = '65.43.250.10,76.42.150.10' WHERE `name` = 'PS_MAINTENANCE_IP';
itd.
Ogólnie wykonujesz w zapytaniu to co zostało opisane w tym artykule:
Czasowe wyłączenie sklepu dla klientów z możliwością oglądania go przez właściciela [Aktualizacja]
Wyłączenie SSL na sklepie
To znajdziesz w tym artykule:
Jak szybko wyłączyć SSL (HTTPS) na sklepie PrestaShop przez bazę danych?
Włączenie trybu katalog (blokada sprzedaży, ale sklep dostępny)
UPDATE `ps_configuration` SET `value` = 1 WHERE `name` = 'PS_CATALOG_MODE';
Wyłączenie trybu katalog:
UPDATE `ps_configuration` SET `value` = 0 WHERE `name` = 'PS_CATALOG_MODE';
Jeśli mają być pokazywane ceny użyj dodatkowo:
UPDATE `ps_configuration` SET `value` = 1 WHERE `name` = 'PS_CATALOG_MODE_WITH_PRICES';
Jeśli nie:
UPDATE `ps_configuration` SET `value` = 0 WHERE `name` = 'PS_CATALOG_MODE_WITH_PRICES';
Wyłączenie cache
UPDATE `ps_configuration` SET `value` = 2 WHERE `name` = 'PS_SMARTY_FORCE_COMPILE';
UPDATE `ps_configuration` SET `value` = NULL WHERE `name` = 'PS_SMARTY_CACHE';
włączenie domyślnego cache:
UPDATE `ps_configuration` SET `value` = 0 WHERE `name` = 'PS_SMARTY_FORCE_COMPILE';
UPDATE `ps_configuration` SET `value` = 1 WHERE `name` = 'PS_SMARTY_CACHE';
Zmiana głównego adresu e-mail sklepu
UPDATE `ps_configuration` SET `value` = 'nowy_email@gmail.com' WHERE `name` = 'PS_SHOP_EMAIL';
Wyłączenie zakupów przez gości
Oznacza to, że bez rejestracji nie będzie można zrobić zamówienia
UPDATE `ps_configuration` SET `value` = NULL WHERE `name` = 'PS_GUEST_CHECKOUT_ENABLED';
włączenie:
UPDATE `ps_configuration` SET `value` = 1 WHERE `name` = 'PS_GUEST_CHECKOUT_ENABLED';
Włączenie przyjaznych adresów url
UPDATE `ps_configuration` SET `value` = 1 WHERE `name` = 'PS_REWRITING_SETTINGS';
Wyłącznie:
UPDATE `ps_configuration` SET `value` = NULL WHERE `name` = 'PS_REWRITING_SETTINGS';
Uwaga, zmienić należy także plik .htaccess w folderze głównym. Wydaje się, że sama zmiana w SQL nie wystarczy.
Wpis:
# AlphaImageLoader for IE and fancybox RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L] </IfModule>
Zmieni się na:
# Images RewriteCond %{HTTP_HOST} ^adres-sklepu.pl$ RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L] RewriteCond %{HTTP_HOST} ^adres-sklepu.pl$ RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L] RewriteCond %{HTTP_HOST} ^adres-sklepu.pl$ RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L] RewriteCond %{HTTP_HOST} ^adres-sklepu.pl$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L] RewriteCond %{HTTP_HOST} ^adres-sklepu.pl$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L] RewriteCond %{HTTP_HOST} ^adres-sklepu.pl$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L] RewriteCond %{HTTP_HOST} ^adres-sklepu.pl$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L] RewriteCond %{HTTP_HOST} ^adres-sklepu.pl$ RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L] RewriteCond %{HTTP_HOST} ^adres-sklepu.pl$ RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L] # AlphaImageLoader for IE and fancybox RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L] # Dispatcher RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L] </IfModule>
Wyłączenie modułow nie od PrestaShop
UPDATE `ps_configuration` SET `value` = 1 WHERE `name` = 'PS_DISABLE_NON_NATIVE_MODULE';
ewentualnie:
INSERT INTO `ps_configuration`(`id_configuration`, `id_shop_group`, `id_shop`, `name`, `value`, `date_add`, `date_upd`) VALUES (NULL, NULL, NULL, 'PS_DISABLE_NON_NATIVE_MODULE', 1, NOW(), NOW());
włączenie:
UPDATE `ps_configuration` SET `value` = NULL WHERE `name` = 'PS_DISABLE_NON_NATIVE_MODULE';
Wyłączenie administratora sklepu o okreslonym mailu
UPDATE `ps_employee` SET `active` = '0' WHERE `ps_employee`.`email` = 'administrator2@moj-sklep.pl';
Włączenie:
UPDATE `ps_employee` SET `active` = '1' WHERE `ps_employee`.`email` = 'administrator2@moj-sklep.pl';
Odblokowanie API PrestaShop:
UPDATE `ps_configuration` SET `value` = 1 WHERE `name` = 'PS_WEBSERVICE';
Jeśli nie ma takiego wpisu (0 rows affected) należy dodać taki wiersz:
INSERT INTO `ps_configuration`(`id_configuration`, `id_shop_group`, `id_shop`, `name`, `value`, `date_add`, `date_upd`) VALUES (NULL, NULL, NULL, 'PS_WEBSERVICE', 1, NOW(), NOW());
Zablokowanie API:
UPDATE `ps_configuration` SET `value` = 0 WHERE `name` = 'PS_WEBSERVICE';