Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
24 Apr 2008, 10:21
Message
#1
|
|
![]() Ceinture orange+ OSC Groupe : Membres Messages : 461 Inscrit : 16-June 05 Lieu : 22980 Membre no 6229 |
Je suis sur la contribution Free Shipping by Categories
Le principe est de pouvoir offrir les frais de port mais uniquement sur des catégories précises. Je voudrait pouvoir ajouter la possbilité de définir un montant minimum d'achat pour que ce module soit actif. -------------------- MS2 machin truc (thema 3) 6.1.2 Patchée + QTPRO 4.2 + Discount Plus + Fancier Invoice + Master Pasword + Dangling Carrot + Kelkoo + SEO urls + SEO assisstant + diverses contrib |
|
|
24 Apr 2008, 13:31
Message
#2
|
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Dans ta contrib et à cet endroit :
// class methods function quote($method = '') { global $cart, $shipping_weight; Rajoute if ( $cart->show_total() < MINIMUN_AMOUNT_FOR_FREE_SHIPPING ) { $this->enabled = false; return ; } Et dans ton configure.php tu définis la valeur, ici 99 euro, par exemple : define(MINIMUN_AMOUNT_FOR_FREE_SHIPPING, '99') ; |
|
|
24 Apr 2008, 15:16
Message
#3
|
|
![]() Ceinture orange+ OSC Groupe : Membres Messages : 461 Inscrit : 16-June 05 Lieu : 22980 Membre no 6229 |
CITATION(delete @ 24 Apr 2008, 14:31) [snapback]279120[/snapback] Dans ta contrib et à cet endroit : // class methods function quote($method = '') { global $cart, $shipping_weight; Rajoute if ( $cart->show_total() < MINIMUN_AMOUNT_FOR_FREE_SHIPPING ) { $this->enabled = false; return ; } Et dans ton configure.php tu définis la valeur, ici 99 euro, par exemple : define(MINIMUN_AMOUNT_FOR_FREE_SHIPPING, '99') ; Merci ton aide cela marche nickel.... tu me sauves les derniers cheveux qu'il me reste..... Maintenant, reste plus qu'a comprendre pourquoi la contribe ne retire pas le poids des produits offerts si le client achètes des produits mixtes ( port offerts et payant ) -------------------- MS2 machin truc (thema 3) 6.1.2 Patchée + QTPRO 4.2 + Discount Plus + Fancier Invoice + Master Pasword + Dangling Carrot + Kelkoo + SEO urls + SEO assisstant + diverses contrib |
|
|
24 Apr 2008, 15:20
Message
#4
|
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
là c'est différent il faut traiter au cas par cas les produits et non pas sur la globalité du caddie et du module d'expé.
|
|
|
24 Apr 2008, 15:44
Message
#5
|
|
![]() Ceinture orange+ OSC Groupe : Membres Messages : 461 Inscrit : 16-June 05 Lieu : 22980 Membre no 6229 |
pourtant dans la contribution il semble que cela semble prévu... mais dnas la pratique ça ne fonctionne pas
CODE // If everything in the cart gets free shipping
if($free_count==$x){ $is_free = true; } else { // don't offer free shipping but subtract the weight of the item that gets free shipping $is_free = false; $cart->weight = $cart->weight-$free_weight; $shipping_weight = $cart->weight; } } else { if (MODULE_SHIPPING_FREECATS_ALL_OR_ONE == 'One'){ $products = $cart->get_products(); for($i=0, $x=sizeof($products); $i<$x; $i++){ $check_query = tep_db_query('select * from '.TABLE_PRODUCTS_TO_CATEGORIES.' where categories_id in ('.implode(',',$cats_array).') and products_id="'.(int)$products[$i]['id'].'"'); if (tep_db_num_rows($check_query)) $is_free = true; } } elseif (MODULE_SHIPPING_FREECATS_ALL_OR_ONE == 'All'){ $count = 0; for($i=0, $x=sizeof($cats_array); $i<$x; $i++){ $check_query = tep_db_query('select * from '.TABLE_PRODUCTS_TO_CATEGORIES.' where categories_id="'.$cats_array[$i].'" and products_id in ('.$pID_list.')'); if (tep_db_num_rows($check_query)) $count++; } if ($count == sizeof($cats_array)) $is_free = true; } else { $this->enabled = false; return false; } if ( MODULE_SHIPPING_FREECATS_ONLY_OR_ANY == 'Only' ){ $check_query = tep_db_query('select * from '.TABLE_PRODUCTS_TO_CATEGORIES.' where categories_id not in ('.MODULE_SHIPPING_FREECATS_CATEGORIES.') and products_id in ('.$pID_list.')'); if (tep_db_num_rows($check_query)) $is_free = false; } } if (!$is_free) { if (MODULE_SHIPPING_FREECATS_DISPLAY == 'True'){ if (MODULE_SHIPPING_FREECATS_ALL_OR_ONE == 'One') { if ( MODULE_SHIPPING_FREECATS_ONLY_OR_ANY == 'Only' ) $this->quotes['error'] = '<b>'.MODULE_SHIPPING_FREECATS_TEXT_TITLE.'</b><br />'.sprintf(MODULE_SHIPPING_FREECATS_TEXT_ERROR_ONE_ONLY, $cat_names); else $this->quotes['error'] = '<b>'.MODULE_SHIPPING_FREECATS_TEXT_TITLE.'</b><br />'.sprintf(MODULE_SHIPPING_FREECATS_TEXT_ERROR_ONE_ANY, $cat_names); } elseif (MODULE_SHIPPING_FREECATS_ALL_OR_ONE == 'All') { if ( MODULE_SHIPPING_FREECATS_ONLY_OR_ANY == 'Only' ) $this->quotes['error'] = '<b>'.MODULE_SHIPPING_FREECATS_TEXT_TITLE.'</b><br />'.sprintf(MODULE_SHIPPING_FREECATS_TEXT_ERROR_ALL_ONLY, $cat_names); else $this->quotes['error'] = '<b>'.MODULE_SHIPPING_FREECATS_TEXT_TITLE.'</b><br />'.sprintf(MODULE_SHIPPING_FREECATS_TEXT_ERROR_ONE_ANY, $cat_names); } } } if ($shipping_weight > MODULE_SHIPPING_FREECATS_WEIGHT_MAX && MODULE_SHIPPING_FREECATS_WEIGHT_MAX > 0) { if (MODULE_SHIPPING_FREECATS_DISPLAY == 'True'){ $this->quotes['error'] = '<b>'.MODULE_SHIPPING_FREECATS_TEXT_TITLE.'</b><br /> '.sprintf(MODULE_SHIPPING_FREECATS_TEXT_TO_WEIGHT, $cat_names); } $get_weight = false; } else { $get_weight = true; } if (($is_free && $get_weight)){ $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_FREECATS_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => sprintf(MODULE_SHIPPING_FREECATS_TEXT_WAY, $cat_names), 'cost' => MODULE_SHIPPING_FREECATS_COST))); $title = ''; } if ($this->tax_class > 0) { $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']); } if (tep_not_null($this->icon)) $this->quotes['icon'] = tep_image($this->icon, $this->title); return $this->quotes; } -------------------- MS2 machin truc (thema 3) 6.1.2 Patchée + QTPRO 4.2 + Discount Plus + Fancier Invoice + Master Pasword + Dangling Carrot + Kelkoo + SEO urls + SEO assisstant + diverses contrib |
|
|
24 Apr 2008, 16:04
Message
#6
|
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Une idée à la volée mais je sais pas si ca marche ... c'est une piste, ne m'en veut pas si ce n'est pas tout a fait exact ... car je ne connais pas la contrib et son analyse me prendrais un peu de temps !
if ( $cart->show_total() < MINIMUN_AMOUNT_FOR_FREE_SHIPPING ) { $this->enabled = false; $offered_shipping_weight = $shipping_weight ; $shipping_weight = offered_shipping_weight * -1 ; tep_session_register('offered_shipping_weight') ; return ; } else if ( tep_is_session_registered('offered_shipping_weight')) { $shipping_weight = offered_shipping_weight * -1 ; tep_session_unregister('offered_shipping_weight') ; } |
|
|
26 Apr 2008, 15:52
Message
#7
|
|
![]() Ceinture orange+ OSC Groupe : Membres Messages : 461 Inscrit : 16-June 05 Lieu : 22980 Membre no 6229 |
merci de ton aide mais la fonction offered_shipping_weight n'existe pas sur cette contrib.
-------------------- MS2 machin truc (thema 3) 6.1.2 Patchée + QTPRO 4.2 + Discount Plus + Fancier Invoice + Master Pasword + Dangling Carrot + Kelkoo + SEO urls + SEO assisstant + diverses contrib |
|
|
26 Apr 2008, 16:23
Message
#8
|
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
|
|
|
3 May 2008, 02:07
Message
#9
|
|
![]() Ceinture orange+ OSC Groupe : Membres Messages : 461 Inscrit : 16-June 05 Lieu : 22980 Membre no 6229 |
J'ai modifier un peu le code, mais j'ai toujours le soucis de
Citation Fatal error: Call to undefined function: tep_is_session_registered() in /*******/includes/modules/shipping/freecats.php on line 73 Code if ( $cart->show_total() < MINIMUN_AMOUNT_FOR_FREE_SHIPPING )
{ $this->enabled = false; $is_free = $shipping_weight; $shipping_weight = is_free * -1; tep_session_register('is_free'); return; } else if ( tep_is_session_registered('is_free')) { $shipping_weight = is_free * -1; tep_session_unregister('is_free'); } Ce message a été modifié par xavkick - 3 May 2008, 02:09. -------------------- MS2 machin truc (thema 3) 6.1.2 Patchée + QTPRO 4.2 + Discount Plus + Fancier Invoice + Master Pasword + Dangling Carrot + Kelkoo + SEO urls + SEO assisstant + diverses contrib |
|
|
3 May 2008, 02:18
Message
#10
|
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Oup's pardon c'est "tep_session_is_registered()" ... j'ai écrit on the fly ...
|
|
|
4 May 2008, 00:03
Message
#11
|
|
![]() Ceinture orange+ OSC Groupe : Membres Messages : 461 Inscrit : 16-June 05 Lieu : 22980 Membre no 6229 |
merci, je viens de faire la modif, effectivement j(ai plus l'erreur.. Par contre ça ne fonctionne toujours pas.
Je regarde encore un couple d'heure et je reviens pour te donner mes avancées xav -------------------- MS2 machin truc (thema 3) 6.1.2 Patchée + QTPRO 4.2 + Discount Plus + Fancier Invoice + Master Pasword + Dangling Carrot + Kelkoo + SEO urls + SEO assisstant + diverses contrib |
|
|
4 May 2008, 09:53
Message
#12
|
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Ca ne peut pas marcher.
Car tu utilises une variable qui a comme valeur soit true ou false. Alors que dans ton cas il faut décrémenter un poids. Pour déduire un poids on fait comme ca ; $shipping_weight = $poids_a_deduire * -1 ; le * -1 servant à mettre le poids à déduire en négatif afin que ta variable soit décrémentée. Je t'ai mis sur la piste, maintenant je ne connais pas ta contrib a toi de fouiner. Bon code |
|
|
![]() ![]() |
|
Version bas débit | Nous sommes le : 24th May 2013 - 03:54 |
| Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |