Accueil arrow Forums
Forums Fragento
Accueilvue en cascadeRèglesAide
Bienvenue, Invité
Merci de vous identifier ou de vous inscrire.    Mot de passe perdu?
Base de donnée Magento : Produit -> Fabriquant (1 lecteur(s)) (1) Invité(s)
Aller en bas Répondre Ajouté aux favoris : 0
SUJET: Base de donnée Magento : Produit -> Fabriquant
#2745
WidZ (Utilisateur)
Fresh Boarder
Messages: 6
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Base de donnée Magento : Produit -> Fabriquant Il y a 1 Mois, 3 Semaines Karma: 0  
Bonjour,
Je souhaite développer un outil de mise à jour externe à Magento.
Je suis actuellement en train d'étudier la base qui est assez complexe et j'ai beau chercher, je n'arrive pas à trouver où se fait le lien entre les produits et le fabriquant.
Si quelqu'un connait la réponse, ça me serait de très grande utilitée.
Merci d'avance,
Widz
 
  L'administrateur a désactivé l'accès public en écriture.
#2754
abi (Utilisateur)
Junior Boarder
Messages: 33
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Base de donnée Magento : Produit -> Fabriquant Il y a 1 Mois, 3 Semaines Karma: 3  
Bonjour Widz,
la gestion des tables dans magento est assez compliquée.
Ils utilisent le modèle EAV qui permet d'étendre les tables sans toucher à la structure existante mais qui multiplie les accès à la base pour rechercher une info.

Pour ton problème, il faut que tu cherches dans la table eav_attribute, le attribute_id qui correspond au fabricant. Pour le trouver tu fais une recherche de 'manufacturer' dans la zone attribute_code.

Une fois que tu as ton attribute_id, si tu cherches le lien avec le produit, alors c'est dans la table catalog_product_entity_int que tu vas trouver ta relation : le entity_id étant la référence à ton produit, le attribute_id étant la référence au fabricant et le value étant le code du fabricant que tu retrouves dans la table eav_attribute_option_value.

J'esperes que tu y retrouveras tes petits Bon courage !!
 
  L'administrateur a désactivé l'accès public en écriture.
#2768
WidZ (Utilisateur)
Fresh Boarder
Messages: 6
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Base de donnée Magento : Produit -> Fabriquant Il y a 1 Mois, 3 Semaines Karma: 0  
Je ne crois pas avoir bien compris le truc.
Je fais :
Code :
SELECT `attribute_id` FROM `eav_attribute` WHERE `attribute_code`="manufacturer"

ça me retourne 102.

ensuite :
Code :
SELECT * FROM `catalog_product_entity_int` WHERE `attribute_id`=102

et ça ne me retourne rien du tout.

Tu pourrais pas me faire une requète SQL qui me permettrait de récupérer le nom du fabriquant en fonction de l'id du produit ?

Merci beaucoup abi.
 
  L'administrateur a désactivé l'accès public en écriture.
#2769
nicolas46 (Utilisateur)
Expert Boarder
Messages: 127
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin
Re:Base de donnée Magento : Produit -> Fabriquant Il y a 1 Mois, 3 Semaines Karma: 0  
Quant j'ai vu la question je me suis dit voilà un bon défi pour voir si je maîtrise le monstre qu'est la BD de Magento. Tiens voilà ta requète :

SELECT value FROM mage_eav_attribute_option_value WHERE option_id=(
SELECT value FROM mage_catalog_product_entity_int WHERE entity_id=(
SELECT entity_id FROM mage_catalog_product_entity WHERE sku='6666')
AND attribute_id=(SELECT attribute_id FROM mage_eav_attribute WHERE `attribute_code`="manufacturer" ) ) ;

ATTENTION
Cela retourne le nom du fabriquant selon le sku du produit, si tu le veux selon l'id de magento change sku en entity_id.
Le préfixe de mes tables et mage_


HS : J'ai toujours un PB avec le tag CODE du forum, je peux pas l'utiliser sa plante à chaque fois !!
 
 
Dernière édition: 08-07-2008 à 11:52 Par nicolas46.
  L'administrateur a désactivé l'accès public en écriture.
