Magento Forum

   
Table BDD contenant détails produit
 
Sami38
Jr. Member
 
Total Posts:  10
Joined:  2011-06-11
 

Bonjour à tous,

tout est dans le titre, je recherche la table de la base de donnée magento qui contient les détails des produits (principalement l’id, le nom, le stock)

Je développe actuellement un petit logiciel de gestion de stock en JAVA pour mon entreprise et je connecte celui ci à la base de donnée de notre site magento.
Cependant il y a vraiment beaucoup de table et je n’arrive pas à trouver celle qui rassemble tous les produits et leurs détails.

Merci d’avance.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Pierre Michalet
Member
 
Total Posts:  50
Joined:  2010-09-01
Grenoble, France
 

Salut,

tu peux retrouver le nom et l’id dans les tables flat “catalog_product_flat_store_*” et le stock dans la table “cataloginventory_stock_item”

Si le flat n’est pas activé alors il faudra aller chercher le nom et l’id dans les tables EAV ("catalog_product_entity" pour l’id, “catalog_product_entity_varchar” pour le nom après avoir fait la jointure avec l’id de l’attribut correspondant au nom)

Mais tu peux utiliser aussi l’API, en particulier les méthodes cataloginventory_stock_item.list, catalog_product.list et catalog_product.info

 
Magento Community Magento Community
Magento Community
Magento Community
 
Sami38
Jr. Member
 
Total Posts:  10
Joined:  2011-06-11
 

Merci pour ta réponse.

J’ai en effet des tables nommées “ct_catalog_category_flat_store_*”, j’en ai 12 exactements !
Malheureusement quand je regarde dedans la plus part sont vide, et celles qui contiennent des données n’ont rien a voir avec les produits ce sont les données des catégories et sous catégories :(

 
Magento Community Magento Community
Magento Community
Magento Community
 
Pierre Michalet
Member
 
Total Posts:  50
Joined:  2010-09-01
Grenoble, France
 

catalog_product_flat_store_* et non catalog_category_flat_store_* wink

chacune des tables correspond à un site et rassemble les données des produits qui sont initialement éclatées dans les tables EAV

 
Magento Community Magento Community
Magento Community
Magento Community
 
Sami38
Jr. Member
 
Total Posts:  10
Joined:  2011-06-11
 

Autant pour moi ! j’ai les yeux qui flanchent en fin de journée lol.
Bon ben pour catalog_product_flat_store_* je n’en ai pas ! Aucune trace dans ma bdd :/

EDIT: par contre j’ai 8 tables du nom de “ct_catalog_product_flat_*”

 
Magento Community Magento Community
Magento Community
Magento Community
 
Pierre Michalet
Member
 
Total Posts:  50
Joined:  2010-09-01
Grenoble, France
 

Ah oui pas de “store” à la fin désolé
Il y a ce qu’il te faut dedans ?

 
Magento Community Magento Community
Magento Community
Magento Community
 
Sami38
Jr. Member
 
Total Posts:  10
Joined:  2011-06-11
 

Et bien certain sont vide, certaines lignes ont des valeur non remplis mais ca a l’air d’être ce dont j’ai besoin.
Par contre peus tu m’expliquer la différence entre ct_catalog_product_flat_1 et ct_catalog_product_flat_8 ? (les 8 tables)
Est ce des doublons ? Dois-je récupérer toutes les tables ?
Le stock n’est pas présent dans ces tables (c’est ce dont j’ai le + besoin étant donné que je developpe un logiciel de gestion de stock lol)

Merci enore

 
Magento Community Magento Community
Magento Community
Magento Community
 
Pierre Michalet
Member
 
Total Posts:  50
Joined:  2010-09-01
Grenoble, France
 

Normalement, chaque table correspond à un site différent (l’id en suffixe correspond à l’id du store)

Attention, si ton site n’utilise pas le flat (voir l’option “Utiliser un produit de catalogue fixe” dans Système/Configuration/Catalogue) alors ces données peuvent ne pas être à jour et il faudrait éviter de se baser dessus

Pour récupérer les infos de stock d’un produit tu peux utiliser la requête suivante

SELECT `cataloginventory_stock_item`.* FROM `cataloginventory_stock_item`
 
INNER JOIN `catalog_product_entity` AS `pON product_id=p.entity_id 
WHERE 
(cataloginventory_stock_item.product_id='{id_product}') AND (stock_id=1)

Donc si tu utilise les tables flat ça peut donner (exemple sur le store 2)

SELECT `p`.entity_id, `p`.name, `cataloginventory_stock_item`.qty 
FROM 
`catalog_product_flat_2` AS `p`
INNER JOIN `cataloginventory_stock_itemON cataloginventory_stock_item.product_id=p.entity_id
WHERE 
`cataloginventory_stock_item`.stock_id=1

Si ton site n’utilise pas les tables flat alors la requête pour récupérer le name est un peu plus compliquée puisqu’il faudra faire une jointure avec la table catalog_product_entity_varchar

 
Magento Community Magento Community
Magento Community
Magento Community
 
Sami38
Jr. Member
 
Total Posts:  10
Joined:  2011-06-11
 

Bonjour,

je reviens sur mon post après une petite absence sur mon projet.
Je suis en train d’essayer tes requetes SQL mais j’obtient des erreurs, je peux en effet utiliser la table ct_catalog_product_flat_2 qui m’a l’air de connaitre tout mes produits ainsi que la table ct_cataloginventory_stock_item qui contient les bon stock !
J’essaye de faire la jointure des deux mais j’obtient une erreur MySQL :(

Merci de ton aide

EDIT: autant pour moi ca marche quand j’enlève les simple quote ‘ ‘
Merci

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top