Aggiunta di un tipo di prodotto personalizzato in Magento

A volte i tipi di prodotto disponibili non sono sufficienti. Magento ha i diversi tipi abbastanza ben coperti, ma ci sono solo situazioni in cui ha semplicemente più senso avere un tipo di prodotto separato. 

Per me, una di quelle situazioni era quando avevo bisogno di creare un modulo prodotto personalizzato che gestisse la generazione di un PDF personalizzato in base alle opzioni del prodotto che è stato acquistato.

Inoltre, questa non è una soluzione se è necessario creare un prodotto con un attributo specifico poiché Magento fornisce già queste funzionalità. Invece, dovresti trovare questa guida a portata di mano per quando (o se) devi essere in grado di identificare un tipo specifico di prodotto in qualsiasi parte del sistema. 

Ad esempio, come quando si agganciano osservatori al suo interno.

Impostare il modulo

Questa guida assumerà che tu abbia una conoscenza di base del funzionamento interno di un modulo Magento. Costruire un buon modulo è un po 'un'arte a se stante ed è l'argomento di un post tutto suo. Detto questo, daremo un'occhiata a come impostare il modulo per questo.

Ora, sul punto principale della discussione.

Come tutto in Magento, anche il nostro lavoro inizia nei file di configurazione. Vogliamo creare un modulo separato per questo perché in Magento, vogliamo moduli separati per tutto. Mantenere le cose separate e modulari in Magento ci rende felici. Ho finito con Robogento Printable, Robogento era la mia azienda e stampabile il nome del modulo.

Per aggiungere un tipo di prodotto, dobbiamo dirlo a Magento e definirlo. Queste sono le parti applicabili del config.xml file di cui avremo bisogno, dovrai compilare tu stesso gli spazi vuoti, ovviamente:

... ...      stampabile / product_type stampabile / product_price 1  ... 

Eccoci. 

Come puoi vedere, il mio modulo è definito come "stampabile", l'etichetta è a beneficio del filtraggio nelle griglie che mostrano il prodotto nel back-end e quando si crea un nuovo prodotto. Il modello e il modello di prezzo sono dove inizia il divertimento. Ogni prodotto ha bisogno di un tipo, questo può essere abbastanza semplice.

Estensione di Magento

Estendere il sistema di base creando il modello Tipo. Guarda il percorso del file in base alla definizione della classe:

class Robogento_Printable_Model_Product_Type estende Mage_Catalog_Model_Product_Type_Simple 

E noi andiamo. 

All'improvviso il nostro prodotto stampabile è ora un clone del Prodotto Semplice che Magento già conosce. Quello che sta realmente accadendo qui è che estendendoci al Simple Type, stiamo riutilizzando tutte le funzionalità che ha il tipo di prodotto. Il vantaggio ulteriore è che possiamo semplicemente ignorare le funzionalità esistenti con le nostre se siamo così inclini.

C'era un'altra cosa che ti ho mostrato per il nostro config.xml file. Il modello di prezzo del tipo di prodotto. Molto vale la stessa cosa qui:

class Robogento_Printable_Model_Product_Price estende Mage_Catalog_Model_Product_Type_Price 

Come puoi vedere, stiamo semplicemente estendendo nuovamente dal sistema esistente di Magento. Magento ha abbastanza difetti, ma i tipi di prodotto semplici e virtuali erano tra le parti meglio pensate di esso ed è sempre una buona idea riutilizzare il codice esistente quando è possibile.

Normalmente, direi che c'è di più, ma nel caso di Magento, questo è davvero tutto quello che c'è da fare. Ora abbiamo essenzialmente creato un alias del sistema Simple Product e lo abbiamo chiamato Printable. 

Il prodotto stampabile utilizzerà tutte le funzionalità e le definizioni come sono configurate per i prodotti semplici. Quindi, due indirizzi, le impostazioni di inventario, il tuo nome Se hai solo bisogno di un indirizzo di fatturazione, estendi invece dal prodotto virtuale. Se si desidera fornire prodotti scaricabili, ma con un set di funzionalità leggermente diverso, estendere dal sistema scaricabile.

Cosa tenere a mente

Come ho detto all'inizio, questo non è quello di creare un tipo di T-Shirt nel tuo nuovo negozio Magento. In questo caso, probabilmente stai cercando i set di attributi nel back-end.

Usando questo, sarai in grado di filtrare rapidamente prodotti specifici, sia nel back-end che durante l'utilizzo di altre funzionalità di Magento come osservatori o raccolte.