Aide - Recherche - Membres - Calendrier
Version complète : Afficher la méthode de livraison dans product_info
Forum osCommerce-fr > Adapter OsCommerce MS2 > Modules de Paiement et de Livraison
Alix32
Bonjour,

Selon la catégorie de produits que je vends j'ai 2 méthodes de livraison possible.
Je souhaiterais savoir comment afficher la méhode de livraison possible dans la page product_info en fonction de cette catégorie de produits.

Exemple:

Mes produits de la catégorie X sont livrés par TNT seulement.
Tous mes autres produits sont livrés par Colissimo

Si je suis sur le product_info d'un produit de la catégorie X je voudrais afficher "produit livré par TNT", sinon je voudrais afficher "produit livré en colissimo"

Merci beaucoup pour votre aide!
Alix32
Merci beaucoup LeorLindel.

Je regarde ca de suite.
Alix32
Cette contribution ne repond pas vraiment a mon besoin.
J'ai installé la contribution "Individual Product Shipping methods " et j'ai 2 méthodes de livraison possibles selon le produit.
Comme dans le checkout_shipping.php, je souhaiterais avoir dans mon product_info.php les méthodes de livraison possibles pour le produit en question.
La méthode de livraison est présente dans la colonne "shipping_methods" de la table "products". N'y a-t-il pas moyen d'appeler cette variable dans le product_info? je suis sincerement désolé je ne suis pas un dieu du php smile.gif

Merci pour votre aide
Alix32
Salut LeorLindel!
Merci énormément pour avoir pris le temps de me donner ces infos surtout a 1h du matin!
J'y suis presque, malheureusement pas tout a fait. Ca me renvoie bien le contenu de la colonne "shipping_methods" pour le produit en question mais malheureusement il va falloir que je fasse une nouvelle bidouille. De plus j'ai oublié que j'avais une 3eme "shipping_method" qui est la récupération au magasin (suite a l'installation de la contribution store pickup).

Donc concretement voici ce que j'ai:
3 méthodes de livraison qui ont ces valeurs respectivement dans la colonne "shipping_methods":
- Colissimo (= colissimo 48h)
- spu (= récupération au magasin)
- dp (= transporteur TNT)

Avec le code que tu m'as donné, j'ai sur ma page product_info par exemple: Colissimo;spu

Comment puis-je réinterpréter ces valeurs et faire de la maniere suivante:
- si valeur = Colissimo, afficher "Livraison Colissimo disponible"
- si valeur = spu, afficher "Récupération au magasin possible"
- si valeur = dp, afficher "Produit livré par transporteur TNT"

Plus complexe, tous mes produits peuvent etre récupérés au magasin en plus d'avoir la possibilité de les livrer. Du coup puis-je réinterpréter
- si valeur = Colissimo;spu, afficher "Livraison Colissimo disponible</br>Récupération au magasin possible"

J'espere que je n'en demande pas trop mais je suis persuadé qu'il n'y a pas que moi qui vais profiter de cette astuce smile.gif

Merci encore pour ton aide, tres apprécié!

Alix
Team SPL
Bonjoir biggrin.gif
Je déterre ce topic car j'aimerais faire afficher les methode de livraison disponible sur product_info en relation avec "Individual Product Shipping methods"

Malheureusement les script du topic on été effacé c'est pour ça que je déterre happy.gif

Merci wink.gif
Garga
Bonjour,

Ce sujet à déja été traité sur ce fofo : Ici

Maintenant une methode fonctionnel si tu utilises les contribs:
Individual Product Shipping Methods
Colissimo 20090320 par Philippe Blain
French letter Max


Il faut rajouter un chiffre après la virgule dans la table products.products_weight:
CODE

ALTER TABLE products MODIFY products_weight decimal(5,3) NOT NULL;


