Bienvenue, Invité
Merci de vous identifier ou de vous inscrire.    Mot de passe perdu?

Obtenir le produit associé à un attribut
(1 lecteur(s)) (1) Invité(s)
Aller en basPage: 1
SUJET:

Obtenir le produit associé à un attribut

#59772
pdebreucq
Fresh Boarder
Messages: 6
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Obtenir le produit associé à un attribut

Il y a 9 Mois, 2 Semaines
Karma: 0  
Bonjour,

Je cherche désespérément à récupérer l'entité Produit associé à un attribut.

Je suis dans la méthode getAllOptions d'un Source Model. J'arrive bien à avoir l'attribut associé au Source Model ($this->getAttribute) mais comment obtenir le Produit associé à cet attribut?

Je peux obtenir l'entité ($this->getAttribute()->getEntity) mais cela me retourne le composant Resource, pas le composant Model.

Donc en fait, la vraie question c'est "comment obtenir le composant Model associé au composant Resource"?

Merci d'avance pour votre aide, car là, je sèche....
 
L'administrateur a désactivé l'accès public en écriture.
#59785
maverick193
Senior Boarder
Messages: 71
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin Date anniversaire: 26/06

Re:Obtenir le produit associé à un attribut

Il y a 9 Mois, 2 Semaines
Karma: 6  
Bonsoir,

Si je comprend bien, tu essaies de récupérer un produit dont l'attribut XY a une valeur bien définit.

Si c'est le cas, ta manière de procéder n'est pas correcte.

Il faut partir des produits (d'une collection de produit) et mettre des filtres sur cette collection de manière à avoir que le(s) produit(s) qui répondent aux critère spécifiés dans les filtres, exemple :

dans ma liste de produits, j'ai qu'un seule produit dont le prix est supérieur à 100 EUR, c'est ce produit que je vais essayé de récupérer :

Code :


//mon Objet collection
$collection = Mage:getResourceModel('catalog/product_colection');

//Ajout d'un filtre sur la collection
// mon filtre est le suivant : prix > 100 EUR
$collection->addAttributeToFilter('price', array('gt' => 100));

//ma collection est filtré, mtn je récupèrer les produits de cette collection
//récupération de tous les produit dans un array
$arrayProdut = $collection->getItems();

//récupération du premier produit dans la liste filtrés
$firstProdut = $collection->getFirstItem();

//récupération du dernier produit dans la liste filtrés
$lastProduct = $collection->getLastItem()



J'espère que ça va t'aider pour récupérer ton Produit.

Si ce n'est pas ce que tu cherche à faire, donne plus de détail, notamment un exemple.

Cordialement,
Maverick193
 
Dernière édition: 03/08/12 à  18:44 Par maverick193.
Mohammed NAHHAS
Développeur certifié MAGENTO PLUS
L'administrateur a désactivé l'accès public en écriture.
#59790
pdebreucq
Fresh Boarder
Messages: 6
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Re:Obtenir le produit associé à un attribut

Il y a 9 Mois, 2 Semaines
Karma: 0  
Bonjour,

Je te remercie pour ta réponse !

Malheureusement, en effet, cela ne correspond pas à ce que je souhaite faire.
Je précise à l'aide d'un exemple:

J'ai un attribut, de type dropdown - appelons le "attribut_liste" - que j'ai créé non pas à l'aide de la console d'admin mais par un script de setup ($installer->addAttribute), ce qui m'a permis de lui affecter un Source Model, chargé d'alimenter mon attribut avec une liste d'options.
J'ai donc créé ce Source Model, avec la fonction getAllOptions (demandée par Magento pour tout composant Source Model). C'est cette fonction qui retourne - sous la forme d'un tableau - ma liste d'options.

Ce composant Source Model fonctionne très bien: si je lui demande de retourner un tableau contenant (Toto, Tata), mes options seront bien (Toto, Tata).
Jusqu'ici tout va bien... C'est après que ça se complique...

Car ma liste d'options à afficher dépend en fait du type de produit auquel est attaché l'attribut!
Par exemple:
- Si le produit est un produit Simple => la liste des options possibles pour l'attribut doit être (Simple 1, Simple 2, Simple 3)
- Si le produit est un produit groupé => la liste des options possibles pour l'attribut doit être (Groupé 1, Groupé 2, Groupé 3)
...

Bien sûr, il s'agit d'un exemple. Dans mon cas, j'ai créé de nouveaux types de produits.

Donc, si je reviens à ma demande: lorsque je code la fonction getAllOptions, j'ai bien accès à l'attribut mais j'ai besoin aussi d'accéder au Produit en cours d'édition pour connaître son type!

Voilà, j'espère que ma demande est plus claire.

Et d'avance, merci pour ta réponse !

Cordialement,
Philippe
 
L'administrateur a désactivé l'accès public en écriture.
#59815
maverick193
Senior Boarder
Messages: 71
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin Date anniversaire: 26/06

Re:Obtenir le produit associé à un attribut

Il y a 9 Mois, 2 Semaines
Karma: 6  
Bonsoir Philippe,

C'est une implémentation spéciale , j'aurai résolu cela en passant par différents attribute_sets (un jeux d'attributs par type de produits) et un Source Model par attributs, je facilite ainsi la récupération des Options et aussi l'administration des options dans le Backend pour un utilisateur qui connaît pas forcement la logique utilisée dans ton Code, mais bon, c'est juste une remarque, on connaît pas tout le projet et on peux pas juger l’implémentation en se basant sur une question sur Fragento

Ma question est : à quel moment tu fait ton getAllOptions ?
 
Mohammed NAHHAS
Développeur certifié MAGENTO PLUS
L'administrateur a désactivé l'accès public en écriture.
#59821
pdebreucq
Fresh Boarder
Messages: 6
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Re:Obtenir le produit associé à un attribut

Il y a 9 Mois, 2 Semaines
Karma: 0  
C'est Magento qui appelle le getAllOptions (lorsqu'il veut obtenir la liste des options possibles pour l'attribut).

Mais j'avais oublié aussi le composant BackEnd. Je pense que je devrai pouvoir déléguer le filtrage des options en ajoutant un composant Backend à mon attribut !

Merci en tout cas pour tes retours!

Philippe
 
L'administrateur a désactivé l'accès public en écriture.
Revenir en hautPage: 1
Modérateur: admin, Narno, Gabriiiel, CaPiT