cockpitinferno Posted February 17, 2012 Share Posted February 17, 2012 je souhaiterais dupliquer la fonction emballage cadeau pour proposer à mes clients une option d'assurance sur le transport. j'ai donc commencé à copier tout ce que je pouvais trouver à propos des emballages cadeau en changeant el nom par assurance. pour le moment j'ai modifier les fichiers suivants: dans admin: adminpreferences.php dans classes: order.php, cart.php dans le thème: order-carrier et order-details .tpl dans controllers: orderopccontrollers.php enfin, j'ai ajouté un champ identique au champ "gift" dans la base ps_cart malgré tout je n'arrive pas à obtenir l'ajout de mon assurance. la checkbox apparait bien et en backoffice les champs apparaissent. par contre la checkbox ne reste pas cochée et aucune ligne supplémentaire n'apparait dans le panier, le montant total reste le même. je cherche déjà à savoir si je serais passée à coté de certains fichiers à modifier, et éventuellement des infos sur les modifs coté cart.php notamment ce bout de code (c'est moi qui ai ajouté les "assurance_fees...) $order_total_discount = 0; if ($shrunk AND $order_total < (-$wrapping_fees - $order_total_products - $shipping_fees -$assurance_fees)) $order_total_discount = -$wrapping_fees - $order_total_products - $shipping_fees -$assurance_fees; else $order_total_discount = $order_total; } } if ($type == Cart::ONLY_SHIPPING) return $shipping_fees; if ($type == Cart::ONLY_WRAPPING) return $wrapping_fees; if ($type == Cart::ONLY_assurance) return $assurance_fees; if ($type == Cart::BOTH) $order_total += $shipping_fees + $wrapping_fees + $assurance_fees; if ($order_total < 0 AND $type != Cart::ONLY_DISCOUNTS) return 0; if ($type == Cart::ONLY_DISCOUNTS AND isset($order_total_discount)) return Tools::ps_round((float)($order_total_discount), 2); return Tools::ps_round((float)($order_total), 2); Link to comment Share on other sites More sharing options...
cockpitinferno Posted February 18, 2012 Author Share Posted February 18, 2012 up, ca n'interesse personne cette modif? Link to comment Share on other sites More sharing options...
cockpitinferno Posted February 25, 2012 Author Share Posted February 25, 2012 up Link to comment Share on other sites More sharing options...
cockpitinferno Posted March 14, 2012 Author Share Posted March 14, 2012 encore un up, ca doit bien intéresser qqun de faire cette modif. Link to comment Share on other sites More sharing options...
cockpitinferno Posted March 17, 2012 Author Share Posted March 17, 2012 merci en fait je souhaiterais avoir exactement la même fonction que emballage cadeaux, càd une case à cocher qui ajoute un montant fixe dans le panier. (montant paramétrable dans le back office) exactement comme l'emballage cadeau actuel. il faut donc copier les 2 champs du back office et le champ du front office et faire en sorte que ca ajoute le montant dans le panier. voilà, merci d'avance de vous intérésser à ma demande. Link to comment Share on other sites More sharing options...
typiac Posted May 2, 2012 Share Posted May 2, 2012 Ajoute "appel d'offre" en tête de ton topic et tu verras que d'un seul coup, il y a aura plein de monde pour te répondre! C'est ça la communauté prestashop.... Link to comment Share on other sites More sharing options...
cockpitinferno Posted May 2, 2012 Author Share Posted May 2, 2012 merci du conseil. je viens de le faire. Link to comment Share on other sites More sharing options...
typiac Posted May 2, 2012 Share Posted May 2, 2012 Link to comment Share on other sites More sharing options...
IchabOd Posted May 2, 2012 Share Posted May 2, 2012 as-tu aussi créé une fonction identique à _assignWrappingAndTOS() qui est dans le ParentOrderController ? Link to comment Share on other sites More sharing options...
ultraxa Posted May 2, 2012 Share Posted May 2, 2012 alors je vais peut etre pas t'aider mais au moins ça va faire avancer le smilblick, utilise tu l'emballage cadeau ? car il suffit de changer les termes ... Link to comment Share on other sites More sharing options...
cockpitinferno Posted May 3, 2012 Author Share Posted May 3, 2012 oui j'utilise la fonction emballage cadeau. sinon j'aurais déjà fait ce que tu dis. je suis sure que cette option est intéréssante à développer. merci ichabod, je vais regarder de coté dès que j'ai un peu de temps. Link to comment Share on other sites More sharing options...
IchabOd Posted May 3, 2012 Share Posted May 3, 2012 dans assignWrappingAndTOS(), il faut bien entendu ne pas copier ce qui concerne les TOS mais seulement le wrapping. Puis appeler la fonction que tu vas créer dans le step 2 de order.php Link to comment Share on other sites More sharing options...
cockpitinferno Posted May 3, 2012 Author Share Posted May 3, 2012 alors voilà ce que j'ai emplacé ca: protected function _assignWrappingAndTOS() { // Wrapping fees $wrapping_fees = (float)(Configuration::get('PS_GIFT_WRAPPING_PRICE')); $wrapping_fees_tax = new Tax((int)(Configuration::get('PS_GIFT_WRAPPING_TAX'))); $wrapping_fees_tax_inc = $wrapping_fees * (1 + (((float)($wrapping_fees_tax->rate) / 100))); // TOS $cms = new CMS((int)(Configuration::get('PS_CONDITIONS_CMS_ID')), (int)(self::$cookie->id_lang)); $this->link_conditions = self::$link->getCMSLink($cms, $cms->link_rewrite, true); if (!strpos($this->link_conditions, '?')) $this->link_conditions .= '?content_only=1'; else $this->link_conditions .= '&content_only=1'; self::$smarty->assign(array( 'checkedTOS' => (int)(self::$cookie->checkedTOS), 'recyclablePackAllowed' => (int)(Configuration::get('PS_RECYCLABLE_PACK')), 'giftAllowed' => (int)(Configuration::get('PS_GIFT_WRAPPING')), 'cms_id' => (int)(Configuration::get('PS_CONDITIONS_CMS_ID')), 'conditions' => (int)(Configuration::get('PS_CONDITIONS')), 'link_conditions' => $this->link_conditions, 'recyclable' => (int)(self::$cart->recyclable), 'gift_wrapping_price' => (float)(Configuration::get('PS_GIFT_WRAPPING_PRICE')), 'total_wrapping_cost' => Tools::convertPrice($wrapping_fees_tax_inc, new Currency((int)(self::$cookie->id_currency))), 'total_wrapping_tax_exc_cost' => Tools::convertPrice($wrapping_fees, new Currency((int)(self::$cookie->id_currency))))); } protected function _assignPayment() { self::$smarty->assign(array( 'HOOK_TOP_PAYMENT' => Module::hookExec('paymentTop'), 'HOOK_PAYMENT' => Module::hookExecPayment() )); } par ca: protected function _assignWrappingAndTOS() { // Wrapping fees $wrapping_fees = (float)(Configuration::get('PS_GIFT_WRAPPING_PRICE')); $wrapping_fees_tax = new Tax((int)(Configuration::get('PS_GIFT_WRAPPING_TAX'))); $wrapping_fees_tax_inc = $wrapping_fees * (1 + (((float)($wrapping_fees_tax->rate) / 100))); // TOS $cms = new CMS((int)(Configuration::get('PS_CONDITIONS_CMS_ID')), (int)(self::$cookie->id_lang)); $this->link_conditions = self::$link->getCMSLink($cms, $cms->link_rewrite, true); if (!strpos($this->link_conditions, '?')) $this->link_conditions .= '?content_only=1'; else $this->link_conditions .= '&content_only=1'; self::$smarty->assign(array( 'checkedTOS' => (int)(self::$cookie->checkedTOS), 'recyclablePackAllowed' => (int)(Configuration::get('PS_RECYCLABLE_PACK')), 'giftAllowed' => (int)(Configuration::get('PS_GIFT_WRAPPING')), 'cms_id' => (int)(Configuration::get('PS_CONDITIONS_CMS_ID')), 'conditions' => (int)(Configuration::get('PS_CONDITIONS')), 'link_conditions' => $this->link_conditions, 'recyclable' => (int)(self::$cart->recyclable), 'gift_wrapping_price' => (float)(Configuration::get('PS_GIFT_WRAPPING_PRICE')), 'total_wrapping_cost' => Tools::convertPrice($wrapping_fees_tax_inc, new Currency((int)(self::$cookie->id_currency))), 'total_wrapping_tax_exc_cost' => Tools::convertPrice($wrapping_fees, new Currency((int)(self::$cookie->id_currency))))); } protected function _assignASSURANCE() { // assurance fees $assurance_fees = (float)(Configuration::get('PS_ASSURANCE_PRICE')); $assurance_fees_tax = new Tax((int)(Configuration::get('PS_ASSURANCE_TAX'))); $assurance_fees_tax_inc = $assurance_fees * (1 + (((float)($assurance_fees_tax->rate) / 100))); self::$smarty->assign(array( 'assurance' => (int)(Configuration::get('PS_ASSURANCE')), 'assurance_price' => (float)(Configuration::get('PS_ASSURANCE_PRICE')), 'total_assurance_cost' => Tools::convertPrice($assurance_fees_tax_inc, new Currency((int)(self::$cookie->id_currency))), 'total_assurance_tax_exc_cost' => Tools::convertPrice($assurance_fees, new Currency((int)(self::$cookie->id_currency))))); } protected function _assignPayment() { self::$smarty->assign(array( 'HOOK_TOP_PAYMENT' => Module::hookExec('paymentTop'), 'HOOK_PAYMENT' => Module::hookExecPayment() )); } il doit encore manquer qqchose car ca n'a rien changé. la case ne reste pas cochée et rien ne change dans le panier. Link to comment Share on other sites More sharing options...
typiac Posted May 3, 2012 Share Posted May 3, 2012 Perso, je ne comprends pas ta méthode de calcul. Tu veux que l'assurance soit calculée en pourcentage du montant de la commande? Link to comment Share on other sites More sharing options...
IchabOd Posted May 4, 2012 Share Posted May 4, 2012 heu là elle n'est pas en % de la commande, c'est juste un montant pour lequel tu appliques un taux de tva. Sinon cette fonction calcule le montant ttc et l'envoie à smarty, ça ne recalcule pas le montant total du panier ni ne laisse la case cochée.... Link to comment Share on other sites More sharing options...
cockpitinferno Posted May 4, 2012 Author Share Posted May 4, 2012 ok, mais ou est ce que je dois modifier pour que la case reste cochée et que ce soit prix en compte dans le panier? Link to comment Share on other sites More sharing options...
typiac Posted May 4, 2012 Share Posted May 4, 2012 Ecoutes, je suis en train de regarder mais j'avoue que je ne vois pas où le renvoi se fait.... je continue de chercher car ce problème est intéressant Link to comment Share on other sites More sharing options...
IchabOd Posted May 4, 2012 Share Posted May 4, 2012 (edited) Dans ParentOrderController, la fonction _processcarrier() assign à l'objet $cart la valeur de gift (0 ou 1) as-tu fait de même pour assurance ? Comme ça dans order-carrier.tpl tu pourras cocher par défaut la checkbox si la variable _assurance est à 1 : <input type="checkbox" name="assurance" id="assurance" value="1" {if $cart->assurance == 1}checked="checked"{/if} /> t'as fait un tour dans le cartcontroller ? t'as déclaré la variable dans la classe cart.php ? Edited May 4, 2012 by IchabOd (see edit history) Link to comment Share on other sites More sharing options...
typiac Posted May 4, 2012 Share Posted May 4, 2012 le cartcontroller me semble ok et pour ma part, je viens de re-vérifier la modif au niveau du cart.php mais tout semble bon... cockpitinferno, tu en es où de ton côté? Link to comment Share on other sites More sharing options...
cockpitinferno Posted May 12, 2012 Author Share Posted May 12, 2012 salut, j'ai eu pas mal de trucs autres à faire alors j'essai de regarder ca aujourd'hui ou lundi car demain je suis en déplacement. si seulement les journée pouvaient faire 48h... Link to comment Share on other sites More sharing options...
cockpitinferno Posted May 12, 2012 Author Share Posted May 12, 2012 alors y a un progrès. j'ai recopié la ligne 203 du fichier parentordercontroller et ca donne ca: self::$cart->recyclable = (int)(Tools::getValue('recyclable')); self::$cart->gift = (int)(Tools::getValue('gift')); self::$cart->assurance = (int)(Tools::getValue('assurance')); et là la case assurance reste bien cochée. par contre le panier n'ajoute pas le montant de l'assurance. il ne reste plus que ca a résoudre. Link to comment Share on other sites More sharing options...
cockpitinferno Posted May 16, 2012 Author Share Posted May 16, 2012 un petit up! Link to comment Share on other sites More sharing options...
LeGastronome Posted August 30, 2012 Share Posted August 30, 2012 T'as regardé dans l'ajax ? Link to comment Share on other sites More sharing options...
LeGastronome Posted August 30, 2012 Share Posted August 30, 2012 Je suis au même point que toi sur une version 1.5 .... t'as des news ? Link to comment Share on other sites More sharing options...
cockpitinferno Posted October 1, 2013 Author Share Posted October 1, 2013 non rien. Link to comment Share on other sites More sharing options...
IllicoPresta Posted October 2, 2013 Share Posted October 2, 2013 Bonjour, Nous avons développé un module permettant d'ajouter une assurance transporteur pour un client. Nous avons 2 ou 3 petites modifications à effectuer pour qu'il soit finalisé (entre autre le choix des transporteur car pour le moment cela s'applique à tous les transporteurs, selon le souhait de notre client à l'origine). N'hésitez pas à nous contacter par MP si le module vous intéresse. Nous pourrions peut être le finaliser rapidement pour vous permettre d'en profiter. Cordialement, illicoPresta 1 Link to comment Share on other sites More sharing options...
Daaaaad Posted August 28, 2014 Share Posted August 28, 2014 Bonjour, Nous avons développé un module permettant d'ajouter une assurance transporteur pour un client. Nous avons 2 ou 3 petites modifications à effectuer pour qu'il soit finalisé (entre autre le choix des transporteur car pour le moment cela s'applique à tous les transporteurs, selon le souhait de notre client à l'origine). N'hésitez pas à nous contacter par MP si le module vous intéresse. Nous pourrions peut être le finaliser rapidement pour vous permettre d'en profiter. Cordialement, illicoPresta Bonjour, pourriez-vous m'envoyer le lien de votre module ? Link to comment Share on other sites More sharing options...
Recommended Posts