En gros, vous devez créer un type de produit personnalisé afin que vous puissiez effectuer ce calcul personnalisé sans modifier le type de produit «Simple» qui pourrait encore être utilisé pour d'autres produits dans le magasin. Le vrai travail sera fait dans son modèle de prix.
Définition d'un nouveau type est facile:
<config>
<global>
<catalog>
<product>
<type>
<CUSTOM>
<label>CUSTOM PRODUCT TYPE</label>
<model>catalog/product_type_abstract</model>
<priceModel>YOURMODULE/product_type_CUSTOM<priceModel>
</CUSTOM>
</type>
</product>
</catalog>
</global>
</config>
Le module a besoin an install script qui attribue les divers attributs liés au prix de type personnalisé, sinon ils ne seront pas visibles sur la page d'édition du produit.
Cela attend maintenant une classe YOURMODULE_Model_Product_Type_CUSTOM_Price
qui devrait descendre de Mage_Catalog_Model_Product_Type_Price
. La nouvelle classe doit remplacer la méthode suivante:
protected function _applyOptionsPrice($product, $qty, $finalPrice)
Voir la méthode du parent pour savoir comment cela fonctionne, puis faites-le fonctionner comme vous le souhaitez.
J'imagine que vous parcourriez probablement toutes les options de produits et conserveriez deux totaux, l'un des prix fixes et l'autre des pourcentages. Ajoutez la valeur fixe au prix de base, puis multipliez par la valeur des pourcentages.
Ensuite, tout ce qui reste est d'ajouter de nouveaux produits dans l'admin en utilisant votre nouveau type.
Vous faites paraître si facile :) –