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...
Cela me permettra aussi de mieux comprendre comment cmsms fonctionne
sacré CMS en tous les cas