#2772
abi (Utilisateur)
Junior Boarder
Messages: 33
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Base de donnée Magento : Produit -> Fabriquant Il y a 1 Mois, 3 Semaines Karma: 3  
Bonjour,

Voila un sql qui te permet d'afficher la liste de tous tes produits qui ont un fabricant renseigné :
Code :

SELECT
eav_attribute_option_value.value as fabricant, catalog_product_entity_int.entity_id as id_produit
FROM
eav_attribute_option_value,catalog_product_entity_int
WHERE
catalog_product_entity_int.attribute_id=510
and eav_attribute_option_value.option_id=catalog_product_entity_int.value
and eav_attribute_option_value.store_id=catalog_product_entity_int.store_id


L'hypothèse est que le code attribut du fabricant est 510. Si tu utilises la base d'exemple ce que je pense puisque 102 dont tu parlais est le code attribut 'manufacturer' dans la base exemple, effectivement cela ne te retourneras rien car l'attribut manufacturer n'est pas utilisé dans les produits de la base exemple.
Ils ont rajouté un autre fabricant 'computer_manufacturers' avec le code attribut_id a 510 et c'est celui là qui est utilisé dans les produits de la base exemple.

En esperant que cela puisse t'aider.

Abi
 
  L'administrateur a désactivé l'accès public en écriture.
#2796
WidZ (Utilisateur)
Fresh Boarder
Messages: 6
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Base de donnée Magento : Produit -> Fabriquant Il y a 1 Mois, 3 Semaines Karma: 0  
Merci nico mais ta requète ne foncionne pas ( faudra réviser un peut ).
La requète de abi marche très bien. Mais j'en conclu que tous les fabricants ne sont pas renseignés ?
 
 
Dernière édition: 09-07-2008 à 02:04 Par WidZ.
  L'administrateur a désactivé l'accès public en écriture.
#2797
WidZ (Utilisateur)
Fresh Boarder
Messages: 6
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Base de donnée Magento : Produit -> Fabriquant Il y a 1 Mois, 3 Semaines Karma: 0  
C'est bon j'ai compris le système des attributs chef.
J'arrive tout juste dans l'univers de magento et j'admet qu'il faut un petit temps d'adaptation par rapport aux autres solution d'E-commerce.
Je retire ma question

Voila une requète pour récupérer le fabriquant d'un produit selon son id l'id de son type et son magasin :

Code :

SELECT
value
FROM
eav_attribute_option_value
WHERE option_id in(
SELECT
value
FROM
catalog_product_entity_int
WHERE
entity_id= *id_produit*
AND attribute_id= *id_attribut*
AND store_id= *id_magasin*
)
AND store_id= *id_magasin*
 
 
Dernière édition: 09-07-2008 à 02:04 Par WidZ.
  L'administrateur a désactivé l'accès public en écriture.
#2798
nicolas46 (Utilisateur)
Expert Boarder
Messages: 127
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin
Re:Base de donnée Magento : Produit -> Fabriquant Il y a 1 Mois, 2 Semaines Karma: 0  
Ben chez moi sa marche parfaitement, j'obtiens le nom du manufacturer selon le sku du produit et en plus je rentre en dur dans la requête que le sku du produit et pas l'id de l'attribut manufacturer ou encore l'id du magasin qui peut être différents selon les bases. Si cela ne marché pas je l'aurais pas mis sur le forum

Code :
SELECT value FROM eav_attribute_option_value WHERE option_id=(
SELECT value FROM catalog_product_entity_int WHERE entity_id=(
SELECT entity_id FROM catalog_product_entity WHERE sku=*sku*)
AND attribute_id=(SELECT attribute_id FROM eav_attribute WHERE `attribute_code`="manufacturer" ) ) ;
 
 
Dernière édition: 09-07-2008 à 09:36 Par nicolas46.
  L'administrateur a désactivé l'accès public en écriture.
Revenir en haut Répondre
Développé par FireBoardObtenir les derniers messages directement sur votre PC