Pourquoi manque magento une classe de type pour les produits bundle?
-
16-10-2019 - |
Question
Je regarde une section de code qui utilise ceci:
if ($_item->getProduct()->getTypeId() === Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE)
pour déterminer si un produit est configurable. Je suis maintenant de modifier envie que pour détecter si le produit est un paquet - mais il se trouve, il n'y a pas Mage_Catalog_Model_Product_Type_Bundle
. De même est-il un Mage_Checkout_Block_Cart_Item_Renderer_Bundle
. En fait, je ne vois pas à trouver toutes les classes dédiées bundle, partout - c'est comme ils n'existent pas
Quelle est la raison? Comment les développeurs censés traiter des offres groupées, sans méthodes comme getChildrenIds ou type_code? Sont juste censés être des choses hardcoding?
La solution
Les offres combinées ont été introduites après la sortie de Magento 1, et inconnu raisons, leur mise en œuvre a été séparé dans un nouveau module. système modulaire de Magento et l'espace config.xml
partagé permet à ce genre de séparation.
Un coup d'œil rapide à Mage_Bundle
révèle une classe de type
app/code/core/Model/Product/Type.php
et un moteur de rendu
app/code/core/Block/Checkout/Cart/Item/Renderer.php
Autres conseils
Les produits bundle ont été ajoutés plus tard dans Magento (après 1.0).
Il est un module totalement séparé. Vérifiez Mage_Bundle
.