osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

2 Pages V   1 2 >  
Reply to this topicStart new topic
> Coupons / Bon de reduction
olino
posté 13 Apr 2005, 17:16
Message #1


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 9
Inscrit : 27-February 04
Lieu : Val d'Oise
Membre no 2057



Bonsoir à tous,

Je suis en MS2, quelqu'un pourrait-il me donner son avis sur les contributions pour les coupons et éventuellement son expérience en prod ainsi que la référence de la contrib ?

Je souhaite pouvoir donner un numéro ou un code de réduction utilisable au moment de la commande qui permet d'avoir un % de réduction ou un montant fixe.

Merci par avance pour ceux qui savent et pourront me répondre.

Cordialement,

Olivier

Go to the top of the page
 
Ryu007
posté 15 Apr 2005, 00:18
Message #2


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1385
Inscrit : 3-June 04
Lieu : Saint-mandé
Membre no 2597



Bonjour,

La contribution la plus longue a installer c'est tout ce dont il me revient twisted.gif (ça donne envie comme ça ? nan ?)

La configuration est assez sensible mais je ne suis pas encore déçu par la contribution ! Si tu l'installe correctement elle marche du feu de dieu !

D'abord il faut installer la version complete : Credit Class & Gift Voucher => 4 Feb 2005 - The final
Ensuite installer les mises a jours sensibles plus haut

Je m'en sers de divers maniere ! Soit en diffusant une "pub" permettant a tous clients de bénéficier de 5%, 10%, ... ou de la livraison gratuite (Possibilité de restreindre aux catégories, et à certains produits !), en l'envoyant par email aux clients ou tout simplement en crééant un bon pour les tous nouveaux clients !

Les possibilités marketing sont plutot de toutes envergures ...

Amicalement

P.S : Avant de poser une question basique sur une contribution, va jeter un coup d'oeil sur ce post : Liste des Contributions, dernière MAJ le 14 04 2005


--------------------
Image IPB Image IPB
Go to the top of the page
 
karibouxe
posté 19 Apr 2005, 11:33
Message #3


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 31
Inscrit : 21-March 05
Membre no 5223



Bonjour,

je viens de commencer à installer cette contribution. Je viens donc de mettre les fichiers de la contribution à la racine de OSC. Ensuite, je constate dans l'aide à l'installation qu'il faut rajouter plein de require. Faut il ajouter ces 99 requires ou suis je à coté de la plaque. De plus, je constate qu'il y a les entré pour English ,German,Spain. Le français n'existe pas quelque part?
Merci d'avance


--------------------
MS2
Go to the top of the page
 
karibouxe
posté 19 Apr 2005, 14:57
Message #4


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 31
Inscrit : 21-March 05
Membre no 5223



Je viens de réussir à installer la contrib Crédit Class. Je peux créer des coupons et je peux envoyer ces coupons malheureusment en tant que client je n'ai pas la possibilité d'utiliser le code qui m'a été envoyé. Quelqu'un peut t-il me dire ce qu'il me manque pour la contribution soit totalement installée.


--------------------
MS2
Go to the top of the page
 
megaseb37
posté 19 Apr 2005, 17:50
Message #5


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 23
Inscrit : 12-May 04
Membre no 2470



Salut Karibouxe

Est ce que tu as activé le module "Bons de réduction" et "Cheque cadeau" dans l'admin->modules>Total Commande?

Si c'est pas fait, voici la config :
Bons de Réduction 9
Chèques Cadeaux 740
Expédition 2
Sous-Total 1
TVA 3
Total 900





--------------------
2 Boutique oscommerce en ligne
_____________________________________
MS1 Creload 5 par Ciju & Delaballe + fianet + cyberpaiement + thema box +
________________________________________________
MS2 FR + Admin + send order html email + wysiwig html area + header Tag + All product + Down for maintenance + osc print order + Batch order center + Manual order + thema box + fianet + cyberpaiement + product on order+........
Go to the top of the page
 
karibouxe
posté 20 Apr 2005, 09:25
Message #6


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 31
Inscrit : 21-March 05
Membre no 5223



Oups blush.gif
Désolé, je ne l'avais pas activé.

Donc quand je mets ma réduction sur une commande cela me donne:

Sub-Total: 35.99EUR
Flat Rate (Best Way): 5.00EUR
Total: 40.99EUR
Discount Coupons:6ef7e3: -20.00EUR

Bon, je viens de l'installer, je ne me suis pas encore amuser à traduire le texte confused.gif
Par contre, je trouve génant que Total soit l'ancien prix avant la réduction. Cela peut tromper le client. Bon, ça doit se modifier ça. biggrin.gif

Encore merci.


--------------------
MS2
Go to the top of the page
 
megaseb37
posté 20 Apr 2005, 21:48
Message #7


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 23
Inscrit : 12-May 04
Membre no 2470



Justement l'ordre ce modifie en fonction de la valeur de l'ordre de tri que tu rentre pour chaque module
avec cette config ca devrait le faire
Bons de Réduction 9
Chèques Cadeaux 740
Expédition 2
Sous-Total 1
TVA 3
Total 900

En resumé ca tri en fonction de la valeur que tu donnes


