Baza danych PrestaShop: Kluczowe tabele, które każdy właściciel sklepu powinien znać

387 wyświetleń

Dlaczego zrozumienie bazy danych ma znaczenie

PrestaShop przechowuje wszystko — produkty, zamówienia, klientów, ustawienia, tłumaczenia, obrazy, ceny — w bazie danych MySQL. Zrozumienie struktury bazy danych daje Ci supermoc do szybszego diagnozowania problemów, wykonywania masowych operacji i odzyskiwania się po błędach.

Tabele produktów

ps_product

Główna tabela produktów z podstawowymi danymi -

KolumnaCel
id_productUnikalny identyfikator produktu
priceCena bazowa (bez podatku)
referenceReferencja/SKU produktu
activeWłączony (1) lub wyłączony (0)

ps_product_lang

Dane produktu specyficzne dla języka - nazwa, opis, meta tytuł, URL.

ps_stock_available

Rzeczywista tabela śledzenia stanów magazynowych.

SELECT * FROM ps_stock_available 
WHERE id_product = 42 AND id_product_attribute = 0;

Tabele zamówień

ps_orders

Najważniejsza tabela handlowa. Każdy wiersz to zamówienie.

ps_order_detail

Poszczególne pozycje w zamówieniu z produktem, ilością i ceną.

SELECT o.reference, o.date_add, o.total_paid_tax_incl,
  od.product_name, od.product_quantity, od.unit_price_tax_incl
FROM ps_orders o
JOIN ps_order_detail od ON o.id_order = od.id_order
WHERE o.id_order = 12345;

Tabele klientów

ps_customer

Konta klientów z emailem, zahaszowanym hasłem, imieniem, statusem newslettera.

SELECT c.id_customer, c.email, c.firstname, c.date_add
FROM ps_customer c
LEFT JOIN ps_orders o ON c.id_customer = o.id_customer
WHERE o.id_order IS NULL AND c.active = 1;

Tabele koszyka

ps_cart i ps_cart_product

Koszyki i ich produkty. Porzucone koszyki pozostają tutaj.

SELECT c.id_cart, cu.email, c.date_add
FROM ps_cart c
JOIN ps_customer cu ON c.id_customer = cu.id_customer
LEFT JOIN ps_orders o ON c.id_cart = o.id_cart
WHERE o.id_order IS NULL
AND c.date_add > DATE_SUB(NOW(), INTERVAL 7 DAY);

Tabele konfiguracji

ps_configuration

Magazyn klucz-wartość dla wszystkich ustawień.

SELECT name, value FROM ps_configuration 
WHERE name IN ('PS_SHOP_DOMAIN', 'PS_SSL_ENABLED', 'PS_SHOP_ENABLE');

Tabele modułów i hooków

ps_module, ps_hook, ps_hook_module

Moduły, hooki i ich powiązania. ps_hook_module kontroluje kolejność wykonania.

Typowe operacje

-- Podwyżka cen o 10%
UPDATE ps_product SET price = price * 1.10;

-- Wyłączenie produktów niedostępnych
UPDATE ps_product p
JOIN ps_stock_available sa ON p.id_product = sa.id_product 
SET p.active = 0
WHERE sa.quantity <= 0 AND sa.id_product_attribute = 0;

Zasady bezpieczeństwa bazy danych

  • Zawsze twórz kopię zapasową przed modyfikacjami
  • Nigdy nie modyfikuj ps_shop_url bezpośrednio
  • Testuj zapytania z SELECT przed uruchomieniem UPDATE lub DELETE

Czy ta odpowiedź była pomocna?

Masz jeszcze pytania?

Can't find what you're looking for? Send us your question and we'll get back to you quickly.

Loading...
Back to top