Trouvez dans catalog/products_info.php:
CODE
$product_info_query = tep_db_query("select p.products_id, pd.products_name,


Ajouter:
CODE

p.shipping_methods, p.products_weight


Puis ou l'on veux afficher l'estimation:
CODE

<?php
//******************* FRAIS DE PORT SUR FICHE PRODUIT***************************
if ($product_info['products_weight'] <= '0.020'){
$lettermax_price_query = tep_db_query("select letter_cost from " . TABLE_LETTERMAX . " where letter_id=1");
$lettermax_price = tep_db_fetch_array($lettermax_price_query);
}
if (($product_info['products_weight'] > '0.020') && ($product_info['products_weight'] <= '0.050')){
$lettermax_price_query = tep_db_query("select letter_cost from " . TABLE_LETTERMAX . " where letter_id=2");
$lettermax_price = tep_db_fetch_array($lettermax_price_query);
}
if (($product_info['products_weight'] > '0.050') && ($product_info['products_weight'] <= '1.000')){
$lettermax_price_query = tep_db_query("select letter_cost from " . TABLE_LETTERMAX . " where letter_id=3");
$lettermax_price = tep_db_fetch_array($lettermax_price_query);
}
if ($product_info['shipping_methods'] == 'colissimo;lettermax'){
echo '<table cellpadding="0" cellspacing="0" width="100%"><tr><td class="infoBoxHeading" >&nbsp;<b>' . TEXT_AVAILABLE_SHIPPING_MODS. '</b>&nbsp;</td></tr></table>
<table cellpadding="0" cellspacing="0" width="100%"><tr><td class="infoBox" align="center"><table cellpadding="0" cellspacing="0" width="100%"><tr><td><img src="' . DIR_WS_IMAGES . 'icons/lettermax.gif"></td><td class="smalltext">' . TEXT_SHIPPING_RATE . '' . ($lettermax_price['letter_cost']) . 'EUR</td></tr></table></td>';
} elseif ($product_info['shipping_methods'] == 'colissimo'){
echo '<table cellpadding="0" cellspacing="0" width="100%"><tr><td class="infoBoxHeading" >&nbsp;<b>' . TEXT_AVAILABLE_SHIPPING_MODS. '</b>&nbsp;</td></tr></table>';
}
require(DIR_WS_CLASSES . 'shipping.php');
$total_weight = $product_info['products_weight'] ;
if ( !isset($order->delivery['country']['iso_code_2']) )
$order->delivery['country']['iso_code_2'] = 'FR' ;

$shipping_array = new shipping() ;
$shipping_array->quote() ;
$shipping_array = $shipping_array->cheapest() ;
$shipping_taxed = $currencies->format(tep_add_tax($shipping_array['cost'], tep_get_tax_rate($product_info['products_tax_class_id']))) ;

echo '<table cellpadding="0" cellspacing="0" width="100%"><td class="infoBox" align="center"><table cellpadding="0" cellspacing="0" width="100%"><tr><td><img src="' . DIR_WS_IMAGES . 'icons/shipping_colissimo.gif"></td><td class="smalltext">' . TEXT_SHIPPING_RATE . '' . $shipping_taxed . '</td></tr></table></td>
<td class="infoBox" align="center"><table cellpadding="0" cellspacing="0" width="100%"><tr><td><img src="' . DIR_WS_IMAGES . 'icons/shipping_colissimoINT.gif"></td><td class="smalltext">' .TEXT_SHIPPING_INTER . '</td></tr></table></td></tr></table>
<tr><td>' . tep_draw_separator('pixel_trans.gif', '100%', '10') .'</td></tr>
<tr><td class="infoBoxHeading" align="center">' . TEXT_SHIPPING_GROUP . '</td></tr>';
//******************* EOF FRAIS DE PORT SUR FICHE PRODUIT ***************************
?>



catalog/includes/languages/french/products_info.php:
Ajouter:
CODE

define('TEXT_SHIPPING_RATE', 'Tarif indicatif : ');
define('TEXT_SHIPPING_INTER', 'International & DOM-TOM : Merci de consulter les conditions d\'<a href="' . FILENAME_SHIPPING . '"><u>Expéditions et Retour</u></a>');
define('TEXT_AVAILABLE_SHIPPING_MODS', 'Mode de livraison disponible');
define('TEXT_SHIPPING_GROUP', '<b>Pensez à grouper vos achats, frais de port gratuit à partir de 100EUR (France Uniquement)</b>');

catalog/includes/languages/english/products_info.php:
Ajouter:
CODE

define('TEXT_SHIPPING_RATE', 'Indicative rate : ');
define('TEXT_SHIPPING_INTER', 'International & Overseas Departments : Please consult the conditions of <a href="' . FILENAME_SHIPPING . '"><u>Shipping and Return</u></a>');
define('TEXT_AVAILABLE_SHIPPING_MODS', 'Shipping methods available:');
define('TEXT_SHIPPING_GROUP', '<b>Remember to group your purchases, free shipping from 100EUR (France Only)</b>');



Bon code


Team SPL
Hi!
Merci Garga wink.gif
J'essayerais ça quand j'aurais un moment
@+ wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2013 Invision Power Services, Inc.