modification du module Cart pour champs supplémentaire -
Annadrill - 22/11/2012
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
modification du module Cart pour champs supplémentaire -
Jean le Chauve - 22/11/2012
Normalement, tu n'as pas à modifier les fichiers php d'un module, sans quoi tu risques de gros bugs (sans parler des upgrades futures du module).
Malheureusement, il n'y a pas beaucoup de contributeurs sur ce forum qui utilisent products.
Tu devrais tenter en parallèle ta chance sur le .org :
http://forum.cmsmadesimple.org/viewforum.php?f=7&sid=35dd592ab2eaea1c24d6bc272af8cb38
De plus Calguy, le créateur de ce module s'y trouve, il pourra certainement t'aiguiller.
Tu as quand même intérêt à bien expliquer tes désirs en anglais.
Et surtout, ne poste pas de message indiquant des modifs dans les fichiers php, ton post irait directement à la poubelle. Ils sont très stricts sur ce point.
modification du module Cart pour champs supplémentaire -
Annadrill - 22/11/2012
Hello, merci beaucoup, je vais tenter ma chance