[Contrib] Proposer une date de livraison selon un produit ou/et le module de livraison, Loi Chatel. Afficher la date de livraison dans modules de livraisons |
Bienvenue invité ( Connexion | Inscription )
[Contrib] Proposer une date de livraison selon un produit ou/et le module de livraison, Loi Chatel. Afficher la date de livraison dans modules de livraisons |
27 Sep 2008, 13:25
Message
#1
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Bonjour a tous
Suite à un besoin personnel, je mets ici un code permettant de proposer une date de livraison. Je dirais plutôt une estimation. C'est vrai, il y a déjà un sujet créé le dessus -> Loi Châtel Merci à celui qui l'a créé et ceux qui y sont intervenu, qui constitue une solution à part entière. Mais peut être que ceci va contribuer, ou déboucher sur un second choix Bien que le but soit le même, je préfère créer un autre sujet car la manière de faire reste à mon sens assez différente. Je suis partie du principe que la date obtenue sera soit lié à un produit (ou s'il y en a plusieurs, le délai de plus long), soit par le ou les modules de livraisons. A savoir que prendre cette voie me parait pas la plus simple, car des modules de livraisons il en existe énormément, et par conséquent il sera difficile voir impossible de prévoir un code "généraliste" pour tous ces modules. Une adaptation personnelle sera à mon avis obligatoire. Bon, pour le moment ce n'est qu'une ébauche, la gestion coté admin de tout cela est inexistant. Disons que cela dépendra si la solution est correcte, bonne, ou encore si évolution il y a. Pour le moment c'est donc un début de solution Descriptif des fonctionnalités de base : Un délai de livraison peut être défini selon chaque produit, si un panier contient plusieurs produits, le délai le plus grand sera pris comme base de calcul. Un délai peu être défini dans chacun des modules, mais ce n'est pas obligatoire, comme par exemple le module "spu" pour "A récupérer sur place". Pour le moment rien est fait, mais si un module contient son propre délai, ce délai se substituera à celui du produit à condition qu'il soit supérieur. En faite, c'est toujours le délai le plus important qui prend le "pas", que ce soit un produit ou un module. Ensuite, par rapport à la date en court, on calcul une date de livraison (estimation) en tenant compte du délai et des jours ouvrables. Cette date s'affiche dans dans les différents modules de livraisons (checkout_shipping.php). Il peut donc avoir des date différentes selon les modules. Amélioration (ou optionnel) : Affichage de la date de livraison (estimation) du module de livraison sélectionné dans le checkout_confirmation.php Les modifs à effectuer : -> Dans chacun des modules de livraisons : Ajout d'une méthode confirmation() -> Dans includes/classees/shipping.php : Ajout d'une méthode confirmation() -> Dans checkout_confirmation.php : Affichage/mise en forme de la date. Voilà en gros l'idée De mon coté ça a l'air concluant. Pour les membres que ça intéresse, ils peuvent bien évidemment dire ce qu'ils en pensent, c'est un peu le but je dirais. Du coup, qu'en pensez vous ? Ceci respecte t'il cette loi Châtel ? Le code est ci-dessous, divisée en 4 parties (4 post). -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
27 Sep 2008, 19:24
Message
#2
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Suite : Les parties :
-> Champ products_delai BDD, general.php, classe shopping_cart.php, classe order.php Donc comme le délai peut être obtenue d'un produit, il faut ajouter un champ products_delai à la table products. Code // Lancer la requête dans son PhpMyAdmin Le principe ici, est de stocker un délai de livraison (genre 2 jours ou 48h00, 1 semaine, etc...) sous forme d'un timestamp UNIX, ceci facilite les calculs par la suite. Enfin, théoriquement // ALTER TABLE `products` ADD `products_delai` INT( 8 ) NOT NULL AFTER `products_weight`; Les valeurs doivent prendre (par exemple) : 0 -> Pas de délai (valeur par défaut) 172800 -> 2 jour/48h00 = 3600 * 24 * 2 604800 -> 1 semaine/7 jours etc ... Ensuite une fonction permettant d'obtenir le nombre de jours ouvrables. Un code trouvé sur le Net, un peu modifié. -> includes/functions/general.php Code function get_jours_ouvrables($debut, $fin, $with_saterday = false, $with_sunday = true, $verif_livraison = false) { $totOuvrables = 0; // Comptabilise le nombre de jours ouvrables pendant la période de livraison for ($day = $debut; $day < $fin; ($day += 86400)) { $day_en = strtolower(date('D', $day)); // mon-tue-wen-thu-fri-sat-sun // if ($day_en == 'sat' || $day_en == 'sun') { switch (true) { case ($with_sunday == true && $with_saterday == true) : $totOuvrables++; // Comptabilise le samedi ET le dimanche break; case ($with_sunday == true && $with_saterday == false && $day_en == 'sun') : $totOuvrables++; // Comptabilise uniquement le dimanche break; case ($with_saterday == true && $with_sunday === false && $day_en === 'sat') : $totOuvrables++; // Comptabilise uniquement le samedi break; } } else { // Définition des dates fériées fixes $jour = date('j', $day); $mois = date('m', $day); $an = date('Y', $day); // if ($jour == 01 && $mois == 01) $totOuvrables++; // 1er janvier else if ($jour == 01 && $mois == 05) $totOuvrables++; // 1er mai else if ($jour == 08 && $mois == 05) $totOuvrables++; // 5 mai else if ($jour == 14 && $mois == 07) $totOuvrables++; // 14 juillet else if ($jour == 15 && $mois == 08) $totOuvrables++; // 15 aout else if ($jour == 01 && $mois == 11) $totOuvrables++; // 1 novembre else if ($jour == 11 && $mois == 11) $totOuvrables++; // 11 novembre //else if ($jour == 20 && $mois == 12) $totOuvrables++; // 20 décembre (Ile de La Réunion) else if ($jour == 25 && $mois == 12) $totOuvrables++; // 25 décembre // Pâques $paques = easter_date($an); // retourne un timestamp UNIX pour Pâques if (date('d', $paques) == $jour && date('m', $paques) == $mois) $totOuvrables++; // Ascension $ascension = $paques + 39; if (date('d', $ascension) == $jour && date('m', $ascension) == $mois) $totOuvrables++; // Pentecote $pentecote = $paques + 50; if (date('d', $pentecote) == $jour && date('m', $pentecote) == $mois) $totOuvrables++; } } // Si jour de livraison est un jour ouvrable if ($verif_livraison === true) $totOuvrables += get_jours_ouvrables($fin, ($fin + 86400), $with_saterday, $with_sunday, false); // return $totOuvrables; } Dans la classe shopping_cart.php (ligne ~ 13) -> includes/classes/shopping_cart.php : Initialise la nouvelle propriété "delaiMax" dans le constructeur Code function shoppingCart() { // delai_livraison BOC $this->delaiMax = 0; // delai_livraison EOC $this->reset(); } (toujours dans le shopping_cart.php) Ajouter le champ "products_delai" à la requête et -- -> initialiser le délai le plus grand par rapport aux produits et -- -> ajouter au tableau le "products_delai" Code function get_products() { global $languages_id; if (!is_array($this->contents)) return false; $products_array = array(); reset($this->contents); while (list($products_id, ) = each($this->contents)) { // delai_livraison BOC $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_delai, p.products_tax_class_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$products_id . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); // delai_livraison EOC if ($products = tep_db_fetch_array($products_query)) { $prid = $products['products_id']; $products_price = $products['products_price']; $specials_query = tep_db_query("select specials_new_products_price from " . TABLE_SPECIALS . " where products_id = '" . (int)$prid . "' and status = '1'"); if (tep_db_num_rows($specials_query)) { $specials = tep_db_fetch_array($specials_query); $products_price = $specials['specials_new_products_price']; } // delai_livraison BOC if ($products['products_delai'] > $this->delaiMax) { $this->delaiMax = $products['products_delai']; } $products_array[] = array('id' => $products_id, 'name' => $products['products_name'], 'model' => $products['products_model'], 'image' => $products['products_image'], 'price' => $products_price, 'quantity' => $this->contents[$products_id]['qty'], 'weight' => $products['products_weight'], 'final_price' => ($products_price + $this->attributes_price($products_id)), 'products_delai' => (int)$products['products_delai'], 'tax_class_id' => $products['products_tax_class_id'], 'attributes' => (isset($this->contents[$products_id]['attributes']) ? $this->contents[$products_id]['attributes'] : '')); // delai_livraison EOC } } return $products_array; } (toujours dans le shopping_cart.php) // Puis création d'une nouvelle méthode getDelaiMax() : Code class shoppingCart { ... code ... // delai_livraison BOC function getDelaiMax() { return $this->delaiMax; } // delai_livraison EOC } Dans la classe order.php -> includes/classes/order.php (Code pas obligatoirement utile en faite, non exploité pour le moment) Ajouter le "products_delai" au tableau (ligne ~ 227) : Code ... code ... for ($i=0, $n=sizeof($products); $i<$n; $i++) { // delai_livraison BOC $this->products[$index] = array('qty' => $products[$i]['quantity'], 'name' => $products[$i]['name'], 'model' => $products[$i]['model'], 'tax' => tep_get_tax_rate($products[$i]['tax_class_id'], $tax_address['entry_country_id'], $tax_address['entry_zone_id']), 'tax_description' => tep_get_tax_description($products[$i]['tax_class_id'], $tax_address['entry_country_id'], $tax_address['entry_zone_id']), 'price' => $products[$i]['price'], 'final_price' => $products[$i]['price'] + $cart->attributes_price($products[$i]['id']), 'weight' => $products[$i]['weight'], 'products_delai' => $products[$i]['products_delai'], 'id' => $products[$i]['id']); // delai_livraison EOC ... suite code ... (toujours dans la classe order.php) Création du nouvel élémént "delaiMax" au tableau this->info[] Permet de récupérer le délai le plus grand parmi les produits du panier Code function cart() {
global $HTTP_POST_VARS, $customer_id ......... ... code ... $index = 0; $products = $cart->get_products(); // delai_livraison BOC $this->info['delaiMax'] = $cart->getDelaiMax(); // Délai Max de la livraison // delai_livraison EOC ... suite code ... } -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
27 Sep 2008, 21:00
Message
#3
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Suite : La partie MODULE DE LIVRAISON
Le module flat.php (Frais forfaitaires) est à titre d'exemple, ceci peut être intégré à d'autres modules, comme colissimo, etc... Dans le (ou les) module de livraison -> includes/modules/shipping/flat.php (par exemple) (ligne ~ 77) Ajouter le délai minimum pour ce module dans -> function install() {} Désinstaller le module avant de faire les modifications si le module est déjà installé Code function install() { // Délai_minimum BOC (L'ordre des positions sont redéfini -> sort_order) 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 ('Utiliser ce mode de livraison', 'MODULE_SHIPPING_FLAT_STATUS', 'Oui', 'Voulez-vous proposer ce mode de livraison ?', '6', '1', 'tep_cfg_select_option(array(\'Oui\', \'Non\'), ', now())"); // Ajout constante -> MODULE_SHIPPING_FLAT_DELAI_MINI 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 ('Délai minimum', 'MODULE_SHIPPING_FLAT_DELAI_MINI', '172800', 'Délai minimum de jours ouvrés de livraison', '6', '2', 'tep_get_delai_title', 'tep_cfg_pull_down_delai(', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Coût de la livraison', 'MODULE_SHIPPING_FLAT_COST', '5.00', 'Le montant forfaitaire de livraison pour toute commande utilisant cette méthode.', '6', '3', 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 ('TVA applicable', 'MODULE_SHIPPING_FLAT_TAX_CLASS', '0', 'Sélectionnez la TVA applicable sur le montant de la livraison.', '6', '4', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', 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 ('Zone de livraison', 'MODULE_SHIPPING_FLAT_ZONE', '0', 'Si une zone est sélectionnée, elle sera la seule à proposer ce mode de livraison.', '6', '5', '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, date_added) values ('Ordre d\'affichage', 'MODULE_SHIPPING_FLAT_SORT_ORDER', '0', 'Ordre de tri de l\'affichage dans la liste des modules.', '6', '6', now())"); // Délai_minimum EOC } (toujours dans le (ou les) module de livraison) Et à faire en même temps de l'étape ci dessus, pour rajouter la constante -> MODULE_SHIPPING_FLAT_DELAI_MINI Code function keys() { return array('MODULE_SHIPPING_FLAT_STATUS', 'MODULE_SHIPPING_FLAT_DELAI_MINI', 'MODULE_SHIPPING_FLAT_COST', 'MODULE_SHIPPING_FLAT_TAX_CLASS', 'MODULE_SHIPPING_FLAT_ZONE', 'MODULE_SHIPPING_FLAT_SORT_ORDER'); } (toujours dans le (ou les) module de livraison) -> includes/modules/shipping/flat.php Code function getDelai() { global $order; $delai = array(); $totOuvrables = 0; $delai_order = (int)$order->info['delaiMax']; // Le délai minimum remplace le délai max des produits si celui ci est plus grand if (MODULE_SHIPPING_FLAT_DELAI_MINI > $delai_order) { $delai_order = MODULE_SHIPPING_FLAT_DELAI_MINI; } $time = time(); $heure = (int)date("H", $time); // Départ de la livraison le jour même ou le lendemain selon l'heure (12h00) $date_depart = ($heure > 12) ? $time + 86400: $time; $date_livraison = $date_depart + $delai_order; // Comptabilise le nombre de jours ouvrables entre la période de livraison $with_saterday = false; // Comptabilise pas les samedis $with_sunday = true; // Comptabilise les dimanches $verif_jour_livraison = true; // Vérifie si le jour de livraison est un jour ouvrable (si oui -> 1 jours de plus) $totOuvrables = get_jours_ouvrables($date_depart, $date_livraison, $with_saterday, $with_sunday, $verif_jour_livraison); // On ajoute les jour ouvrables : Timestamp du jour de livraison $date_livraison += $totOuvrables * 86400; // $delai['delai'] = $delai_order / 86400; $delai['date_liv'] = date(DATE_FORMAT, $date_livraison); return $delai; } (toujours dans le module) Code ... codes ... $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_FLAT_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_FLAT_TEXT_WAY, 'delai' => sprintf(MODULE_SHIPPING_FLAT_DELAI, $delai['delai'], $delai['date_liv']), 'cost' => MODULE_SHIPPING_FLAT_COST))); ... suite codes ... Dans le (ou les) fichiers langues du (ou des) module de livraison -> includes/languages/french/modules/shipping/flat.php Code // Estimation de la livraison define('MODULE_SHIPPING_FLAT_DELAI', '%s jours ouvrés. Livraison le %s (Estimation)'); Affichage du nombre de jours ouvrés et de l'estimation de la date de livraison -> catalog/checkout_shipping.php Code ... suite code ...
for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) { // set the radio button to be checked if it is the method chosen $checked = (($quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id'] == $shipping['id']) ? true : false); // if (isset($quotes[$i]['methods'][$j]['delai']) && tep_not_null($quotes[$i]['methods'][$j]['delai'])) { $colspan = ''; if ( ($n > 1) || ($n2 > 1) ) { $colspan = ' colspan="3"'; } echo ' <tr class="moduleRow">'."\n"; echo ' <td width="10">'.tep_draw_separator('pixel_trans.gif', '10', '1').'</td>'."\n"; echo ' <td'.$colspan.' class="main">'.$quotes[$i]['methods'][$j]['delai'].'</td>'."\n"; echo ' <td width="10">'.tep_draw_separator('pixel_trans.gif', '10', '1').'</td>'."\n"; echo ' </tr>'."\n"; } // if ( ($checked == true) || ($n == 1 && $n2 == 1) ) { echo ' <tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n"; } else { echo ' <tr class="moduleRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n"; } ... suite code ... -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
27 Sep 2008, 21:05
Message
#4
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Suite : La partie ADMIN
Une solution simpliste, c'est à dire sans gestion des différents délais dans une table, mais avec de simples tabeaux Php. Ca ce répète un peu, c'est le petit inconvénient. Mais rien n'empêche de pouvoir gérer ceci grâce à la BDD, via une table (genre delai_livraison). Pour le moment c'est pas le cas. 3 fonctions à rajouter Dans -> admin/includes/functions/general.php (avant : ?>) Code // delai_livraison BOC // table configuration : -> use_function function tep_get_delai_title($delai) { if ($delai == '0') { return TEXT_NONE; } else { $title = TEXT_NONE; // $t_delai[0] = array('id' => 0, 'text' => TEXT_NONE); $t_delai[1] = array('id' => 172800, 'text' => '2 Jours'); $t_delai[2] = array('id' => 259200, 'text' => '3 Jours'); $t_delai[3] = array('id' => 604800, 'text' => '1 Semaine'); $t_delai[4] = array('id' => 864000, 'text' => '10 Jours'); $t_delai[5] = array('id' => 1296000, 'text' => '15 Jours'); $t_delai[6] = array('id' => 1814400, 'text' => '3 Semaines'); $t_delai[7] = array('id' => 2419200, 'text' => '4 Semaines'); // for ($i=0, $n = count($t_delai); $i < $n; $i++) { if ($t_delai[$i]['id'] == $delai) { $title = $t_delai[$i]['text']; break; } } // return $title; } } // table configuration : -> set_function function tep_cfg_pull_down_delai($delai, $key = '') { $name = (($key) ? 'configuration[' . $key . ']' : 'configuration_value'); // $t_delai[0] = array('id' => 0, 'text' => TEXT_NONE); $t_delai[1] = array('id' => 172800, 'text' => '2 Jours'); $t_delai[2] = array('id' => 259200, 'text' => '3 Jours'); $t_delai[3] = array('id' => 604800, 'text' => '1 Semaine'); $t_delai[4] = array('id' => 864000, 'text' => '10 Jours'); $t_delai[5] = array('id' => 1296000, 'text' => '15 Jours'); $t_delai[6] = array('id' => 1814400, 'text' => '3 Semaines'); $t_delai[7] = array('id' => 2419200, 'text' => '4 Semaines'); // return tep_draw_pull_down_menu($name, $t_delai, $delai); } // Pour categories.php function get_delai_pull_down_list() { // 3600 s = 1h00 // 1 jour/24h00 = 3600 * 24 = 86400 secondes $t_delais[0] = array('id' => 0, 'text' => TEXT_NONE); $t_delais[1] = array('id' => 172800, 'text' => '2 Jours'); $t_delais[2] = array('id' => 259200, 'text' => '3 Jours'); $t_delais[3] = array('id' => 604800, 'text' => '1 Semaine'); $t_delais[4] = array('id' => 864000, 'text' => '10 Jours'); $t_delais[5] = array('id' => 1296000, 'text' => '15 Jours'); $t_delais[6] = array('id' => 1814400, 'text' => '3 Semaines'); $t_delais[7] = array('id' => 2419200, 'text' => '4 Semaines'); // return $t_delais; } // delai_livraison EOC Dans -> admin/categories.php Ajout dans le tableau $parameters le "products_delai". Dans la condition -> if ($action == 'new_product') (ligne ~ 368) Code ... code ... if ($action == 'new_product') { // delai_livraison BOC ... code ... 'products_status' => '', 'products_delai' => '', 'products_tax_class_id' => '', 'manufacturers_id' => ''); // delai_livraison EOC ... suite code ... (toujours dans le categories.php) Ajout du champ products_delai à la requête : (ligne ~ 390) Code // delai_livraison BOC $product_query = tep_db_query("select pd.products_name, pd.products_description, pd.products_url, p.products_id, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as products_date_available, p.products_status, p.products_delai, p.products_tax_class_id, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'"); // delai_livraison EOC (toujours dans le categories.php) Affichage du choix du délai (menu déroulant), après les prix par exemple : (ligne ~ 500) Code <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <?php // delai_livraison BOC echo ' <tr>'."\n"; echo ' <td class="main">'.TEXT_PRODUCTS_DELAI.'</td>'."\n"; echo ' <td class="main">'.tep_draw_separator('pixel_trans.gif', '24', '15').' '.tep_draw_pull_down_menu('products_delai', get_delai_pull_down_list(), $pInfo->products_delai).'</td>'."\n"; echo ' </tr>'."\n"; // delai_livraison EOC ?> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> (toujours dans le categories.php) Mise à jour du produit. Ajout au tableau $sql_data_array le products_delai : (ligne ~ 219) Code // delai_livraison BOC $sql_data_array = array('products_quantity' => (int)tep_db_prepare_input($HTTP_POST_VARS['products_quantity']), ... code ... 'products_status' => tep_db_prepare_input($HTTP_POST_VARS['products_status']), 'products_delai' => (int)tep_db_prepare_input($HTTP_POST_VARS['products_delai']), 'products_tax_class_id' => tep_db_prepare_input($HTTP_POST_VARS['products_tax_class_id']), 'manufacturers_id' => (int)tep_db_prepare_input($HTTP_POST_VARS['manufacturers_id'])); // delai_livraison EOC ... suite code ... Fichiers langues Dans -> admin/includes/languages/french/categories.php (et les autres) (ligne ~ 96) Code // delai_livraison BOC
define('TEXT_PRODUCTS_DELAI', 'Délai de livraison :'); // delai_livraison EOC -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
28 Sep 2008, 08:29
Message
#5
|
|
Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
slt shoprun,
joli travail. par contre, tu as développé pour php5 non ? une 'tite idée optionnelle : suivant l'heure de la commande, le colis peut partir le jour même ou le lendemain, genre : function je_commande_avant_midi{ if $paiement_par_cb = true $mon colis part aujourd'hui $ma carte bleue est débité aussitôt (si si, on peut faire des remises le jour même manuellement ) } Cdt -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
28 Sep 2008, 09:11
Message
#6
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Citation par contre, tu as développé pour php5 non ? Effectivement, mon environnement c'est Php5, mais théoriquement ça devrait fonctionner sur du Php4.Mais je vois pourquoi du dis ceci, j'ai laissé des "public function...", je les enlève de suite. Bien vu Ceci dit, j'en profite pour dire qu'il faudrait abandonner Php4, ce n'est plus supporté par la communauté Php. Annonce officiel (uk) Citation une 'tite idée optionnelle : suivant l'heure de la commande, le colis peut partir le jour même ou le lendemain, genre : L'idée est bonne certainement, mais je pense tout de même que cela est assez éloigné avec ce que je propose.function je_commande_avant_midi{} Je me contente juste de proposer un délai de livraison, et c'est même plus qu'une estimation qu'autre chose, c'est pour être en accord avec cette loi Châtel. Mais effectivement, pourquoi pas. Malgré tout, ça me parais assez risqué tout de même, non ? En faite, tant que le client ne paie pas sa commande, il me parait difficile d'accorder une remise, ce n'est qu'à son retour du système de paiement (Paypal, Banque ...) que l'on sait qu'il a réglé, et de l'heure de la transaction. Du coup, la commande est enregistrée. Quelque part, c'est un peu tard pour accorder la remise. Ceci dit, je remarque que dans le code je rajoute immédiatement une journée (86400 secondes), ce qui fait que si on peu livrer le jour même, la date estimée sera de 24 heures trop tôt. Je vais mettre une condition en me basant sur l'heure, un truc du genre : SI avant 12h00 -> Calcul selon le jours en cours SINON (donc après 12h00) -> Calcul selon le lendemain Merci à toi -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
28 Sep 2008, 12:05
Message
#7
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Suite de cette contribution
La partie : OPTIONNELLE -> Afficher la date dans le checkout_confirmation Dans -> includes/classes/shipping.php Ajout d'une nouvelle propriété -> selected_module : (ligne ~ 14) Code class shipping { // delai_livraison BOC var $modules, $selected_module; // delai_livraison EOC (toujours dans shipping.php) (ligne ~ 23) Initialisation de la propriété $this->selected_module Code ... code ... $include_modules = array(); if ( (tep_not_null($module)) && (in_array(substr($module['id'], 0, strpos($module['id'], '_')) . '.' . substr($PHP_SELF, (strrpos($PHP_SELF, '.')+1)), $this->modules)) ) { $include_modules[] = array('class' => substr($module['id'], 0, strpos($module['id'], '_')), 'file' => substr($module['id'], 0, strpos($module['id'], '_')) . '.' . substr($PHP_SELF, (strrpos($PHP_SELF, '.')+1))); // delai_livraison BOC $mod = explode('_', $module['id']); $this->selected_module = $mod[0]; // delai_livraison EOC } else { ... suite code ... (toujours dans shipping.php) Création de la nouvelle méthode -> confirmation() Code class shipping { ... code ... // delai_livraison BOC // Rerourne un tableau pour afficher la date de livraison dans le checkout_confirmation.php function confirmation() { if (is_array($this->modules)) { if (is_object($GLOBALS[$this->selected_module]) && ($GLOBALS[$this->selected_module]->enabled) ) { // Contrôle de l'existance de la méthode "confirmation()" du module sélectionné if (in_array('confirmation', get_class_methods($GLOBALS[$this->selected_module]))) { return $GLOBALS[$this->selected_module]->confirmation(); } } } } // delai_livraison EOC } Dans -> includes/modules/shipping/flat.php Création de la nouvelle méthode -> function confirmation() Code class flat { var $code, $title, $description, $icon, $enabled; ... code ... // delai_livraison BOC function confirmation() { $delai = $this->getDelai(); $fields[] = array('title' => HEADING_SHIPPING_DATE, 'field' => sprintf(MODULE_SHIPPING_FLAT_DELAI, $delai['delai'], $delai['date_liv'])); return array('title' => HEADING_SHIPPING_INFORMATION, 'fields' => $fields); } // delai_livraison EOC } Dans -> checkout_confirmation.php (ligne ~ 240) Affichage de la date de livraison Code ... code ... if (MODULE_ORDER_TOTAL_INSTALLED) { echo $order_total_modules->output(); } ?> </table></td> </tr> </table></td> </tr> <?php // delai_livraison BOC if (is_array($shipping_modules->modules)) { if ($confirm_shipping = $shipping_modules->confirmation()) { if (tep_not_null($confirm_shipping['title']) && isset($confirm_shipping['fields']) && is_array($confirm_shipping['fields'])) { ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php echo ' <tr>'."\n"; echo ' <td class="main"><b>'.$confirm_shipping['title'].'</b></td>'."\n"; echo ' </tr>'."\n"; echo ' <tr>'."\n"; echo ' <td>'.tep_draw_separator('pixel_trans.gif', '100%', '10').'</td>'."\n"; echo ' </tr>'."\n"; echo ' <tr>'."\n"; echo ' <td>'."\n"; echo ' <table border="0" summary="" width="100%" cellspacing="1" cellpadding="2" class="infoBox">'."\n"; echo ' <tr class="infoBoxContents">'."\n"; echo ' <td>'."\n"; echo ' <table border="0" summary="" cellspacing="0" cellpadding="2">'."\n"; for ($i=0, $n=count($confirm_shipping['fields']); $i<$n; $i++) { echo ' <tr>'."\n"; echo ' <td class="main">'.$confirm_shipping['fields'][$i]['title'].'</td>'."\n"; echo ' <td class="main">'.$confirm_shipping['fields'][$i]['field'].'</td>'."\n"; echo ' </tr>'."\n"; } echo ' </table>'."\n"; echo ' </td>'."\n"; echo ' </tr>'."\n"; echo ' </table>'."\n"; echo ' </td>'."\n"; echo ' </tr>'."\n"; } } } // delai_livraison EOC if (is_array($payment_modules->modules)) { if ($confirmation = $payment_modules->confirmation()) { ... suite code ... Fichiers langues Dans -> includes/languages/french/checkout_confirmation.php (ligne ~ 29) (et les autres) Code // delai_livraison BOC
define('HEADING_SHIPPING_INFORMATION', 'Information de livraison'); define('HEADING_SHIPPING_DATE', 'Date de Livraison :'); // delai_livraison EOC -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
30 Sep 2008, 08:03
Message
#8
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Et bien voilà, après quelques essai sur une MS2-RC1-FR-W3C-v3, je n'ai pas vu de bug
La prochaine étape sera de modifier la façon d'intégrer cette (futur) contribution plus proche de ce que l'on peu voir sur les autres contributions, pour améliorer son intégration a osC. La façon ci dessus est un peu "à la dur" par moment. Puis de la déposer sur le site US. (pas trop le temps pour le moment) Cependant, il manque les traductions aussi (en, esp, de), alors s'ils y a des membres qui veulent bien faire des propositions de traductions, ça serait fort sympathique Mais aussi un nom pour cette futur contribution, j'suis pas très inspiré à vrai dire Un nom comme ceci peut être : delivery_date_depending_products_modules (un peu long non ?) Merci par avance pour toute aide -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
30 Sep 2008, 08:07
Message
#9
|
|
Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
bonjour monsieur,
Est il envisageable de caresser l'espoir d'avoir des screenshot de ce merveilleux code que vous avez eu l'amabilité de partager avec nous ? En vous remerciant d'avance, une admiratrice anonyme. (hum, j'y ai mis les formes cette fois ... ) -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
30 Sep 2008, 08:19
Message
#10
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
bonjour monsieur, M'en doutais Est il envisageable de caresser l'espoir d'avoir des screenshot de ce merveilleux code que vous avez eu l'amabilité de partager avec nous ? Bon, on va réparer ça. -> AYE Bon, ce n'est pas une contrib très graphique, tout ce "pata caisse" c'est pour obtenir 2 malheureux petits texte informatif de la date de livraison. Il y a donc 2 moment où on obtient cette date, sous cette forme : Dans les modules de livraison (checkout_shipping) Pour obtenir un texte comme : 2 jours ouvrés. Livraison le 02/10/2008 (Estimation) Dans la la confirmation de commande, avant paiement (checkout_confirmation) Et on reprend la même chose pour obtenir : Information de livraison Date de Livraison : 2 jours ouvrés. Livraison le 02/10/2008 (Estimation) La partie admin : modules-> Expéditions La partie admin : fiche produit Evidemment, chacun aura le loisir de le présenter comme il veut. Les 2 informations essentielles y sont, à savoir le nombre de jours ouvré -> le délai, et la date de livraison, une estimation en faite qui peu variée selon les jours ouvrables (dimanche, jour fériés) -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
16 Apr 2009, 17:40
Message
#11
|
|
Ceinture jaune OSC Groupe : Membres Messages : 54 Inscrit : 14-January 08 Lieu : Anglet - Pays Basque Membre no 20387 |
Bonjour,
tout d'abord merci pour le code Shoprun J'ai eu le même problème que Fredo42 En fait la contribution fonctionne correctement dans la partie admin ainsi que dans la partie checkout_confirmation.php. Par contre, dans la partie checkout_shipping.php le délai ne s'affiche pas correctement. En fait il manque l'appel à la fonction getDelai() dans le module (enfin c'est ce que j'en ai déduit avec mon niveau ) Du coup, $delai['delai'] et $delai['date_liv'] sont vides et on obtient: Citation jours ouvrés.Livraison le (estimation) .Donc la partie Citation Suite : La partie MODULE DE LIVRAISON il semble qu'il soit nécessaire de remplacerCode (toujours dans le module) Code ... codes ... $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_FLAT_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_FLAT_TEXT_WAY, 'delai' => sprintf(MODULE_SHIPPING_FLAT_DELAI, $delai['delai'], $delai['date_liv']), 'cost' => MODULE_SHIPPING_FLAT_COST))); ... suite codes ... par Code // class methods function quote($method = '') { global $order; // BOC delai_minimum $delai = $this->getDelai(); // EOC delai_minimum $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_FLAT_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_FLAT_TEXT_WAY, 'delai' => sprintf(MODULE_SHIPPING_FLAT_DELAI, $delai['delai'], $delai['date_liv']), 'cost' => MODULE_SHIPPING_FLAT_COST))); ....... ... code ... ........ J'ai également placé la déclaration de la fonction getDelai() avant la fonction quote() dans mon module (colissimo en l'occurence, mais j'imagine que c'est pareil pour flat.php). J'espère ne pas dire trop de sottises et que ça aidera certains qui ont mon niveau et qui ont passé 48h( comme moi ) à chercher d'ou ca provenait ) Enfin, désolé pour le up ) Nicolas |
|
16 Apr 2009, 18:57
Message
#12
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Salut Nixo
Citation (nixo) Par contre, dans la partie checkout_shipping.php le délai ne s'affiche pas correctement. Ca fait une paye que j'ai lâché cette affaire, mais je pense que c'est tout à fait ça. Mais dans le code de cette contribution (dans le module flat.php), le code y est, non ? Je remarque que le code y est aussi dans le install.html ??? Serait ce un oubli dans la version à télécharger sur le site US ? Si tu veux que ce texte soit repris dans le checkout_confirmation.php, et bien pour ça, idem : Code function confirmation() {
$delai = $this->getDelai(); $fields[] = array('title' => HEADING_SHIPPING_DATE, 'field' => sprintf(MODULE_SHIPPING_FLAT_DELAI, $delai['delai'], $delai['date_liv'])); return array('title' => HEADING_SHIPPING_INFORMATION, 'fields' => $fields); } -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
16 Apr 2009, 21:16
Message
#13
|
|
5eme dan OSC Groupe : Administrateur Messages : 9221 Inscrit : 4-March 03 Lieu : Pau Membre no 927 |
Good job man!
waip, je dis bravo! et pendant que Mâme Coco caresse l'espoir (une nouvelle race de poilus?) je ferai juste une petite suggestion d'amélioration sur tes arrays de pull_down (wai, je la joues optimiseur): tu utilises le TEXT_NONE qui provient du fichier french.php, ok mais à ce moment là, utilises des variables pour les autres durées sinon si c'est uniquement pour les français, personnalise ton text_none, enfin tu forces l'index $t_delai ou $t_delais (pourquoi les nommer différemment puisque le contenu est identique?) ce qui me semble superflu. donc je serai tenté de dire que puisque le tableau est identique, pourquoi ne pas le déclarer en general.php ? ce qui fait que : Code function get_delai_pull_down_list() { pourrait devenir :// 3600 s = 1h00 // 1 jour/24h00 = 3600 * 24 = 86400 secondes $t_delais[0] = array('id' => 0, 'text' => TEXT_NONE); $t_delais[1] = array('id' => 172800, 'text' => '2 Jours'); Code ######## // dans general.php ou mieux dans french.php, un localisé pouvant se trouver dans english.php ######## $t_delai = array(); $t_delai[] = array('id' => 0, 'text' => 'Choisissez'); $t_delai[] = array('id' => 172800, 'text' => '2 Jours'); $t_delai[] = array('id' => 259200, 'text' => '3 Jours'); $t_delai[] = array('id' => 604800, 'text' => '1 Semaine'); $t_delai[] = array('id' => 864000, 'text' => '10 Jours'); $t_delai[] = array('id' => 1296000, 'text' => '15 Jours'); $t_delai[] = array('id' => 1814400, 'text' => '3 Semaines'); $t_delai[] = array('id' => 2419200, 'text' => '4 Semaines'); ######## // dans l'appel de la creation du menu de liste de categories.php ######## tep_draw_pull_down_menu('products_delai', $t_delai, $pInfo->products_delai) ######## // et pour l'insérer dans une fonction comme celle de la configuration ######## // delai_livraison BOC // table configuration : -> use_function function tep_get_delai_title($delai) { global $t_delai; if ($delai == '0') { return TEXT_NONE; } else { $title = TEXT_NONE; for ($i=0, $n = count($t_delai); $i < $n; $i++) { if ($t_delai[$i]['id'] == $delai) { $title = $t_delai[$i]['text']; break; } } // return $title; } } // table configuration : -> set_function function tep_cfg_pull_down_delai($delai, $key = '') { global $t_delai; $name = (($key) ? 'configuration[' . $key . ']' : 'configuration_value'); return tep_draw_pull_down_menu($name, $t_delai, $delai); } Alors pas seulement puriste, mais pratique : ton code est plus léger, facile à localiser et si te veux changer les segments de durée, tu n'as qu'un seul tableau (array) à changer pour chaque langue. Note bien que le coup de la langue, on s'en tape un peu coté admin, mais si tu veux déposer ta contrib un jour sur addons.oscommerce autant avoir prévu le coup et encore bravo pour cette initiative! -------------------- Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues : Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums. Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin. ----------------------------- Quelques sites de référence --------------------------- PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien) |
|
17 Apr 2009, 07:10
Message
#14
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Citation (Gnidhal) mais si tu veux déposer ta contrib un jour sur addons.oscommerce autant avoir prévu le coup Presque ma main à couper de l'avoir déposée sur le site US Bon, je prends en compte ton code optimisé, et prévoir de la déposer, c'est tout de même plus pratique En tout cas, à cet instant j'ai pas tout pigé mais je vais m'y atteler, j'en doute pas 1 seconde que les modifs seront un plus. A suivre donc ... -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
17 Apr 2009, 11:41
Message
#15
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 94 Inscrit : 19-August 08 Lieu : Saint Valery en Caux Membre no 22745 |
Excellent travail shoprun !
ça donne réellement un plus pour la boutique. -------------------- oscommerce-2.2ms2-FR - Auto Remove Button in Shopping Cart - Agree2Terms v1.6.7 - CCGV v5.201 - colissimo pour oscommerce v 1.7 - country state selector ajax v1.5.5 - dhtml categories v111 - dynamic sitemap v3.5.5 - ecotax v1.3 - Fancier Invoice v6.2 - fckeditor-oscommerce v2 - Featured Products v1.61 - HeaderTags SEO v3.0.412 - Local Delivery v1.7 - Loginbox v5.7 - Main Categories v1.0c1 - Monthly Installment Payments Layby v2.0 - MostPopular v1 - New products glide - Product Name in navigation bar (selectable) v1.00 - Product Quantity Drop Down Box in Product Info v1.1 - Quick Update v2.90 - Review Approval System v1.31 - RMA Returns v2.6 - Search TagCloud v2.2 - StarProduct Pimped based on v1.6 - Stock Status in Product Listing v1.01 - Ultimate Seo Urls v2.5 - Ultra Pics 2.07.01 + LightBox - Virement bancaire v1.4 - Your Recent History v3.0
|
|
19 Apr 2009, 09:18
Message
#16
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Aussitôt dit, aussitôt fait, la contribution est dispo sur le site US : Delivery Date V1
J'ai donc pigé les modifications de Gnidhal ... merci à toi Cette contribution intègre donc cette évolution, elle devient bien conçue pour du multi-langue, mais les traductions de même que les jours fériés des différentes langues n'y sont pas, c'est uniquement que pour le calendrier Français. D'ailleurs, je n'est pas du tout fait d'essai dans ce cas de figure, surtout dans le cas où les jours fériés sont différents selon les langues. A mon avis c'est mal goupillé ... Pour faire simple, faudrait déplacer la fonction get_jours_ouvrables() ce trouvant dans catalog/includes/general.php et le mettre dans le french.php, english.php, etc ... Ensuite il sera possible de définir des jours fériés différents selon les langues. Il y surement mieux, mais faut se replonger dans le code Vu que c'est devenu une contribution -> déplacé dans le forum en question. /!\ Les codes fournis au tout début sont donc obsolètes ... Je ferais le ménage une prochaine fois -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
22 May 2009, 11:46
Message
#17
|
|
Ceinture bleue OSC Groupe : Membres Messages : 983 Inscrit : 8-April 08 Lieu : strasbourg Membre no 21429 |
bonjour shoprun,
juste une petite question; les modifications qui sont à faire dans catalog/includes/modules/shipping/flat.php ils faut aussi les faire dans tous les fichiers présent dans ce dossier catalog/includes/modules/shipping ? |
|
22 May 2009, 15:50
Message
#18
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Citation (audioshop55) les modifications qui sont à faire dans catalog/includes/modules/shipping/flat.php Pas obligatoirement, ça dépend si ça correspond ou non à son besoin.ils faut aussi les faire dans tous les fichiers présent dans ce dossier catalog/includes/modules/shipping ? En faite, le module "flat" n'est qu'à titre d'exemple, pour voir ce que ça donne en finalité grâce aux captures d'écran, et surtout pour savoir comment intégrer cette contrib et les codes dans son ou ses modules de livraisons. Si par exemple on a un module comme "spu" (récupération sur place, dans la boutique), il est inutile de proposer un délai de livraison, c'est même absurde vu qu'il n'y a pas de livraison, c'est le client qui vient le chercher. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
23 May 2009, 08:58
Message
#19
|
|
Ceinture bleue OSC Groupe : Membres Messages : 983 Inscrit : 8-April 08 Lieu : strasbourg Membre no 21429 |
merci shoprun pour cette réponse.
j'ai donc réussis à intégrer cette contrib pour tout mes modules d'expéditions sauf 1 bien sur, ou j'aurais besoin de votre aide c'est pour colissimo ! apparemment quand je suis sur la page checkout_confirmation.php l'estimation est bien affiché quand je choisi le mode colissimo mais par contre il n'y est pas sur la page checkout_shipping.php comme on le vois sur cette image: je vous met mon fichier colissimo.php aussi pour que vous puissiez voir ou j'ai du faire une erreur colissimo.php |
|
23 May 2009, 14:23
Message
#20
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
@audioshop55
Le lien vers le fichier mène nulle part ... -> erreur 404 -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
23 May 2009, 15:14
Message
#21
|
|
Ceinture bleue OSC Groupe : Membres Messages : 983 Inscrit : 8-April 08 Lieu : strasbourg Membre no 21429 |
effectivement une petite erreur de manip sorry
colissimo.php par contre j'ai apporté quelques modifications sur le deuxieme fichier qui suit, et je pense que mes erreurs d'affichage ce situais là! par contre j'ai pas encore pu le tester car je ne peux plus accéder à mon site j'ai un gros problème de serveur, vivement que je change d'hebergeur colissimo_2.php |
|
23 May 2009, 15:32
Message
#22
|
|
2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
En regardant dans ton colissomo_2.php, peut être faudrait il remonter le code du délai avant une condition, car plus bas dans les 2 else if() de cette même condition, le délai n'y est pas (apparemment).
Ce qui donnerait un code : Code // Délai_minimum BOC
$delai = $this->getDelai(); if (($dest_country == 'FR') OR ($dest_country == 'FX') OR ($dest_country == 'MC')) { ... etc ... -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
24 May 2009, 20:08
Message
#23
|
|
Ceinture bleue OSC Groupe : Membres Messages : 983 Inscrit : 8-April 08 Lieu : strasbourg Membre no 21429 |
ok merci shoprun, après la modif sur le fichier colissimo_2.php tout fonctionne correctement
encore une chose , c'est possible d'afficher le délais de livraison sur chaque produit en expliquant que c'est une estimation et que si 1 produits prend plus de temps qu'un autre ce seras la durée la plus longue qui seras prise en compte? merci encore pour ton aide Ce message a été modifié par audioshop55 - 24 May 2009, 20:14. |
|
11 Dec 2009, 13:31
Message
#24
|
|
Ceinture blanche OSC Groupe : Membres Messages : 8 Inscrit : 10-December 09 Membre no 26688 |
bonjour,
Super la contrib mais j'ai un soucis avec le module colissimo çà ne marche pas du tout Avez vous une solution pour corriger le module ? Merçi d'avance Alex |
|
19 Dec 2009, 23:19
Message
#25
|
|
Ceinture blanche OSC Groupe : Membres Messages : 8 Inscrit : 10-December 09 Membre no 26688 |
bonsoir à tous,
J'ai inséré ceci dans catalog/product_info.php Code // J'ai ajouté p.products_delai dans la ligne de lecture de la table $product_info_query = tep_db_query("select p.products_id, pd.products_name, ..... , p.products_image, p.products_delai, pd.products_url, ...... // ensuite en dessous du prix ou du bouton "ajouter au panier" // j'ai ajouté ces quelques lignes pour afficher un delai aproximatif de livraison <tr><td align="left"><?php // Livraison echo tep_image(DIR_WS_IMAGES . 'icons/delivery.png', HEADER_TITLE_CHECKOUT, '15', '', 'hspace="5" vspace="5"') ?></td> <td align="left" style="font-family:arial; font-size:9px;"><?php echo TEXT_VEFROMSTORE; echo '<br/>'; $delai_order = $product_info['products_delai']; if (MODULE_SHIPPING_FLAT_DELAI_MINI > $delai_order) { $delai_order = MODULE_SHIPPING_FLAT_DELAI_MINI; } $time = time(); $heure = (int)date("H", $time); // Départ de la livraison le jour même ou le lendemain selon l'heure (12h00) $date_depart = ($heure > 12) ? $time + 86400: $time; $date_livraison = $date_depart + $delai_order; // Comptabilise le nombre de jours ouvrables entre la période de livraison $with_saterday = false; // Comptabilise pas les samedis $with_sunday = true; // Comptabilise les dimanches $verif_jour_livraison = true; // Vérifie si le jour de livraison est un jour ouvrable (si oui -> 1 jours de plus) $totOuvrables = get_jours_ouvrables($date_depart, $date_livraison, $with_saterday, $with_sunday, $verif_jour_livraison); // On ajoute les jour ouvrables : Timestamp du jour de livraison $date_livraison += $totOuvrables * 86400; // $delai['delai'] = $delai_order / 86400; $delai['date_liv'] = date(DATE_FORMAT, $date_livraison); echo HEADING_SHIPPING_DATE; echo $delai['date_liv']; ?> </td> </tr> Qu'en pensez-vous ? Cordialement Alex Ce message a été modifié par AlexKid - 19 Dec 2009, 23:27. |
|
Version bas débit | Nous sommes le : 29th March 2024 - 12:08 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |