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

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [Contourné/Résolu]Colissimo avec ou sans assurance, Utilisation de Colissimo (French Post) modifié
Garga
posté 20 Feb 2010, 11:01
Message #1


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 171
Inscrit : 14-March 07
Lieu : Paris
Membre no 15916



Bonjour,

Je cherche a utiliser la contrib Colissimo (French Post) mais avec quelques modifs.
Je m'explique:
Je souhaite afficher au client un choix entre Colissimo R0 et le Colissimo Rx selon la valeur acheté afin qu'ils aient le choix de se faire livré avec ou sans assurance.
Pour ce faire j'ai copier tout les fichiers de cette contrib et ajouter "ass" dans le nom des fichiers puis modifié les variables en ajoutant la meme chose que pour les fichiers dans l'intitulé de cette dernière.

Concraitement ca donne ca:
includes/lmodules/shipping/colissimo.php => includes/lmodules/shipping/colissimo.php

Et
CODE
class colissimo {
var $code, $title, $description, $icon, $enabled;

// class constructor
function colissimo()
{
$this->code = 'colissimo';
$this->title = MODULE_SHIPPING_COLISSIMO_TEXT_TITLE;
$this->description = MODULE_SHIPPING_COLISSIMO_TEXT_DESCRIPTION;
$this->sort_order = MODULE_SHIPPING_COLISSIMO_SORT_ORDER;
$this->icon = DIR_WS_ICONS . 'shipping_colissimo.gif';
$this->tax_class = MODULE_SHIPPING_COLISSIMO_TAX_CLASS;
$this->enabled = MODULE_SHIPPING_COLISSIMO_STATUS;
$this->num_international = 4; //Nbr de zone International
// disable the module if the order only weight > 30

Devient
CODE
class colissimoass {
var $code, $title, $description, $icon, $enabled;

// class constructor
function colissimoass()
{
$this->code = 'colissimoass';
$this->title = MODULE_SHIPPING_COLISSIMOASS_TEXT_TITLE;
$this->description = MODULE_SHIPPING_COLISSIMOASS_TEXT_DESCRIPTION;
$this->sort_order = MODULE_SHIPPING_COLISSIMOASS_SORT_ORDER;
$this->icon = DIR_WS_ICONS . 'shipping_colissimo.gif';
$this->tax_class = MODULE_SHIPPING_COLISSIMOASS_TAX_CLASS;
$this->enabled = MODULE_SHIPPING_COLISSIMOASS_STATUS;
$this->num_international = 4; //Nbr de zone International
// disable the module if the order only weight > 30


Bien sur j'applique la même logique a tout le fichier.

Et enfin dans includes/lmodules/shipping/colissimo.php j'ai fais ca:
CODE
for ($i = 0; $i < sizeof($table); $i+=2) {

if ($shipping_weight > $table[$i])
continue;
if (($shipping_weight < $table[$i]) && ($j== '0')) {
if($auto=="True"){

if(($total<=50)&&($k=="0")){
$methods[] = array('id' => "TOMR1", 'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE, 'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
$k++;
}elseif(($total>50) && ($total<=200)&&($k=="0")){
$methods[] = array('id' => "TOMR2", 'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE, 'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
$k++;
}elseif(($total>200) && ($total<=400)&&($k=="0")){
$methods[] = array('id' => "TOMR3", 'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE, 'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
$k++;
}elseif(($total>400) && ($total<=600)&&($k=="0")){
$methods[] = array('id' => "TOMR4", 'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE, 'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
$k++;
}elseif(($total>600)&&($k=="0")){
$methods[] = array('id' => "TOMR5", 'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE, 'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
$k++;
}
}else{
if ( $method == '' || $method == "TOMR0" ) {
$methods[] = array('id' => "TOMR0", 'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE, 'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
}if ( $method == '' || $method == "TOMR1" ) {
$methods[] = array('id' => "TOMR1", 'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE, 'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
}if ( $method == '' || $method == "TOMR2" ) {
$methods[] = array('id' => "TOMR2", 'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE, 'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
}if ( $method == '' || $method == "TOMR3" ) {
$methods[] = array('id' => "TOMR3", 'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE, 'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
}if ( $method == '' || $method == "TOMR4" ) {
$methods[] = array('id' => "TOMR4", 'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE, 'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
}if ( $method == '' || $method == "TOMR5" ) {
$methods[] = array('id' => "TOMR5", 'title' => MODULE_SHIPPING_COLISSIMOR_TEXT_TITLE, 'cost' => $table[$i+1] + MODULE_SHIPPING_COLISSIMO_HANDLING);
}
$j="2";
}
}

}


J'applique la même logique pour les Dom Tom.

Ensuite du coté admin j'installe les deux modules:
- Colissimo (modifier pour que le R0 soit appliqué dans tout les cas) que je configure avec une sélection automatique du mode de livraison + International desactivé
- Colissimoass (modifier pour que les variables soit différentes du fichier d'origine) que je configure avec une sélection automatique du mode de livraison + International activé

Tout avais l'air de fonctionné parfaitement mais voila, lorsque je met certain produits dans mon panier la livraison R0 est facturé 0€!!! Voir meme au moment de commander je ne peux plus choisir le mode de livraison, je me retrouve a payer direct sans que le moindre frais de port me soit facturé! sad.gif

J'espère avoir été clair.
Si quelqu'un a une idée a ce sujet, je suis preneur car je ne vois pas du tout pourquoi ca bug.

Ce message a été modifié par Garga - 23 Feb 2010, 12:19.


--------------------
Garga.

Le developpement est un hobby pour moi et non mon metier. Je ne gere qu'un site web, le mien. Merci de votre indulgence.

Version OSC & ADDs: oscommerce-2.2rc1-FR-w3c-3 + CCGV_fixed5xx + infoBox_Admin_v2_25_1 + CenterShop + Banner in Header + AntiRobotRegistrationValidation-3.1 + Scrolling Specials + shop by price + login box in header + Quick Stock + French Colissimo Shipping + French Letter Max + Individual Product Shipping Methods + ...
Go to the top of the page
 
chti_poupon
posté 20 Feb 2010, 19:33
Message #2


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2160
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonjour !
Si çà fonctionne, c'est bien.
Cependant, habituellement, on duplique les modules ( c'est à dire qu'on enregistre une copie dans catalog/includes/modules/shipping/ et qu'on la renomme - par exemple nom1.php ).
On renomme ensuite, à l'intérieur, toutes les occurences du nom en nom1 (classe nom --> classe nom1.... et idem fonction, variables...) bestial, mais rapide et efficace à l'éditeur. Pareil dans les define de catalog/includes/languages/french/modules/shipping/nom1.php (à créer par copie et changer tous les TOTO_NOM en TOTO_NOM1 - éventuellement adapter les commentaires, mais pas urgent)
On ne touche pas catalog/shipping.php: il ne fait que de l'affichage et s'adapte aux modules présents par l'utilisation de variables de variables ($$toto).
POUR MIEUX COMPRENDRE
Tout le secret est dans catalog/admin/modules.php : en quelques lignes
Code
  $file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));
  $directory_array = array();
  if ($dir = @dir($module_directory)) {
    while ($file = $dir->read()) {
      if (!is_dir($module_directory . $file)) {
        if (substr($file, strrpos($file, '.')) == $file_extension) {
          $directory_array[] = $file;
        }
      }
    }

il repère les modules présents (payment, shpping et order_total) et les présente dans l'admin.

SUITE DES OPERATIONS:
Se connecter à l'admin, aller dans modules puis dans expédition: SURPRISE ! Il y a 2 modules colissimo (ou frais fixes ou...):
Se positionner sur le premier, cliquer sur installer, puis le configurer, par exemple sur "sans recommandé" - pas à l'international. sauver.
Se positionner sur le second, cliquer sur installer et rebelotte.
Les deux options seront proposées, chacune avec leur particularité choisie dans l'admin.
Il peut alors être utile de repasser dans catalog/includes/languages/french/modules/shipping/nom.php et nom1.php pour adapter les define plus finement aux cas précis.

A vrai dire, cette technique est employable sur tous les modules et je l'ai employée aec succès sur plusieurs d'entre eux. Mais pas sur colissimo. Si çà ne marchait pas, j'aimerai qu'on me le dise.

Bon code !

Chti poupon


--------------------
Utilisateur de :
  • Espace de travail
    • Débug: local avec Easy PHP 2.0.0.0
    • Apache/2.2.13 (Win32) DAV/2 mod_ssl/2.2.13 OpenSSL/0.9.8k PHP/5.2.10
    • Base: MySQL 5.0.51a sur le serveur localhost
    • Gestion base par: phpMyAdmin Version: 3.2.1
    • Mise au point finale: en ligne
    • 2.2 en exploitation
    • 2.3.1 en cours (local)
    • Navigateur Seamonkey à jour
Go to the top of the page
 
Garga
posté 21 Feb 2010, 17:18
Message #3


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 171
Inscrit : 14-March 07
Lieu : Paris
Membre no 15916



Bonjour et merci de m'avoir répondu Chti_poupon,

Cependant ce que tu me dis de faire correspond exactement a ce que j'ai fait et la c le bug...

As tu d'autres idées???


--------------------
Garga.

Le developpement est un hobby pour moi et non mon metier. Je ne gere qu'un site web, le mien. Merci de votre indulgence.

Version OSC & ADDs: oscommerce-2.2rc1-FR-w3c-3 + CCGV_fixed5xx + infoBox_Admin_v2_25_1 + CenterShop + Banner in Header + AntiRobotRegistrationValidation-3.1 + Scrolling Specials + shop by price + login box in header + Quick Stock + French Colissimo Shipping + French Letter Max + Individual Product Shipping Methods + ...
Go to the top of the page
 
chti_poupon
posté 21 Feb 2010, 19:04
Message #4


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2160
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonsoir!
Acceptes mes excuses, car je parlais de cette contrib là :
Module Colissimo 20090320 par Philippe Blain
C'est celle que j'utilise et je n'ai, pas fait attention à ta référence.
Dans celle que je cite, on peut choisir recommandé oui/non ET taux = Auto OU R0,R1....
De toutes façons, nouveaux tarifs au 1/4/10 R1 à R3 seulement grille de poids 0.25;0.5;0.75;.....5;6;7;....
Il va falloir s'y pencher !
Désolé de ne pouvoir aller plus loin. Peut-être les cas qui coincent concernent une partie supprimée ou modifiée ?
Chti poupon
Go to the top of the page
 
Garga
posté 23 Feb 2010, 12:18
Message #5


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 171
Inscrit : 14-March 07
Lieu : Paris
Membre no 15916



Et bien voila, j'ai tester Module Colissimo 20090320 par Philippe Blain qui fait déja ce que je souhaitais faire avec mon module "d'origine"(Colissimo french post v1.cool.gif et je l'ai adopté. Il est vrais que l'on ne peux pas modifier les tarifs directement depuis l'admin mais au moins le client a le choix entre R0 ou Rx selon le montant de ce commande...

Merci bien chti_poupon


--------------------
Garga.

Le developpement est un hobby pour moi et non mon metier. Je ne gere qu'un site web, le mien. Merci de votre indulgence.

Version OSC & ADDs: oscommerce-2.2rc1-FR-w3c-3 + CCGV_fixed5xx + infoBox_Admin_v2_25_1 + CenterShop + Banner in Header + AntiRobotRegistrationValidation-3.1 + Scrolling Specials + shop by price + login box in header + Quick Stock + French Colissimo Shipping + French Letter Max + Individual Product Shipping Methods + ...
Go to the top of the page
 

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 : 21st May 2013 - 13:54
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)