Database PrestaShop: Le tabelle chiave che ogni proprietario di negozio dovrebbe conoscere

382 visualizzazioni

Perché capire il database è importante

PrestaShop memorizza tutto — prodotti, ordini, clienti, impostazioni, traduzioni, immagini, prezzi — in un database MySQL. Capire la struttura del database ti dà superpoteri per diagnosticare problemi, eseguire operazioni massive e recuperare dagli errori.

Tabelle dei prodotti

ps_product

La tabella principale dei prodotti con dati fondamentali -

ColonnaScopo
id_productIdentificatore unico del prodotto
pricePrezzo base (tasse escluse)
referenceRiferimento/SKU del prodotto
activeAbilitato (1) o disabilitato (0)

ps_product_lang

Dati prodotto specifici per lingua - nome, descrizione, meta titolo, URL.

ps_stock_available

La tabella effettiva di tracciamento delle scorte.

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

Tabelle degli ordini

ps_orders

La tabella commerciale più importante. Ogni riga è un ordine completato.

ps_order_detail

Le singole righe all'interno di un ordine con prodotto, quantità e prezzo.

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;

Tabelle dei clienti

ps_customer

Account clienti con email, password hashata, nome, stato newsletter.

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;

Tabelle del carrello

ps_cart e ps_cart_product

Carrelli e i loro prodotti. I carrelli abbandonati rimangono qui.

Tabelle di configurazione

ps_configuration

Archivio chiave-valore per tutte le impostazioni.

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

Tabelle moduli e hook

ps_module, ps_hook, ps_hook_module

Moduli, hook e le loro associazioni.

Operazioni comuni

-- Aumento prezzi del 10%
UPDATE ps_product SET price = price * 1.10;

-- Disabilitare prodotti esauriti
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;

Regole di sicurezza del database

  • Sempre backup prima di modificare
  • Mai modificare ps_shop_url direttamente
  • Testare le query con SELECT prima di UPDATE o DELETE

Questa risposta ti è stata utile?

Hai ancora domande?

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

Loading...
Back to top