2010-06-14 5 views
2

Je construis un site qui a besoin d'afficher des informations sur un produit à partir d'une base de données Magento, mais je l'affiche sur une autre page/site en dehors de l'intallation Magento. Je sais que l'information est affichée deux fois, mais j'aimerais que le site évite la duplication de contenu et tire la même information d'une source unique, la base de données de produits Magento.Est-il possible d'interroger la base de données Magento et d'afficher les attributs du produit en dehors de Magento?

Est-ce que c'est possible? Est-ce que quelqu'un l'a fait?

Répondre

3

Quel serait beaucoup plus facile à faire serait de tirer dans tout le moteur de Magento dans votre page externe. Ceci [contrairement au reste de Magento] est assez facile à faire.

Tout ce que vous avez à faire est la suivante:

// Gorgez Magento noyau define ('MAGENTO', realpath ('/ var/www/magento /'));

require_once (MAGENTO. '/app/Mage.php');

$ app = Mage :: app();

Maintenant, vous pouvez utiliser l'un des objets Magento/classes comme si vous étiez à l'intérieur de Magento et obtenir vos attributs

$product = Mage::getModel('catalog/product')->load(1234); 
$product->getSku(); 
$product->getYourCustomAttribute(); 

etc etc

+0

Si votre page ne se trouve pas sur le même serveur, j'utiliserais l'API Magento pour obtenir vos données de produit. –

+0

WOW! beaucoup d'options! Merci Josh. Magento semble trop compliqué pour certaines tâches simples. J'aimerais vraiment essayer vos deux solutions. Je suppose que l'API semble être le bon moyen de contourner le problème. – Landitus

+0

Merci Josh, beaucoup aidé! – enloz

0

Oui, je l'ai fait de plusieurs façons. Le moyen le plus sûr de le faire est d'utiliser les services web Magento s'expose à interroger des objets par programmation. Cela vous isolera des modifications au niveau de la base de données (par exemple, le catalogue de produits plats, un ajout récent).

A défaut (si les performances des services Web ne répondent pas à vos besoins), vous pouvez directement reconstruire les données du catalogue à partir de la base de données. Utilisez les tableaux suivants (en supposant que vous n'êtes pas en utilisant le catalogue plat):

eav_entity_type 
eav_attribute 
catalog_product_entity 
catalog_product_entity_int 
catalog_product_entity_varchar 
catalog_product_entity_text 
catalog_product_entity_decimal 
catalog_product_entity_datetime 

Vous voulez lire sur EAV models avant d'essayer cela. Gardez à l'esprit que ce est en grande partie le sujet sur lequel les gens appellent Magento compliqué.

Espérons que ça aide!

Merci, Joe

+0

Dois-je convertir la base de données EAV à une base de données FLAT pour une approche plus facile? – Landitus

Questions connexes