Integrare il carrello acquisti di Magento in WordPress

Un nostro recente progetto ha interessato due delle più famose e utilizzate piattaforme open-source, WordPress e Magento (rispettivamente CMS ed E-commerce).
Una delle necessità era quella di visualizzare, nel blog, il numero di articoli attualmente nel carrello dello store.
Di seguito un breve riassunto dei passi necessari per effettuare il suddetto adattamento.
Precisiamo che esistono alcuni plugin, per citarne uno FishPig, che rendono tale integrazione automatica.
Iniziamo con alcune informazioni:

1. I cookies del “frontend” di Magento non sono accessibili al di fuori di Magento stesso. Questo rende i dati di sessione dell’ambiente ecommerce inaccessibili da una directory diversa da quella di installazione. Bisogna modificare dal pannello amministratore di Magento il percorso dei cookies (Sistema>Configurazione>Web>Sessione gestione Cookie) così che siano resi disponibili in un percorso comune a, in questo caso, WordPress. Nel nostro caso abbiamo utilizzato la root “/”.
2. Si deve conoscere il percorso del file “Mage.php” contenuto nella cartella “app” di Magento.
3. Bisogna conoscere l’identificativo dello store Magento del quale si vogliono recuperare i dati. Per conoscere l’id, da pannello di controllo andare in “Sistema>Gestione negozi”, posizionare il cursore del mouse sulla riga relativa allo store interessato (ultima colonna a destra “Nome vista negozio”) e leggere dall’URL il valore numerico (es.: …system_store/editStore/store_id/1/key/…).
4. La nostra configurazione prevedeva WordPress installato nella root del dominio, mentre Magento risiedeva nella sottodirectory “shop”.

Il codice riportato di seguito è stato inserito nel file “header.php” del tema attivo in WordPress, ma può essere inserito laddove vi sia necessità:

// richiediamo il file core Magento dal percorso di installazione dell’ecommerce
require_once(“shop/app/Mage.php”);

// comando per l’assegnazione dei permessi
umask(0);

// metodo Magento per impostare lo store di default, nel nostro caso lo store con id “1”.
Mage::app()->setCurrentStore(1);

// metodo che ci permette di recuperare un “oggetto” dall’ambiente Magento, in questo caso le sessioni del fronted
Mage::getSingleton(‘core/session’, array(‘name’=>’frontend’));

// con questa riga assegnamo ad una variabile il numero di articoli attualmente presenti nel carrello di Magento
$numArticoli=Mage::getSingleton(‘checkout/cart’)->getItemsCount();

Con poche righe è possibile, quindi, recuperare informazioni dalla piattaforma Magento e visualizzarle, modificando opportunamente il codice, direttamente in WordPress.