--------------------
2 Boutique oscommerce en ligne
_____________________________________
MS1 Creload 5 par Ciju & Delaballe + fianet + cyberpaiement + thema box +
________________________________________________
MS2 FR + Admin + send order html email + wysiwig html area + header Tag + All product + Down for maintenance + osc print order + Batch order center + Manual order + thema box + fianet + cyberpaiement + product on order+........
Go to the top of the page
 
tatiana
posté 19 Dec 2005, 17:34
Message #8


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 85
Inscrit : 8-October 03
Lieu : Saint-Claude (Jura)
Membre no 1548



Bonjour à tous ! smile.gif

Je reprend ce post 8 mois après... (désolée, mais après avoir parcouru tous les posts sur le sujet, je n'arrive toujours pas à élucider ce qui cloche sur mon install... )
Je m'explique :
J'ai (difficilement) installé la contribution Credit Class and Gift Voucher 5.14 sur la MS2 fr, module coupons activé, coupon créé, etc... Lorsque j'essaie de faire une transaction avec le code coupon validé voici le résultat du checkout_confirmation que j'obtiens :

Sous-Total: 434.65EUR
TVA: 71.23EUR
Tableau de cout de livraison par zone et régions (Livraison vers FR : 2.3 Kg(s)): 11.00EUR
Coupons de réduction:codecodecodec: -1.65EUR
Total: 433.32EUR

Il est pas mal le faux calcul, hein ?... mad.gif

(Ordre de tri :
Coupons de réduction 5  
Frais de contre remboursement 4  
Chèque cadeau 6  
Expédition 3  
Sous-Total 1  
TVA 2  
Total 7  
)

J'ai essayé maintes fois de changer l'ordre de tri mais toujours avec le même affreux faux résultat !... je ne sais pas d'où proviennent ces 1,65 euros de réduction alors qu'il devrait être spécifié "- 65,20 euros" (ce qui correspond à un rabais de 15% sur le produit TTC) et le total devrait être : 380,45 euros...

De plus, la réduction n'apparait QUE si l'option "include shipping" est activée ! Sinon : marche pô !
Je ne sais vraiment plus quoi faire, auriez-vous un peu de temps à m'accorder pour tenter de résoudre ce problème avant que j'abandonne cette contribution ? blush.gif
Bouuuuuuuuuuuuuuuuuuuh !!!
Merci d'avance.
tati


--------------------
Os Commerce MS2 fr
Atos - Cyberplus
Kit bancaire tu testeras, ensuite, seulement, OsCommerce adapteras ...
(Genese OSC 2.2 - ms2)
Go to the top of the page
 
FOX61
posté 19 Dec 2005, 21:47
Message #9


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 97
Inscrit : 10-November 05
Membre no 7784



Héllo

Essai ça pour voir:

Coupons de réduction 2
Frais de contre remboursement 5
Chèque cadeau 3
Expédition 4
Sous-Total 1
TVA 7
Total 6

je suis pas sûr du coup, mais il faut aussi lire la doc de la contrib pour
les taxes inclues ou pas ..

Tiens nous au courant... smile.gif


A+
Go to the top of the page
 
tatiana
posté 20 Dec 2005, 12:04
Message #10


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 85
Inscrit : 8-October 03
Lieu : Saint-Claude (Jura)
Membre no 1548



Salut FOX61 smile.gif
Merci bien pour ta réponse... j'ai changé l'ordre de tri, comme tu l'as indiqué, et malheureusement toujours la même erreur (en pire...) :

Sous-Total: 434.65EUR
Coupons de réduction:codecodecodec: -1.38EUR confused.gif
Tableau de cout de livraison par zone et régions (Livraison vers FR : 2.3 Kg(s)): 11.00EUR
Frais de contre remboursement: 15.00EUR
Total: 448.59EUR
TVA: 64.81EUR

Je me demande si la méthode de calcul n'est pas corrompue?... ou alors il y a un truc qui cloche dans la BDD ?...
Quelle est l'application qui fait le calcul transmis par checkout_confirmation, au juste, ?...
blush.gif


--------------------
Os Commerce MS2 fr
Atos - Cyberplus
Kit bancaire tu testeras, ensuite, seulement, OsCommerce adapteras ...
(Genese OSC 2.2 - ms2)
Go to the top of the page
 
tatiana
posté 21 Dec 2005, 11:23
Message #11


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 85
Inscrit : 8-October 03
Lieu : Saint-Claude (Jura)
Membre no 1548



kikou, c't'encore moué ! laugh.gif
Bon, je me trompe certainement mais j'ai la vague impression que c'est la page catalog/includes/modules/order_total/ot_coupons.php qui "décabanne" un peu ?... je me demande même s'il n'y a pas possibilité d'épurer tout ça, de manière à éviter certaines erreurs de calcul "à s'arracher les cheveux"...
Une partie du code de la page en question :
QUOTE

<?php
/*
$Id: ot_coupon.php,v 1.1.2.37.3 2004/01/01 22:52:59 Strider Exp $
$Id: ot_coupon.php,v 1.1.2.37 2003/07/24 22:52:59 Strider-Cote Exp $
$Id: ot_coupon.php,v 1.1.2.36 2003/05/14 22:52:59 wilt Exp $

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com/

Copyright ¨ 2002 osCommerce

Released under the GNU General Public License
*
* v5.13a by Rigadin (rigadin@osc-help.net)
---
-- MODS
--
-- 09-11-05  Si  Corrections to the redeem message
---
*/

class ot_coupon {
var $title, $output;

function ot_coupon() {

        $this->code = 'ot_coupon';
        $this->header = MODULE_ORDER_TOTAL_COUPON_HEADER;
        $this->title = MODULE_ORDER_TOTAL_COUPON_TITLE;
        $this->description = MODULE_ORDER_TOTAL_COUPON_DESCRIPTION;
        $this->user_prompt = '';
        $this->enabled = MODULE_ORDER_TOTAL_COUPON_STATUS;
        $this->sort_order = MODULE_ORDER_TOTAL_COUPON_SORT_ORDER;
        $this->include_shipping = MODULE_ORDER_TOTAL_COUPON_INC_SHIPPING;
        $this->include_tax = MODULE_ORDER_TOTAL_COUPON_INC_TAX;
        $this->calculate_tax = MODULE_ORDER_TOTAL_COUPON_CALC_TAX;
        $this->tax_class = MODULE_ORDER_TOTAL_COUPON_TAX_CLASS;
        $this->credit_class = true;
        $this->output = array();

}

function process() {
global $PHP_SELF, $order, $currencies;


        $order_total=$this->get_order_total();
        $od_amount = $this->calculate_credit($order_total);
        $tod_amount = 0.0; //Fred
        $this->deduction = $od_amount;
        if ($this->calculate_tax != 'None') { //Fred - changed from 'none' to 'None'!
                $tod_amount = $this->calculate_tax_deduction($order_total, $this->deduction, $this->calculate_tax);
        }

        if ($od_amount > 0) {
                $order->info['total'] = $order->info['total'] - $od_amount;
                $this->output[] = array('title' => $this->title . ':' . $this->coupon_code .':','text' => '<b>-' . $currencies->format($od_amount) . '</b>', 'value' => $od_amount); //Fred added hyphen
        }
}

function selection_test() {
        return false;
}


function pre_confirmation_check($order_total) {
global $customer_id;
        return $this->calculate_credit($order_total);
}

function use_credit_amount() {
        return $output_string;
}


function credit_selection() {
global $customer_id, $currencies, $language;
        $selection_string = '';
        $selection_string .= '' . "\n";
        $selection_string .= ' </tr><tr><td class="main">' . "\n";
        $selection_string .= TEXT_ENTER_GV_CODE . tep_draw_input_field('gv_redeem_code') . ' and click ';
        $image_submit = '<input type="image" name="submit_redeem" onClick="return check_form(), submitFunction()" src="' . DIR_WS_LANGUAGES . $language . '/images/buttons/button_redeem.gif" class="contbutton" alt="' . IMAGE_REDEEM_VOUCHER . '" title = "' . IMAGE_REDEEM_VOUCHER . '">';
        $selection_string .= '';
        $selection_string .= '' . $image_submit . '</td>';
        $selection_string .= '';
        $selection_string .= '' . "\n";
        return $selection_string;
}


function collect_posts() {
// All tep_redirect URL parameters modified for this function in v5.13 by Rigadin
global $HTTP_POST_VARS, $customer_id, $currencies, $cc_id;
        if ($HTTP_POST_VARS['gv_redeem_code']) {

// get some info from the coupon table
        $coupon_query=tep_db_query("select coupon_id, coupon_amount, coupon_type, coupon_minimum_order,uses_per_coupon, uses_per_user, restrict_to_products,restrict_to_categories from " . TABLE_COUPONS . " where coupon_code='".$HTTP_POST_VARS['gv_redeem_code']."' and coupon_active='Y'");
        $coupon_result=tep_db_fetch_array($coupon_query);

        if ($coupon_result['coupon_type'] != 'G') {

                if (tep_db_num_rows($coupon_query)==0) {
                        tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error='.$this->code.'&error=' . urlencode(ERROR_NO_INVALID_REDEEM_COUPON), 'SSL'));
                }

                $date_query=tep_db_query("select coupon_start_date from " . TABLE_COUPONS . " where coupon_start_date <= now() and coupon_code='".$HTTP_POST_VARS['gv_redeem_code']."'");

                if (tep_db_num_rows($date_query)==0) {
                        tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error='.$this->code.'&error=' . urlencode(ERROR_INVALID_STARTDATE_COUPON), 'SSL'));
                }

                $date_query=tep_db_query("select coupon_expire_date from " . TABLE_COUPONS . " where coupon_expire_date >= now() and coupon_code='".$HTTP_POST_VARS['gv_redeem_code']."'");

    if (tep_db_num_rows($date_query)==0) {
                        tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error='.$this->code.'&error=' . urlencode(ERROR_INVALID_FINISDATE_COUPON), 'SSL'));
                }

                $coupon_count = tep_db_query("select coupon_id from " . TABLE_COUPON_REDEEM_TRACK . " where coupon_id = '" . $coupon_result['coupon_id']."'");
                $coupon_count_customer = tep_db_query("select coupon_id from " . TABLE_COUPON_REDEEM_TRACK . " where coupon_id = '" . $coupon_result['coupon_id']."' and customer_id = '" . $customer_id . "'");

                if (tep_db_num_rows($coupon_count)>=$coupon_result['uses_per_coupon'] && $coupon_result['uses_per_coupon'] > 0) {
                        tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error='.$this->code.'&error=' . urlencode(ERROR_INVALID_USES_COUPON . $coupon_result['uses_per_coupon'] . TIMES ), 'SSL'));
                }

                if (tep_db_num_rows($coupon_count_customer)>=$coupon_result['uses_per_user'] && $coupon_result['uses_per_user'] > 0) {
                        tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error='.$this->code.'&error=' . urlencode(ERROR_INVALID_USES_USER_COUPON . $coupon_result['uses_per_user'] . TIMES ), 'SSL'));
                }

//**si** 09-11-05
/*
                if ($coupon_result['coupon_type']=='S') {
                        $coupon_amount = $order->info['shipping_cost'];
                } else {
                        $coupon_amount = $currencies->format($coupon_result['coupon_amount']) . ' ';
                }
                if ($coupon_result['coupon_type']=='P') $coupon_amount = $coupon_result['coupon_amount'] . '% ';
                if ($coupon_result['coupon_minimum_order']>0) $coupon_amount .= 'on orders greater than ' . $coupon_result['coupon_minimum_order'];
                if (!tep_session_is_registered('cc_id')) tep_session_register('cc_id'); //Fred - this was commented out before
                $cc_id = $coupon_result['coupon_id']; //Fred ADDED, set the global and session variable
                tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error='.$this->code.'&error=' . urlencode(ERROR_REDEEMED_AMOUNT), 'SSL')); // Added in v5.13a by Rigadin
*/
                global $order,$ot_coupon,$currency;

                $coupon_amount= tep_round($ot_coupon->pre_confirmation_check($order->info['subtotal']), $currencies->currencies[$currency]['decimal_places']); // $cc_id
/* you will need to uncomment this if your tax order total module is AFTER shipping eg you have all of your tax, including tax from shipping module, in your tax total.
                if ($coupon_result['coupon_type']=='S')  {
                        //if not zero rated add vat to shipping
                        $coupon_amount = tep_add_tax($coupon_amount, '17.5');
                }
*/
                $coupon_amount_out = $currencies->format($coupon_amount) . ' ';
                if ($coupon_result['coupon_minimum_order']>0) $coupon_amount_out .= 'on orders greater than ' . $currencies->format($coupon_result['coupon_minimum_order']);

                if (!tep_session_is_registered('cc_id')) tep_session_register('cc_id');
                $cc_id = $coupon_result['coupon_id'];

                if ( strlen($cc_id)>0 && $coupon_amount==0 ) {
                        $err_msg = ERROR_REDEEMED_AMOUNT.ERROR_REDEEMED_AMOUNT_ZERO;
                } else {
                        $err_msg = ERROR_REDEEMED_AMOUNT.$coupon_amount_out;
                }
                tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error='.$this->code.'&error=' . urlencode($err_msg), 'SSL'));
//**si** 09-11-05 end

                // $_SESSION['cc_id'] = $coupon_result['coupon_id']; //Fred commented out, do not use $_SESSION[] due to backward comp. Reference the global var instead.
          } // ENDIF valid coupon code
        } // ENDIF code entered
        // v5.13a If no code entered and coupon redeem button pressed, give an alarm
        if ($HTTP_POST_VARS['submit_redeem_coupon_x']) tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error='.$this->code.'&error=' . urlencode(ERROR_NO_REDEEM_CODE), 'SSL'));
}

function calculate_credit($amount) {
global $customer_id, $order, $cc_id;
//$cc_id = $_SESSION['cc_id']; //Fred commented out, do not use $_SESSION[] due to backward comp. Reference the global var instead.
        $od_amount = 0;
        if (isset($cc_id) ) {
                $coupon_query = tep_db_query("select coupon_code from " . TABLE_COUPONS . " where coupon_id = '" . $cc_id . "'");
                if (tep_db_num_rows($coupon_query) !=0 ) {
                        $coupon_result = tep_db_fetch_array($coupon_query);
                        $this->coupon_code = $coupon_result['coupon_code'];
                        $coupon_get = tep_db_query("select coupon_amount, coupon_minimum_order, restrict_to_products, restrict_to_categories, coupon_type from " . TABLE_COUPONS ." where coupon_code = '". $coupon_result['coupon_code'] . "'");
                        $get_result = tep_db_fetch_array($coupon_get);
                        $c_deduct = $get_result['coupon_amount'];




// Calcul de l'affichage du coupon
                        if ($get_result['coupon_type']=='S') $c_deduct = $order->info['shipping_cost'];
//Calcul du coupon si celui ci est > 0 avec les frais d'envoie
                        if ($get_result['coupon_type']=='S' && $get_result['coupon_amount'] > 0 ) $c_deduct = $order->info['shipping_cost'] + $get_result['coupon_amount'];




                       
                        if ($get_result['coupon_minimum_order'] <= $this->get_order_total()) {
                                if ($get_result['restrict_to_products'] || $get_result['restrict_to_categories']) {
                                        for ($i=0; $i<sizeof($order->products); $i++) {
                                                if ($get_result['restrict_to_products']) {
                                                        $pr_ids = split("[,]", $get_result['restrict_to_products']);
                                                        for ($ii = 0; $ii < count($pr_ids); $ii++) {
                                                                if ($pr_ids[$ii] == tep_get_prid($order->products[$i]['id'])) {
                                                                        if ($get_result['coupon_type'] == 'P') {
                                                                                        /* Fixes to Gift Voucher module 5.03
                                                                                        =================================
                                                                                        Submitted by Rob Cote, robc@traininghott.com

                                                                                        original code: $od_amount = round($amount*10)/10*$c_deduct/100;
                                                                                        $pr_c = $order->products[$i]['final_price']*$order->products[$i]['qty'];
                                                                                        $pod_amount = round($pr_c*10)/10*$c_deduct/100;
                                                                                        */
                                                                                        //$pr_c = $order->products[$i]['final_price']*$order->products[$i]['qty'];
                                                                                        $pr_c = $this->product_price($pr_ids[$ii]); //Fred 2003-10-28, fix for the row above, otherwise the discount is calc based on price excl VAT!
                                                                                        $pod_amount = round($pr_c*10)/10*$c_deduct/100;
                                                                                        $od_amount = $od_amount + $pod_amount;
                                                                                } else {
                                                                                        $od_amount = $c_deduct;
                                                                                }
                                                                        }
                                                                }
                                                        } else {
                                                                $cat_ids = split("[,]", $get_result['restrict_to_categories']);
                                                                for ($i=0; $i<sizeof($order->products); $i++) {
                                                                        $my_path = tep_get_product_path(tep_get_prid($order->products[$i]['id']));
                                                                        $sub_cat_ids = split("[_]", $my_path);
                                                                        for ($iii = 0; $iii < count($sub_cat_ids); $iii++) {
                                                                                for ($ii = 0; $ii < count($cat_ids); $ii++) {
                                                                                        if ($sub_cat_ids[$iii] == $cat_ids[$ii]) {
                                                                                                if ($get_result['coupon_type'] == 'P') {
                                                                                                        /* Category Restriction Fix to Gift Voucher module 5.04
                                                                                                        Date: August 3, 2003
                                                                                                        =================================
                                                                                                        Nick Stanko of UkiDev.com, nick@ukidev.com

                                                                                                        original code:
                                                                                                        $od_amount = round($amount*10)/10*$c_deduct/100;
                                                                                                        $pr_c = $order->products[$i]['final_price']*$order->products[$i]['qty'];
                                                                                                        $pod_amount = round($pr_c*10)/10*$c_deduct/100;
                                                                                                        */
                                                                                                        //$od_amount = round($amount*10)/10*$c_deduct/100;
                                                                                                        //$pr_c = $order->products[$i]['final_price']*$order->products[$i]['qty'];
                                                                                                        $pr_c = $this->product_price(tep_get_prid($order->products[$i]['id'])); //Fred 2003-10-28, fix for the row above, otherwise the discount is calc based on price excl VAT!
                                                                                                        $pod_amount = round($pr_c*10)/10*$c_deduct/100;
                                                                                                        $od_amount = $od_amount + $pod_amount;
                                                    continue 3;      // v5.13a Tanaka 2005-4-30: to prevent double counting of a product discount
                                                } else {
                                                    $od_amount = $c_deduct;
                                                    continue 3;      // Tanaka 2005-4-30: to prevent double counting of a product discount
                                                                                                }
                                                                                        }
                                                                                }
                                                                        }
                                                                }
                                                        }
                                                }
                                        } else {
                                                if ($get_result['coupon_type'] !='P') {
                                                        $od_amount = $c_deduct;
                                                } else {
                                                        $od_amount = $amount * $get_result['coupon_amount'] / 100;
                                                }
                                        }
                                }
                        }
                if ($od_amount>$amount) $od_amount = $amount;
                }
        return $od_amount;
}

function calculate_tax_deduction($amount, $od_amount, $method) {
global $customer_id, $order, $cc_id, $cart;
//$cc_id = $_SESSION['cc_id']; //Fred commented out, do not use $_SESSION[] due to backward comp. Reference the global var instead.
        $coupon_query = tep_db_query("select coupon_code from " . TABLE_COUPONS . " where coupon_id = '" . $cc_id . "'");
        if (tep_db_num_rows($coupon_query) !=0 ) {
                $coupon_result = tep_db_fetch_array($coupon_query);
                $coupon_get = tep_db_query("select coupon_amount, coupon_minimum_order, restrict_to_products, restrict_to_categories, coupon_type from " . TABLE_COUPONS . " where coupon_code = '". $coupon_result['coupon_code'] . "'");
                $get_result = tep_db_fetch_array($coupon_get);
                if ($get_result['coupon_type'] != 'S') {

                        //RESTRICTION--------------------------------
                        if ($get_result['restrict_to_products'] || $get_result['restrict_to_categories']) {
                                // What to do here.
                                // Loop through all products and build a list of all product_ids, price, tax class
                                // at the same time create total net amount.
                                // then
                                // for percentage discounts. simply reduce tax group per product by discount percentage
                                // or
                                // for fixed payment amount
                                // calculate ratio based on total net
                                // for each product reduce tax group per product by ratio amount.
                                $products = $cart->get_products();
                                $valid_product = false;
                                for ($i=0; $i<sizeof($products); $i++) {
                                $valid_product = false;
                                        $t_prid = tep_get_prid($products[$i]['id']);
                                        $cc_query = tep_db_query("select products_tax_class_id from " . TABLE_PRODUCTS . " where products_id = '" . $t_prid . "'");
                                        $cc_result = tep_db_fetch_array($cc_query);
                                        if ($get_result['restrict_to_products']) {
                                                $pr_ids = split("[,]", $get_result['restrict_to_products']);
                                                for ($p = 0; $p < sizeof($pr_ids); $p++) {
                                                        if ($pr_ids[$p] == $t_prid) $valid_product = true;
                                                }
                                        }
                                        if ($get_result['restrict_to_categories']) {
                        // Tanaka 2005-4-30:  Original Code
                        /*$cat_ids = split("[,]", $get_result['restrict_to_categories']);
                        for ($c = 0; $c < sizeof($cat_ids); $c++) {
                            // Tanaka 2005-4-30:  changed $products_id to $t_prid and changed $i to $c
                            $cat_query = tep_db_query("select products_id from products_to_categories where products_id = '" . $t_prid . "' and categories_id = '" . $cat_ids[$c] . "'");
                            if (tep_db_num_rows($cat_query) !=0 ) $valid_product = true;
                        }*/
                        // v5.13a Tanaka 2005-4-30:  New code, this correctly identifies valid products in subcategories
                        $cat_ids = split("[,]", $get_result['restrict_to_categories']);
                        $my_path = tep_get_product_path($t_prid);
                        $sub_cat_ids = split("[_]", $my_path);
                        for ($iii = 0; $iii < count($sub_cat_ids); $iii++) {
                            for ($ii = 0; $ii < count($cat_ids); $ii++) {
                                if ($sub_cat_ids[$iii] == $cat_ids[$ii]) {
                                    $valid_product = true;
                                    continue 2;
                                }
                            }
                        }
                                        }
                                        if ($valid_product) {
                                                $price_excl_vat = $products[$i]['final_price'] * $products[$i]['quantity']; //Fred - added
                                                $price_incl_vat = $this->product_price($t_prid); //Fred - added
                                                $valid_array[] = array('product_id' => $t_prid, 'products_price' => $price_excl_vat, 'products_tax_class' => $cc_result['products_tax_class_id']); //jason //Fred - changed from $products[$i]['final_price'] 'products_tax_class' => $cc_result['products_tax_class_id']);
//                                                $total_price += $price_incl_vat; //Fred - changed
                                                $total_price += $price_excl_vat; // changed
                                        }
                                }
                                if (sizeof($valid_array) > 0) { // if ($valid_product) {
                                        if ($get_result['coupon_type'] == 'P') {
                                                $ratio = $get_result['coupon_amount']/100;
                                        } else {
                                                $ratio = $od_amount / $total_price;
                                        }
                                        if ($get_result['coupon_type'] == 'S') $ratio = 1;
                                        if ($method=='Credit Note') {
                                                $tax_rate = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
                                                $tax_desc = tep_get_tax_description($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
                                                if ($get_result['coupon_type'] == 'P') {
                                                        $tod_amount = $od_amount / (100 + $tax_rate)* $tax_rate;
                                                } else {
                                                        $tod_amount = $order->info['tax_groups'][$tax_desc] * $od_amount/100;
                                                }
                                                $order->info['tax_groups'][$tax_desc] -= $tod_amount;
                                                $order->info['total'] -= $tod_amount; //  need to modify total ...OLD
...
etc...


J'essaie de "décrypter" tout ça de mon coté mais si vous voyez un petit truc louche dans ce début de page, faites-moi signe !... smile.gif

Bise
Tati


--------------------
Os Commerce MS2 fr
Atos - Cyberplus
Kit bancaire tu testeras, ensuite, seulement, OsCommerce adapteras ...
(Genese OSC 2.2 - ms2)
Go to the top of the page
 
FOX61
posté 21 Dec 2005, 13:45
Message #12


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 97
Inscrit : 10-November 05
Membre no 7784



tatiana, j'essaierai de t'aider en MP,
mais il faut que je resolve un autre problème avant.

BONNES FÊTES....
Go to the top of the page
 
tatiana
posté 22 Dec 2005, 10:38
Message #13


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 85
Inscrit : 8-October 03
Lieu : Saint-Claude (Jura)
Membre no 1548



Joyeuses Fêtes à toi également ! biggrin.gif
... et à tous ceux qui ont contribué à construire ce beau forum OsCommerce... smile.gif

De mon coté, je n'ai toujours pas trouvé la solution à mon problème...bouuuuh ! confused.gif
Avec du temps et de l'acharnement, on devrait y arriver...
Bises

Tati


--------------------
Os Commerce MS2 fr
Atos - Cyberplus
Kit bancaire tu testeras, ensuite, seulement, OsCommerce adapteras ...
(Genese OSC 2.2 - ms2)
Go to the top of the page
 
tatiana
posté 2 Jan 2006, 18:21
Message #14


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 85
Inscrit : 8-October 03
Lieu : Saint-Claude (Jura)
Membre no 1548



hello et bonne année à toute la communauté !!...

Je reviens prendre des nouvelles (j'en suis malheureusement toujours au même point !...)
confused.gif
J'ai comme la vague impression que le calcul (- 15%) se base sur les frais d'expedition et non sur le sous total, comme il se devrait... j'ai beau essayé de changer l'ordre de tri, dans tous les sens, le résultat ne colle jamais... Peut-être un problème d'incompatibilité entre "couts de livraisons par régions" et "coupons cadeaux" ?
Je suis certaine que la résolution de ce souci ne tient pas à grand chose (un nom de variable à changer ou alors une simple valeur à changer dans la page citée ci-dessus ?...) mais, n'empèche que j'y arrive toujours pas !... blush.gif
Ayuda me, por favor !


--------------------
Os Commerce MS2 fr
Atos - Cyberplus
Kit bancaire tu testeras, ensuite, seulement, OsCommerce adapteras ...
(Genese OSC 2.2 - ms2)
Go to the top of the page
 
vutana
posté 4 Jan 2006, 10:06
Message #15


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 9
Inscrit : 28-October 05
Membre no 7662



Bonjour,

Je ne sais pas si ça peut aider, mais de mon côté, il n'y a qu'une config qui fonctionne pour le tri dans order total :
chèque cadeaux 740
bon de réduction 9

Tout autre ordre de tri empêche les chèques cadeaux de fonctionner.

As-tu essayé avec cette config ?
Go to the top of the page
 
tatiana
posté 5 Jan 2006, 11:11
Message #16


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 85
Inscrit : 8-October 03
Lieu : Saint-Claude (Jura)
Membre no 1548



Salut vutana, merci pour ta réponse mais comme expliqué plus haut dans le topic, ce n'est pas un problème d'ordre de tri... (cettte contribution, au passage, devrait normalement fonctionner quelque soit l'ordre de tri... ) dry.gif
c'est toujours cette page ot_coupons.php qui me "chablate" un peu... Qu'est ce qui fait que le coupon de réduction s'applique sur les frais de port au lieu du sous-total ?... De plus qu'est ce qui fait que ce même coupon s'applique UNIQUEMENT si l'option "frais de port offerts" est activée ?... J'en appelle à tou(te)s ceux (ou celles) qui maîtrisent le php bien mieux que moi !
cool.gif


--------------------
Os Commerce MS2 fr
Atos - Cyberplus
Kit bancaire tu testeras, ensuite, seulement, OsCommerce adapteras ...
(Genese OSC 2.2 - ms2)
Go to the top of the page
 
buvezduvin
posté 6 Jan 2006, 18:28
Message #17


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 184
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



Il n'y aurait pas une autre contrib plus légère qui reprendrait les grandes lignes de celle-ci?


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
tatiana
posté 10 Jan 2006, 13:21
Message #18


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 85
Inscrit : 8-October 03
Lieu : Saint-Claude (Jura)
Membre no 1548



Re...
Je crois que je vais opter pour une autre solution, comme buvezduvin... smile.gif

Pardonnez d'avance ma franchise mais je vais pousser mon coup de gueule :
Tant pis pour le(s) créateur(s) de cette contribution qui a(ont) beaucoup travaillé sur le sujet mais, malheureusement, "l'enfer est parfois pavé de bonnes intentions", comme on dit...

La contribution Credit Class and Gift Voucher : A LA POUBELLE ! mad.gif
Pas seulement parce qu'après 3 installations COMPLÈTES, avec 3 versions différentes, aucune ne fonctionne correctement (alors que la plupart des contributions présentes sur ce site sont excellentes)
J'imagine que certains, en lisant ces mots, penseront que je suis vraiment "blonde" mais je constate quand même plusieurs choses :

1 : C'est la contrib la plus difficile à installer (dixit : Ryu007), simplement pour gérer des réductions de tarifs ???? mad.gif
2 : Il suffit simplement de jeter un oeil à la liste relative à cette contrib pour vérifier l'ampleur du désastre : elle est tout sauf claire, précise ou même intuitive... une véritable insulte au prodigieux travail de Delaballe, Xaglo, Gyakutsuki, Oneill, Corbin et tous ceux que j'oublie...
175 versions avec 387 satellites "mises à jour" correspondant à tout et à rien et surtout à n'importe quoi (langues mélangées, fix, updates et bouts de codes sans relation ici et là... une chienne n'y retrouverait pas ses petits... ). Il me semble, d'ailleurs, que les modérateurs devraient faire le ménage la-dedans...
3 : En parcourant le forum, on constate également que pratiquement TOUS ceux qui ont gouté à CCGV ont eu des problèmes et que TOUS ont été obligés de "bricoler" un bidule pour que ça fonctionne PRESQUE normalement.
4 Je me suis même demandée si CCGV n'avait pas été conçue par certains developpeurs de Microsoft pour "plomber" l'Open-Source et le rendre le plus possible inaccessible au commun des webmasters et autres web-designers ?... ouais ouais, j'fais de la parano, maintenant !! rolleyes.gif

Donc, tant pis, ... rien ne m'obligeait à utiliser cette contrib... j'abandonne et je fais le deuil de 2 semaines complètes de boulot pour rien, sans parler de tous les appels à l'aide que j'ai vainement laissé sur ce forum.

Je présente toutes mes excuses (et mes remerciements) à tous ceux qui ont bien voulu me répondre... blush.gif

@+
Tati


--------------------
Os Commerce MS2 fr
Atos - Cyberplus
Kit bancaire tu testeras, ensuite, seulement, OsCommerce adapteras ...
(Genese OSC 2.2 - ms2)
Go to the top of the page
 
buvezduvin
posté 10 Jan 2006, 14:12
Message #19


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 184
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



oups, moi qui pensait l'installer, tu m'as refroidit confused.gif


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
corbin
posté 10 Jan 2006, 14:58
Message #20


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1699
Inscrit : 29-January 03
Lieu : Paris, France, ;-)
Membre no 791



as-tu lu la traduction de Josselin. sur son utilisation ?


--------------------
AVEZ-VOUS CHERCHE :

- UNE CONTRIBUTION ? :
FAC : Foire Aux Contributions

- A INSTALLER UNE CONTRIBUTION ? : INSTALLATION DES CONTRIBUTIONS

- UNE REPONSE ? : F.A.Q.
- DOC MS2 V1 - DOC MS2 V2 - MOTEUR DE RECHERCHE DES FORUMS

Go to the top of the page
 
flexijuju
posté 17 Jan 2006, 14:29
Message #21


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 104
Inscrit : 27-September 05
Membre no 7258



En lisant tout cela, je me demande si il existe une autre contrib permettant de faire des reductions comme celle la, mais plus simple à installer..
Merci


--------------------
version : ms2
Site : [edit modération : NO_PUB]
Go to the top of the page
 
sumfvm
posté 17 Jan 2006, 17:12
Message #22


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 386
Inscrit : 14-January 05
Lieu : Alsace
Membre no 4379



QUOTE (flexijuju @ 17 jan 2006, 08:29)
En lisant tout cela, je me demande si il existe une autre contrib permettant de faire des reductions comme celle la, mais plus simple à installer..
Merci

Non, il n'en existe pas.

Je te conseille fortement d'utiliser un logiciel de comparaison de fichier comme Araxis Merge.

J'ai mi 4 mn montre en main à installer cette contribution avec ce logiciel.

Tu peux poser ici tes questions sur son utilisation.


--------------------
MS2FR
*******
Thumbnail PDF Catalogue v2.0+Google_Sitemap 1.2+HeaderTag_2.5.5+visible_countries+Category Box Enhancement
Go to the top of the page
 
rapido
posté 3 Feb 2006, 02:25
Message #23


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 1
Inscrit : 3-February 06
Membre no 8879



QUOTE (vutana @ 04 jan 2006, 04:06)
Bonjour,

Je ne sais pas si ça peut aider, mais de mon côté, il n'y a qu'une config qui fonctionne pour le tri dans order total :
chèque cadeaux 740
bon de réduction 9

Tout autre ordre de tri empêche les chèques cadeaux de fonctionner.

As-tu essayé avec cette config ?

Salut,
Moi aussi, en tant que client je ne peux pas utiliser mes coupons de réduction ou chèques cadeaux pour payer ma commande.

Je viens de modifier et mettre le même ordre que vutana :
chèque cadeaux 740
bon de réduction 9

Grace à ça (merci vutana biggrin.gif ), j'ai une option supplémentaire qui me permet de "Transformer mon solde disponible en chèque cadeau", ....
MAIS où est-ce que je peux utiliser mes coupons / chèques en compte ???

Je n'ai pas la possibilité de les utiliser pour diminuer la commande.

C'est pas clair.
La saisie du code à utiliser permet de prendre en compte le coupon reçu. Il apparaît dans le panier.
MAIS comment l'utiliser question.gif

Aurais-je M..dé à l'instal ?

Quelqu'un a t'il une idée sur mon ?

Je sais même pas comment ça se présente à l'écran.
Quelqu'un peut me donner un nom de site qui l'utilise ?

J'en peux pluuuuuuuussssssss !!!!!! cry.gif
Go to the top of the page
 
buvezduvin
posté 16 Mar 2006, 08:06
Message #24


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 184
Inscrit : 2-September 05
Lieu : Dijon
Membre no 6970



Normalement tu as un onglet qui apparait au moment du choix du paiement (en dessous du paiement par chèque, ou virement, oucb,...) qui te permet d'utiliser tout ou partie du solde de ton compte


--------------------
- avec modération -
MS2 fr, ~35 contrib.
Go to the top of the page
 
polo
posté 16 Mar 2006, 10:00
Message #25


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1423
Inscrit : 24-April 03
Membre no 1102



Bonjour à tous et merci aussi ! car je pense avoir réussi à installer cette contrib , su moin la version Full package, jes autre j'ai des messages d'erreurs, donc les coupons ont l'air de fonctionner par contre les chèques c'est autre chose , car quand un client s'achete un cheque de 20 et que je valide dans l'admin, quand ce derniers décide d'utiliser ce chèque sur sa prochaine commande j'ai un message d'erreur sur la page checkout_payment:

CODE
    
Fatal error: Call to undefined function: sub_credit_selection() in d:\php\www\monsite.com\shop\checkout_payment.php on line 481


La ligne en question est:

CODE
echo $order_total_modules->sub_credit_selection();


Si je supprime je n'ai plus ce message d'erreur , mais ce code ? il est important ou c'est un bout de code d'une autre contrib ?


--------------------
OSC 2.1.3 et MS2 (PHP Version 5.2.17)
Go to the top of the page
 

2 Pages V   1 2 >
Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 22nd May 2013 - 12:34
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)