[Résolu] Paiement 3 fois par cheque avec montant mini |
Bienvenue invité ( Connexion | Inscription )
[Résolu] Paiement 3 fois par cheque avec montant mini |
10 Apr 2008, 14:22
Message
#1
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 305 Inscrit : 7-February 04 Lieu : STE MAXIME (83) Membre no 1951 |
Bonjour,
afin de favoriser les ventes sur un site, je cherche le moyen de modifier le module de paiement moneyorder.php pour proposer a mes clients un réglement en 3 fois sans frais par chèque à partir d'un montant minimum de commande (par ex : 600 €) et bien sur afficher au client le montant des 3 chèques à établir. Si quelqu'un à déja la solution merci d'avance, sinon je vais tenter d'essayer de develloper ce module. Ce message a été modifié par bes_lau - 10 Apr 2008, 18:20. -------------------- Creload 6.2 B2B + urlrewriting + Kelkoo + Visitors + quick update + Atos + Visibles Countries 1.2 + Tag Clouds + Product Quantity Drop Down Box in Product Info V1.1 + Auto Remove Button in Shopping Cart + Recover Shopping Cart 2.2 + Crawltrack
Tests en cours sur : MS2-RC1-W3C Ps : Mettez [Résolu] dans l'entete de votre post quand c'est le cas, merci pour la communauté et pour ceux qui cherchent une réponse à un problème déja traité. (Encore faut-il utiliser la fonction de recherche sur le forum) donc c'est ici : http://www.oscommerce-fr.info/forum/index.php?act=Search Faq : http://www.oscommerce-fr.info/faq/ Contributions Fr : http://contributions.oscommerce-fr.info/ Contributions Us : http://addons.oscommerce.com/ |
|
10 Apr 2008, 18:19
Message
#2
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 305 Inscrit : 7-February 04 Lieu : STE MAXIME (83) Membre no 1951 |
Bon voila c'est fait :
dans \catalog\includes\modules\payment créer un fichier nommé : moneyorder3x.php contenu : Code <?php /* $Id: moneyorder3x.php,v 1.1.1.1 2004/03/04 23:41:19 ccwjr Exp $ By bes_lau 2008/04/10 osCommerce, Open Source E-Commerce Solutions [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url] Copyright (c) 2003 osCommerce Released under the GNU General Public License */ class moneyorder3x { var $code, $title, $description, $enabled; // class constructor function moneyorder3x() { global $order; $this->code = 'moneyorder3x'; $this->title = MODULE_PAYMENT_MONEYORDER3X_TEXT_TITLE; $this->description = MODULE_PAYMENT_MONEYORDER3X_TEXT_DESCRIPTION; $this->sort_order = MODULE_PAYMENT_MONEYORDER3X_SORT_ORDER; if(MODULE_PAYMENT_MONEYORDER3X_STATUS == 'True'){ if($_SESSION['cart']->total>300){ $this->enabled = true; } else { $this->enabled = false; } } else { $this->enabled = false; } if ((int)MODULE_PAYMENT_MONEYORDER3X_ORDER_STATUS_ID > 0) { $this->order_status = MODULE_PAYMENT_MONEYORDER3X_ORDER_STATUS_ID; } if (is_object($order)) $this->update_status(); $this->email_footer = MODULE_PAYMENT_MONEYORDER3X_TEXT_EMAIL_FOOTER; } // class methods function update_status() { global $order; if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_MONEYORDER3X_ZONE > 0) ) { $check_flag = false; $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_MONEYORDER3X_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id"); while ($check = tep_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->billing['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } } function javascript_validation() { return false; } function selection() { return array('id' => $this->code, 'module' => $this->title); } function pre_confirmation_check() { return false; } function confirmation() { global $order; $amount1 = ($order->info['total'] / 3) + $order->info['shipping_cost']; $amount2 = $order->info['total'] / 3; $amount3 = ($order->info['total'] - ($amount1 + $amount2)); $text = sprintf(MODULE_PAYMENT_MONEYORDER3X_TEXT, $amount1, $amount2, $amount3); return array('title' => $text . MODULE_PAYMENT_MONEYORDER3X_TEXT_DESCRIPTION); } // function confirmation() { // return array('title' => MODULE_PAYMENT_MONEYORDER3X_TEXT_DESCRIPTION); // } function process_button() { return false; } function before_process() { return false; } function after_process() { return false; } function get_error() { return false; } function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_MONEYORDER3X_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Check/Money Order Module', 'MODULE_PAYMENT_MONEYORDER3X_STATUS', 'True', 'Do you want to accept Check/Money Order payments?', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now());"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Money Order Make Payable to:', 'MODULE_PAYMENT_MONEYORDER3X_PAYTO', 'Make Payable to:', 'Who should payments be made payable to?', '6', '1', now());"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Money Order Sort order of display.', 'MODULE_PAYMENT_MONEYORDER3X_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Money Order Payment Zone', 'MODULE_PAYMENT_MONEYORDER3X_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Money Order Set Order Status', 'MODULE_PAYMENT_MONEYORDER3X_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_PAYMENT_MONEYORDER3X_STATUS', 'MODULE_PAYMENT_MONEYORDER3X_ZONE', 'MODULE_PAYMENT_MONEYORDER3X_ORDER_STATUS_ID', 'MODULE_PAYMENT_MONEYORDER3X_SORT_ORDER', 'MODULE_PAYMENT_MONEYORDER3X_PAYTO'); } } ?> dans \catalog\includes\languages\french\modules\payment (Faire de meme pour toutes vos langues) créer un fichier nommé : moneyorder3x.php contenu : Code <?php /* $Id: moneyorder3x.php,v 1.2 2004/03/05 00:36:42 ccwjr Exp $ By Bes_lau 2008/04/10 osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2002 osCommerce Released under the GNU General Public License */ define('MODULE_PAYMENT_MONEYORDER3X_TEXT_TITLE', '3 Fois sans frais par chèque'); define('MODULE_PAYMENT_MONEYORDER3X_TEXT_DESCRIPTION', '<br>Etablir les chèque à l\'ordre de : <br>' . MODULE_PAYMENT_MONEYORDER3X_PAYTO . '<br><br>Envoyer à :<br>' . nl2br(STORE_NAME_ADDRESS) . '<br><br>' . 'Votre commande ne sera envoyée qu\'à réception du règlement et de sa validation par notre banque.'); define('MODULE_PAYMENT_MONEYORDER3X_TEXT_EMAIL_FOOTER', '<br>Etablir les chèques à l\'ordre de : <br>'. MODULE_PAYMENT_MONEYORDER3X_PAYTO . '<br><br>Envoyer à:<br>' . STORE_NAME_ADDRESS . '' . '<br><br>Votre commande ne sera envoyée qu\'à réception du règlement et de sa validation par notre banque.'); ?> Ce module n'est actif qu'a partir de 300 € de commande, a vous de modifier la ligne N°27 pour le changer. @+ Edit : Correction bug activation selon montant. Ce message a été modifié par bes_lau - 3 Jun 2008, 01:35. -------------------- Creload 6.2 B2B + urlrewriting + Kelkoo + Visitors + quick update + Atos + Visibles Countries 1.2 + Tag Clouds + Product Quantity Drop Down Box in Product Info V1.1 + Auto Remove Button in Shopping Cart + Recover Shopping Cart 2.2 + Crawltrack
Tests en cours sur : MS2-RC1-W3C Ps : Mettez [Résolu] dans l'entete de votre post quand c'est le cas, merci pour la communauté et pour ceux qui cherchent une réponse à un problème déja traité. (Encore faut-il utiliser la fonction de recherche sur le forum) donc c'est ici : http://www.oscommerce-fr.info/forum/index.php?act=Search Faq : http://www.oscommerce-fr.info/faq/ Contributions Fr : http://contributions.oscommerce-fr.info/ Contributions Us : http://addons.oscommerce.com/ |
|
15 Apr 2008, 10:59
Message
#3
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Oui mais ca ne calcule pas le montant des chèque à faire ...
Moi j'avais fait ca : function confirmation() { global $order ; $amount1 = ($order->info['total'] / 3) + $order->info['shipping_cost'] ; $amount2 = $order->info['total'] / 3 ; $amount3 = ($order->info['total'] / 3) - $order->info['shipping_cost'] ; $text = sprintf(MODULE_PAYMENT_MONEYORDER_TEXT_P3F, $amount1, $amount2, $amount3) ; return array('title' => $text . MODULE_PAYMENT_MONEYORDER_TEXT_DESCRIPTION); } // le define dans le fichier langue : define(MODULE_PAYMENT_MONEYORDER_TEXT_P3F, 'Envoyez un chèque de %.02f, puis de %.02f et enfin de %.02f<p></p>') ; Ca fait raquer au mec les frais de port initialement, et ensuite les paiement sont dégressifs ... Ce message a été modifié par delete - 15 Apr 2008, 10:59. |
|
15 Apr 2008, 11:40
Message
#4
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 305 Inscrit : 7-February 04 Lieu : STE MAXIME (83) Membre no 1951 |
C'est pas mal comme fonction mais toujours un probleme d'arrondi.
un client commande pour 32.90 € at les monants sont les suivants : 17.53 €, 10.63 €, 3.73 € soit 32.89 € pour la compta c'est pas terrible. dès que j'ai un peu de temps je regarde ca de plus près, encore merci pour l'évolution du module. EDIT ja vais essayer truc comme ca : CODE function confirmation() {
global $order; $amount1 = ($order->info['total'] / 3) + $order->info['shipping_cost']; $amount2 = $order->info['total'] / 3; $amount3 = ($order->info['total'] - ($amount1 + $amount2)); $text = sprintf(MODULE_PAYMENT_MONEYORDER3X_TEXT, $amount1, $amount2, $amount3); return array('title' => $text . MODULE_PAYMENT_MONEYORDER3X_TEXT_DESCRIPTION); } Ce message a été modifié par bes_lau - 15 Apr 2008, 12:05. -------------------- Creload 6.2 B2B + urlrewriting + Kelkoo + Visitors + quick update + Atos + Visibles Countries 1.2 + Tag Clouds + Product Quantity Drop Down Box in Product Info V1.1 + Auto Remove Button in Shopping Cart + Recover Shopping Cart 2.2 + Crawltrack
Tests en cours sur : MS2-RC1-W3C Ps : Mettez [Résolu] dans l'entete de votre post quand c'est le cas, merci pour la communauté et pour ceux qui cherchent une réponse à un problème déja traité. (Encore faut-il utiliser la fonction de recherche sur le forum) donc c'est ici : http://www.oscommerce-fr.info/forum/index.php?act=Search Faq : http://www.oscommerce-fr.info/faq/ Contributions Fr : http://contributions.oscommerce-fr.info/ Contributions Us : http://addons.oscommerce.com/ |
|
15 Apr 2008, 14:48
Message
#5
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Oui après chacun sa soupe, je n'avais pas terminé ce dev car plus de besoin,
je l'ai mis pour éclairer ta lanterne ! de même que il serait intéressant d'intégrer la classe currencies pour afficher comme il faut en euro ou dans la devise choisie ... |
|
7 May 2008, 15:26
Message
#6
|
|
Ceinture verte OSC Groupe : Membres Messages : 660 Inscrit : 21-October 05 Membre no 7560 |
-------------------- VIVE LES TECKELS A POILS DUR !!
|
|
4 Jun 2009, 21:06
Message
#7
|
|
Ceinture bleue OSC Groupe : Membres Messages : 983 Inscrit : 8-April 08 Lieu : strasbourg Membre no 21429 |
encore une fois schnapouille perfect, que de bon conseil. |
|
25 Jan 2010, 16:25
Message
#8
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 382 Inscrit : 31-December 03 Lieu : Nantes Membre no 1780 |
Merci les gars ! Ca marche pour moi, mais j'ai amélioré la méthode de calcul du montant des 3 chèques, vu sur des forums php.
Je vous donne le code ça peut servir. plutot que d'avoir un montant total de 410,65 par exemple avec 3 cheques de 136.88 et en plus le final tombe pas juste... je préfere arrondir à la dizaine supérieure pour les 2 premiers (+ simple) et le deriner aura les centimes. Ce qui donne : 140 - 140 - 130.65 Calcul par ce code : Code function confirmation() { global $order; $amount1 = ceil(($order->info['total'] / 3)/10)*10; $amount2 = ceil(($order->info['total'] / 3)/10)*10; $amount3 = ($order->info['total'] - ($amount1 + $amount2)); $text = sprintf(MODULE_PAYMENT_MONEYORDER3X_TEXT, $amount1, $amount2, $amount3); return array('title' => $text . MODULE_PAYMENT_MONEYORDER3X_TEXT_DESCRIPTION); } Seb -------------------- Osc 2.2 ms2 en prod : STS - Easy Populate - CSS Buttons - SEO - Email Invoice -MailingList 2.0 - Order editor - Wordlpay ...
|
|
22 Jun 2011, 10:52
Message
#9
|
|
Ceinture jaune OSC Groupe : Membres Messages : 47 Inscrit : 4-June 09 Membre no 25510 |
Bonjour,
super contrib. j'ai toutefois une question : comment insérer le montant des 3 chèques à établir dans le mail que le client reçoit? est-ce possible déjà? merci d'avance -------------------- oscommerce 2.2, fckeditor2.2.1, ultimate seo url, headerTags 2.6.3, product listings column, product cross, sitemap, tva intracom, visible countries, mindsparx specials, starproduct pimped, order editor 5.0.6.3, manual order maker 1.5.6, ot discount coupon codes 3.34, ......
|
|
20 Jun 2012, 13:16
Message
#10
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 27 Inscrit : 11-August 11 Membre no 30122 |
Bonjour, super contrib. j'ai toutefois une question : comment insérer le montant des 3 chèques à établir dans le mail que le client reçoit? est-ce possible déjà? merci d'avance tu mets ca dans checkout_process avant l'envoi de mail Code //moneyorder3x if ($payment_class->code =='moneyorder3x'){ $amount1 = ceil(($order->info['total'] / 3)/10)*10; $amount2 = ceil(($order->info['total'] / 3)/10)*10; $amount3 = ($order->info['total'] - ($amount1 + $amount2)); $text = sprintf('Envoyez 3 chèques de %.02f, %.02f et %.02f', $amount1, $amount2, $amount3); $email_order .= "\n\n" . $text . "\n\n"; } tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); |
|
Version bas débit | Nous sommes le : 29th March 2024 - 12:07 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |