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

Domanda pubblicata Risposta pubblicata 1499 visualizzazioni

PrestaShop conserva tutto, prodotti, ordini, clienti, impostazioni, in un database MySQL, le cui tabelle usano un prefisso (di default ps_, scelto in fase di installazione). Conoscere le tabelle chiave permette di diagnosticare più in fretta, eseguire operazioni di massa che il pannello non offre e reagire quando il back office si blocca. Ecco le essenziali.

Schema delle tabelle principali del database PrestaShop
Le tabelle principali del database PrestaShop, prodotti, ordini, clienti, configurazione e moduli.
SELECT p.id_product, pl.name, ps.active, ps.price, sa.quantity
FROM ps_product p
JOIN ps_product_lang pl ON pl.id_product = p.id_product AND pl.id_lang = 1
JOIN ps_product_shop ps ON ps.id_product = p.id_product AND ps.id_shop = 1
LEFT JOIN ps_stock_available sa ON sa.id_product = p.id_product AND sa.id_product_attribute = 0
ORDER BY p.id_product DESC
LIMIT 20;

SELECT id_order, reference, id_customer, total_paid, current_state, date_add
FROM ps_orders
ORDER BY id_order DESC
LIMIT 20;

Prodotti

  • ps_product, una riga per prodotto: id_product, price (IVA esclusa), reference, active, date.
  • ps_product_lang, nome, descrizione, meta e link_rewrite (slug URL) per lingua, una riga per prodotto, lingua e negozio.
  • ps_product_shop, prezzo, stato e visibilità per negozio (rispecchia ps_product in mono-negozio).
  • ps_stock_available, la vera fonte di giacenza (non ps_product.quantity, ormai obsoleto).
  • ps_product_attribute, combinazioni/varianti; ps_specific_price, sconti e prezzi speciali.

Categorie

ps_category (albero nested set: nleft, nright, level_depth), ps_category_lang (nomi, meta) e ps_category_product (quali prodotti in quale categoria, con posizione).

Ordini e clienti

  • ps_orders, una riga per ordine: reference, id_customer, current_state, total_paid_tax_incl, date_add.
  • ps_order_detail, righe d'ordine; ps_order_history, ogni cambio di stato con timestamp; ps_order_state(_lang), definizioni degli stati.
  • ps_customer (email, passwd con hash, gruppo), ps_address, ps_cart / ps_cart_product (carrelli che non diventano per forza ordini).

Configurazione e struttura

ps_configuration è l'archivio chiave-valore di ogni impostazione del back office; ps_hook_module mappa quali moduli girano su quale hook e in quale ordine; ps_shop_url associa i domini ai negozi, da non modificare mai a mano.

Ottimizzare il database

Le operazioni di massa sono più rapide in SQL, ma faccia sempre prima un backup, testi con SELECT prima di ogni UPDATE/DELETE e non elimini le tabelle dei moduli (disinstalli il modulo). Col tempo, carrelli abbandonati, vecchi ospiti, connessioni e log gonfiano queste tabelle; ridurle mantiene veloci le query. Per la pulizia automatica e la cache veda Performance Revolution e la nostra guida all'ottimizzazione del database.

Questa risposta ti è stata utile?

Hai ancora domande?

Non trovi quello che cerchi? Inviaci la tua domanda e ti risponderemo.

Caricamento...
Torna su