22/11/2012, 18:15:27
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.3
#~ Url du site :
#~ Hébergeur / Soft : infomaniak
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour,
est-ce que quelqu'un pourrait m'aider à modifier le module Cart pour qu'il prenne en compte un champs supplémentaire ?
Je m'explique,
j'ai modifié le module Products de manière à avoir un champs "fees" qui me permets d'ajouter un forfait supplémentaire
à mon produit.
Je ne pouvais pas simplement l'ajouter en tant qu'attribut au produit car le calcule suivant se fait lors de l'ajout au panier :
prix de l'article plus + prix attribut X quantité = sous-total
et ce que je cherche à faire est :
( prix de l'article X quantité ) + forfait = sous-total
cela fait un (long) moment que je suis sur ce problème, et je n'arrive pas à modifier le module Cart de manière à ce qu'il prenne en compte le champs "fees".
J'ai bien réussi à modifier une partie de manière à ce que dans le formulaire d'ajout au panier j'ai un input avec mon champs fees et sa valeur comme ceci :
Code :
[== Indéfini ==]
<input type="hidden" value="50" name="m0deb7cart_fees">
mais lorsque je clique sur ajouter au panier la réponse est :
Impossible d'ajouter cet élément à votre panier.Veuillez consulter les régles du site web.
ce qui parraît logique puisque je n'ai modifié qu'un fichier du module, à savoir :
action.default.php, comme ceci :
Code :
[== Indéfini ==]
if( isset($params['cart_submit']) )
{
$quantity = 1;
$fees = $params['cart_fees'];
if( isset($params['cart_quantity']) )
{
$quantity = (int)$params['cart_quantity'];
}
if( $quantity > 0 )
{
// Expand the cart from the session
et
Code :
[== Indéfini ==]
if( isset($params['addindividual']) && $params['addindividual'] && count($attribs) )
{
// each individual attribute set defines an item in the cart.
foreach( $attribs as $one_item )
{
$res = $this->_add_cart_item($supplier_mod,$product_id,
$one_item->sku,$quantity,$fees,
array($one_item));
if( !$res ) break;
}
}
et
Code :
[== Indéfini ==]
$res = $this->_add_cart_item($supplier_mod,$product_id,
$sku,$quantity,$fees,$attribs);
}
puis
Code :
[== Indéfini ==]
$smarty->assign('formstart',$this->CGCreateFormStart($id,'default',$returnid,$parms));
$smarty->assign('formend',$this->CreateFormEnd());
$smarty->assign('quantityname',$id.'cart_quantity');
$smarty->assign('feesname',$id.'cart_fees');
$smarty->assign('submitname',$id.'cart_submit');
$smarty->assign('addtocarttext',$this->Lang('add_to_cart'));
d'après ce que j'ai cru comprendre, il faudrait modifier encore les fichiers
- action.mycart.php
- action.viewcart.php
- Cart.module.php
mais je ne comprends pas comment faire...
Voilà, en espérant que quelqu'un puisse m'aider...
![Smile Smile](https://forum.cmsmadesimple.fr/images/smilies/smile.png)
Cela me permettra aussi de mieux comprendre comment cmsms fonctionne
![Smile Smile](https://forum.cmsmadesimple.fr/images/smilies/smile.png)
sacré CMS en tous les cas
![Smile Smile](https://forum.cmsmadesimple.fr/images/smilies/smile.png)