Aide - Recherche - Membres - Calendrier
Version complète : [résolu] Problème avec la contribution : Stock Display
Forum osCommerce-fr > Adapter OsCommerce MS2 > Contributions
ACréation
Bonjour,

J'ai peut être loupé un épisode mais je ne parviens pas à trouver comment afficher dans la fiche du produit (product_info.php) si un produit est disponible (en stock) ou pas.

Existe t'il une contribution ou alors suis-je passé à côté d'une évidence si grande que je ne la vois pas ? lol

D'avance merci pour votre aide.
greuter
Entre autre :
arrow.gif Afficher l'état du stock par des images

Il existe aussi de des posts dans le forum
arrow.gif Ici!
arrow.gif Ici!
arrow.gif et là!
ACréation
Merci, c'est exactement ce que je recherchais ! Cependant, j'ai un petit souci avec la contrib. En effet, les produits sont tous affichés Hors Stock alors qu'ils le sont bien...J'ai inséré le code comme ceci dans product_info.php :

Code
<?php
        $prod_quantity = tep_get_products_stock($products_id);
        switch ($prod_quantity) {

        case 0: // change this to a quantity you want - it's the for "available on request"
            print '<img src="images/weiss.gif" border="0" title="" alt="' . TEXT_VERFUEGBARKEIT_WHITE . '"> ' . TEXT_VERFUEGBARKEIT_WHITE .' </font>';     
            break;

        case 1: // change this to a quantity you want - it's the number for "available within 10 workdays"
            print '<img src="images/gelb.gif" border="0" title="" alt="' . TEXT_VERFUEGBARKEIT_YELLOW . '"> ' . TEXT_VERFUEGBARKEIT_YELLOW . ' </font>';
            break;
    
        default: //if the quantity is not 1 or 0, this text will be shown.
        print '<img src="images/gruen.gif" border="0" title="" alt="' . TEXT_VERFUEGBARKEIT_GREEN . '"> ' . TEXT_VERFUEGBARKEIT_GREEN . ' </font>';
        }
    ?>


Quelque soit mon stock, il est toujours affiché en Hors Stock. Je ne comprend pas très bien ou cela peut clocher.

PS : J'ai changé l'intitulé du topic pour ne pas en créer un autre.
miKL86
Comment sont gérés tes stocks en admin ?
ACréation
Bonjour,

Mes stocks sont indiqués lorsque je créé un produit. J'indique la quantité de produit disponible.
ACréation
Sinon, j'ai tenté en mettant :

Code
$products_quantity


à la place de :

Code
$prod_quantity


Mais toujours pareil...
ACréation
Problème résolu tout seul quand j'ai uploadé sur mon serveur.
freddyjack
Bonjour

Je me permet de relancer ce post car j'ai le même problème que ACréation, mais contrairement à lui même sur le serveur celà ne fonctionne pas , l'image qui s'affiche est toujours celle correspondant à un stock 0 .
Pour info voici le code que j'ai inséré
Code
$prod_quantity = tep_get_products_stock($products_id);
        switch ($prod_quantity) {
        
        case 0: // change this to a quantity you want - it's the for "available on request"
            echo '<img src="images/icons/stock_nostock.gif" border="0" title="" alt="' . TEXT_PRODUIT_EN_STOCK . '">';     
            break;

        case 1: // change this to a quantity you want - it's the number for "available within 10 workdays"
            echo '<img src="images/icons/stock_instock.gif" border="0" title="" alt="' . TEXT_PRODUIT_EN_STOCK . '">';
            break;
    
        default: //if the quantity is not 1 or 0, this text will be shown.
        echo '<img src="images/icons/stock_instock.gif" border="0" title="" alt="' . TEXT_PRODUIT_EN_STOCK . '">';
        }

J'ai aussi essayé ca :
Code
$prod_quantity = tep_get_products_stock($products_id);
if ($prod_quantity == 0) {
    echo '<img src="images/icons/stock_nostock.gif" border="0" title="" alt="' . TEXT_PRODUIT_EN_STOCK . '"> ';
} elseif ($prod_quantity >= 1) {
    echo '<img src="images/icons/stock_instock.gif" border="0" title="" alt="' . TEXT_PRODUIT_EN_STOCK . '">';

Rien n'y fait !!! J'ai l'impression que le problème viens de la fonction tep_get_products_stock($products_id) , mais je ne trouve pas de solution.
Si quelqu'un à une piste , merci d'avance .
Havock
Tu peux nous mettre ta fonction tep_get_products_stock ?
freddyjack
La fonction ce trouve dans le fichier general.php du dossier functions dans includes , au alentours de la ligne 108. je met le code :
Code
function tep_get_products_stock($products_id) {
    $products_id = tep_get_prid($products_id);
    $stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");
    $stock_values = tep_db_fetch_array($stock_query);

    return $stock_values['products_quantity'];
  }

freddyjack
Pour info , les valeurs dans la base de données du champs "products_quantity" dans la table "Products" sont correctes ... et se mettent à jours lorsque je change les valeurs dans les fiches produits dans la partie admin .
Bonbec
Bonjour,

La ligne $products_id = tep_get_prid($products_id); doit être en trop puisque le $products_id est passé dans l'appel de la fonction.
freddyjack
Ok Bonbec , merci de ta réponse . Donc apparemment le problème ne viendrais pas de mes codes.
Je vais tester ça et je vous tiens au courant de mes avancées.
Bonbec
Re,

En fait j'ai dit une bétise wacko.gif
Je viens de récupérer l'ordi avec un fichier general.php et la fonction function tep_get_prid() retourne un ID Produit nettoyé au cas où ce serait un ID produit avec attributs.
Donc ne pas le retirer.

Vu que le code à ajouter se trouve dans le fichier products_info.php et que dans ce fichier il n'y a pas de variable $products_id le problème vient de là à mon avis.
Par contre il y a $product_info['products_id']

Donc logiquement le code devrait commencer par :
$prod_quantity = tep_get_products_stock($product_info['products_id']);
switch ($prod_quantity) {

J'espère que çà réparera ma bêtise happy.gif
freddyjack
OK , je vais essayer ca .
Mais je ne comprend pas quelque chose, dis moi si je me trompe car je ne suis pas un dieu du php !!!
La variable $products_id est défini dans le fichier general.php qui est appelé par application_top dans cette page , non ?
Bonbec
Re,

Moi non plus je ne suis pas un dieu du Php, je suis d'ailleurs nettement plus doué avec ma machine de découpe & gravure laser smile.gif

Dans le fichier products_info.php le products_id est récupéré par $_GET['products_id'] donc il est sensé être passé en URL.
Ensuite il y a différents appels en BDD pour récupérer proprement les infos qui lui sont associées.
Perso je préfère utiliser les variables du fichier en question car à la relecture ultérieure c'est plus facile pour s'y retrouver.
freddyjack
Effectivement le product_id est passé en GET , j'avais omis ce "détail" ... ceci expliquant cela . Merci pour c explication . je vais tester avec le nouveau code dés que je rentre chez moi .
freddyjack
C bon , ça fonctionne biggrin.gif . Tu avais raison Bonbec , il fallait changer la première ligne de code par:
$prod_quantity = tep_get_products_stock($product_info['products_id']);
switch ($prod_quantity) {
Je trouve quand même bizarre que ACération ai réussi à faire fonctionner le code en l'état ... huh.gif
Merci beaucoup pour ton aide.
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.