Développer avec RBS Change : [Résolu] Retrouver un produit lié par symétrie (ou non)

  • 74553.1

    14/02/2013 19:00


    Mathias
    Rang : Expert
    Bonjour,

    Je cherche à retrouver un produit lié par symétrie (ou non si ce n'est pas nécessaire ;))
    Je m'explique :
    - j'ai un produit décliné, qui possède 5 accessoires (des produits déclinés eux aussi).
    - les liaisons sont faites depuis le BO via l'onglet "produits liés" en mode complémentaire et symétrique (généré et à jour).
    - je suis sur la fiche de mon produit décliné, je clique sur un accessoire et j'arrive sur la fiche de mon accessoire.
    - J'ai besoin de pouvoir faire un lien retour depuis la fiche de cet accessoire vers mon produit décliné.

    Nous avons fait en sorte qu'un accessoire ne possède qu'un seul produit d'origine.

    Ca fonctionnait précédemment sans l'utilisation de la nouvelle API de produits liés, mais je n'y arrive pas avec la nouvelle :(

    une idée de la marche à suivre ?

    Développe sous linux Ubuntu 12.04 LTS Desktop
    Projet ecommerce core 3.6.7
  • 74553.2 en réponse à 74553.1 écrit par Mathias

    15/02/2013 09:00


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Bonjour,

    Comme on peut le voir dans le bloc catalog_BlockCrossSellingListAction, pour retrouver la liste des produits liés, on appelle :
    catalog_CompiledcrossitemService::getInstance()->getDisplayableLinkedIds($target, $linkType, $shop);
    Du coup si vous n'avez qu'un seul produit lié, vous n'aurez qu'un seul id retourné.

    Et au besoin vous pouvez vous inspirer du code de la méthode si vous voulez adapter la requête.

    L'idée en tous cas c'est de se baser sur les compiledcrossitem publiés qui sont générés pour chacune des déclinaisons contrairement aux crossitem qui correspondent aux liaisons telles qu'on les voit en BO.
  • 74553.3 en réponse à 74553.2 écrit par Gaël Port

    15/02/2013 11:30


    Mathias
    Rang : Expert
    ahhh super !

    je me perdais un peu avec la méthode
    catalog_CrossitemService::getInstance()->getCrossitemsInfosByTarget()


    mais ça marche beaucoup mieux avec celle-ci :)

    merci !

    Développe sous linux Ubuntu 12.04 LTS Desktop
    Projet ecommerce core 3.6.7
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1367 membres
Aucun membre connecté