Magento 2 – Come modificare lo schema del database

Per aggiungere una nuova tabella nel database di Magento 2, possiamo automatizzare il processo attraverso la creazione di un modulo dedicato.

Per definire la struttura della nuova tabella, useremo lo script InstallSchema.php che va creato nella cartella Setup, a sua volta situata nella root del nuovo modulo creato. Potete trovare un esempio reale nel file del modulo Magento_Sales (del quale trovate una parte nell’immagine sotto), situato in vendor/magento/module-sales/Setup. Leggi tutto “Magento 2 – Come modificare lo schema del database”

Query al db di Magento tramite le classi Zend

Nell’articolo precedente abbiamo visto come configurare la connessione al database di Magento tramite le classi di Zend Framework.

Il passo successivo consiste nella preparazione di un’istanza con un ruolo di interfaccia per la tabella, passando il nome della stessa tabella come parametro del costruttore della classe Zend_Db_Table.

  $product_table = Zend_Db_Table('catalog_product_entity');

Uno dei tanti casi concreti in cui possiamo usare questa tecnica è quello in cui si ha la necessità di caricare una serie di attributi ( nell’esempio tutti i decimali) di un certo prodotto.  

$select = $product_table->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
$select->setIntegrityCheck(false)
   ->where('catalog_product_entity.entity_id = ?', $product_id)
   ->join('catalog_product_entity_decimal', 'catalog_product_entity_decimal.entity_id = catalog_product_entity.entity_id');

$results = $product_table->fetchAll($select);

In questo modo, come risultato avremo un array dove ogni elemento corrisponde ad uno specifico attributo per un singolo negozio (o per store_id = 0).