Aide - Recherche - Membres - Calendrier
Version complète : RESOLU afficher "à partir de" devant le prix si attribut
Forum osCommerce-fr > Adapter OsCommerce MS2 > Contributions
maxime63
Bonjour,

je souhaiterais afficher dans la page des produits en liste (j'utilise product listing column) la mention "à partir de" devant le prix uniquement quand il y a des attributs pour le produit

cela doit se passer dans includes/ modules/ product_listing_col.php
le problème c'est que je suis novice en php et ne demande qu'à apprendre.

je pense qu'il faudrait un truc de ce genre Comment supprimer le bouton ajouter et le prix si celui-ci est 0 ?

Je continue mes recherches en espérant que si quelqu'un a une idée, il me guide.
D'avance merci
francois21
Bonsoir
il y a un bout de code pour cela mais pour la page produit.
Tu peux essayer d'adapter
CODE
In product_info.php look for :

<?php echo $products_price; ?>

Replace with:

$products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'");
$products_attributes = tep_db_fetch_array($products_attributes_query);

$products_attributes_price = tep_db_query("select patrib.products_id, patrib.price_prefix, MIN(patrib.options_values_price) from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and popt.language_id = '" . (int)$languages_id . "' GROUP BY patrib.products_id");
$products_pp = tep_db_fetch_array($products_attributes_price);

if ($products_attributes['total'] > 0) {
$products_priceatti = $products_pp['MIN(patrib.options_values_price)'];
$products_price = $product_info['products_price'];
$sumItems = $products_price - $products_priceatti;
$totalItems = $currencies->display_price($sumItems, tep_get_tax_rate($product_info['products_tax_class_id']));

echo 'Price From: ' . $totalItems;
}else{
echo 'Price: ' . $products_price;
}



tu peux remplacer Price From: et Price par des constantes dans tes fichiers langage pour etre multi langue.

francois
maxime63
Bonjour François et merci de ta réponse.

J'ai tenté à partir de ta proposition de trouver la solution mais rien ne se passe.

dans la page product_listing_col.php, ça se présente comme ça :
CODE
case 'PRODUCT_LIST_PRICE':

$lc_align = 'right';

if ($listing['products_price'] > 0) {

if (tep_not_null($listing['specials_new_products_price'])) {

$lc_text = ' ' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . ' ' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . ' ';

} else {

$lc_text = ' ' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . ' ';

}

} else {

$lc_text = ' ';

}

break;


il faudrait un truc du genre, pour mon cas????? :

CODE
case 'PRODUCT_LIST_ATTRIBUTS':

$lc_align = 'right';

if ($products_attributes['total'] > 0) {

echo 'A partir de : ' . $totalItems; }else{ echo '' . $products_price; }

break;


il manque quelque chose mais quoi?
est-ce que je suis vers la solution? (merci de répondre au moins à cette question, je saurais si je dois continuer dans cette voie ou en trouver une autre)

merci d'avance pour votre collaboration

maxime63
j'ai testé autre chose d'après une réponse donnée sur un autre forum
toujours dans la page product_listing_col.php, j'ai modifié comme suit :

CODE
case 'PRODUCT_LIST_BUY_NOW':

$lc_align = 'right';

if ($pf->getPrice() > 0) {

$products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id='" . $listing['products_id'] . "' ");

$products_attributes = tep_db_fetch_array($products_attributes_query);



if($products_attributes['total'] > 0) {

$lc_text = 'A partir de ';

} else {

$lc_text = '';}

}

break;


mais n'y fait
maxime63
c'est bon j'ai trouvé,
si ça intéresse quelqu'un:
dans includes/modules/product_listing_col.php, j'ai modifié comme suit :

CODE
case 'PRODUCT_LIST_BUY_NOW':

$lc_align = 'right';



$products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id='" . $listing['products_id'] . "' ");

$products_attributes = tep_db_fetch_array($products_attributes_query);



if($products_attributes['total'] > 0) {

$lc_text = 'A partir de ';

} else {

$lc_text = '';

}

break;


Puis dans l'administration / aller à configuration / liste des produits
et activer l'affichage(dans mon cas bouton acheter)

bonne journée
stbo
Bonjour,
Cela m'interrese mais je n'ai pas de fichier product_listing_col.php

J'ai le fichier product_listing.php

Merci pour l'idée
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.