Ajout d'un type de produit personnalisé dans Magento

Parfois, les types de produits disponibles ne suffisent pas. Magento couvre assez bien les différents types, mais il existe simplement des situations où il est plus logique de choisir un type de produit distinct.. 

Pour moi, une de ces situations était lorsque j'ai eu besoin de créer un module de produit personnalisé capable de générer un PDF personnalisé basé sur les options du produit acheté..

De plus, ce n'est pas une solution si vous devez créer un produit avec un attribut spécifique, car Magento fournit déjà ces fonctionnalités. Vous devriez plutôt trouver ce guide pratique pour savoir quand (ou si) vous devez être capable d'identifier un type spécifique de produit n'importe où dans le système.. 

Par exemple, comme pour y accrocher des observateurs.

Configurer le module

Ce guide suppose que vous avez des connaissances de base sur le fonctionnement interne d’un module Magento. Construire un bon module est un peu un art en soi et c'est le sujet d'un article qui lui est propre. Cela dit, nous allons voir comment configurer le module pour cela..

Passons maintenant au point principal de discussion.

Comme tout dans Magento, notre travail ici aussi commence dans les fichiers de configuration. Nous voulons créer un module distinct pour cela, car dans Magento, nous voulons des modules séparés pour tout. En gardant les choses séparées et modulaires dans Magento, nous sommes heureux. Je me suis retrouvé avec Robogento Printable, Robogento étant mon entreprise et Printable le nom du module.

Pour ajouter un type de produit, nous devons en informer Magento et le définir. Ce sont les parties applicables de la config.xml fichier que nous allons avoir besoin, vous aurez besoin de remplir les blancs vous-même, bien sûr:

     imprimable / type_produit printable / product_price 1  

On y va. 

Comme vous pouvez le constater, mon module est défini comme «imprimable». L’étiquette permet de filtrer les grilles affichant le produit dans le backend et lors de la création d’un nouveau produit. Le modèle et le modèle de prix sont où le plaisir commence. Chaque produit a besoin d'un type, cela peut être assez simple.

Étendre Magento

Étendez le système de base en créant le modèle Type. Observez le chemin du fichier en fonction de la définition de la classe:

La classe Robogento_Printable_Model_Product_Type étend Mage_Catalog_Model_Product_Type_Simple .

Et c'est parti. 

Tout à coup, notre produit imprimable est désormais un clone du produit simple que Magento a déjà compris. Ce qui se passe réellement ici, c’est qu’en sortant du type simple, nous réutilisons toutes les fonctionnalités de ce type de produit. L’avantage supplémentaire est que nous pouvons très simplement remplacer les fonctionnalités existantes par les nôtres si nous sommes si enclins à le faire..

Il y avait une autre chose que je vous ai montré pour notre config.xml fichier. Le modèle de prix du type de produit. À peu près la même chose s'applique ici:

class Robogento_Printable_Model_Product_Price étend Mage_Catalog_Model_Product_Type_Price 

Comme vous pouvez le constater, nous sortons simplement du système existant de Magento. Magento a assez de défauts, mais les types de produits simples et virtuels étaient parmi les mieux pensés et c'est toujours une bonne idée de réutiliser le code existant quand vous le pouvez..

Normalement, je dirais qu'il y a plus que cela, mais dans le cas de Magento, c'est vraiment tout ce qu'il y a à faire. Nous avons maintenant essentiellement créé un alias du système Simple Product et l’avons nommé Printable.. 

Le produit imprimable utilisera toutes les fonctionnalités et définitions telles qu'elles sont configurées pour les produits simples. Vous nommez donc deux adresses, les paramètres d’inventaire. Si vous avez seulement besoin d’une adresse de facturation, développez-la à partir du produit virtuel. Si vous souhaitez fournir des produits téléchargeables, mais avec un ensemble de fonctionnalités légèrement différent, étendez-vous à partir du système téléchargeable..

Ce qu'il faut garder à l'esprit

Comme je l'ai dit au début, il ne s'agit pas de créer un type de T-shirt dans votre nouvelle boutique Magento. Dans ce cas, vous êtes probablement à la recherche des ensembles d'attributs dans le backend.

Grâce à cela, vous serez en mesure de filtrer rapidement des produits spécifiques, que ce soit dans le backend ou lors de l'utilisation d'autres fonctionnalités de Magento telles que des observateurs ou des collections..