rendre visible produit stock épuisé |
Bienvenue invité ( Connexion | Inscription )
rendre visible produit stock épuisé |
19 Mar 2013, 11:44
Message
#1
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 122 Inscrit : 23-July 09 Lieu : Aveyron Membre no 25830 |
L'idée étant de garder les produits indisponibles non supprimé en ligne mais non présent sur le site (catégories, fabriquant, recherche).
Ils seront donc trouvable que par liens externes afin d'éviter les 404 ou Produit non trouvé ! Bien entendu il faudrait que le bouton acheter ne soit pas présent. Ce sujet a été abordé ici mais je n'ai pas trouvé la solution : http://www.oscommerce-fr.info/forum/index....showtopic=65948 -------------------- OScommerce 2.2RC1 : featured-products, Ajax shopingcart, who's online enhancement, product lising columns, how did you hear, Easy graphical border, ot discount coupons, show sub categories onmouse over, maincats, URL Rewriting, header tag seoV 3.1.8
|
|
19 Mar 2013, 12:52
Message
#2
|
|
Ceinture bleue OSC Groupe : Membres Messages : 912 Inscrit : 4-February 04 Membre no 1926 |
Salut gaet.
Quand tu visites le catalogue (catalogue, recherche, fabricant) tu fais des tests sur le champ products_status de la table products pour voir si tu dois afficher tes produits. Si products_status est à 1 on affiche, sinon on cache. Donc de ce coté tu n'a rien à faire sinon passer ton produit en inactif coté admin. En ce qui concerne la page product_info c'est assez simple. (Je te met le code de la 2.31, mais le principe est le même pour les autres versions) Tu as un test en début de page pour voir si le produit est actif : Code $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_check = tep_db_fetch_array($product_check_query); ... if ($product_check['total'] < 1) { En fonction du résultat de ce test tu affiches la page produit ou une page avec un message. Tout ce que tu as à faire c'est compléter ce test. Tu ajoutes une requête pour voir si la produit est bien dans la base, mais inactif : Code $product_checkin_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '0' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_checkin = tep_db_fetch_array($product_checkin_query); Maintenant tu modifie le test Code if ($product_check['total'] < 1) { pour tenir compte des deux infos Code if (($product_check['total'] < 1) AND ($product_checkin['total'] < 1)) { // Le produit n'est pas dans la base (il n'est ni actif, ni inactif); on balance la page produit non trouvé ... } else { // Le produit est dans la base mais actif ou inactif; on balance le reste du code de la page product_info ... Il reste juste à ajouter un test au niveau du bouton Acheter pour ne l'afficher que si le produit est actif : Code if ($product_check['total'] > 0) { // Le produit est actif // On met le code du bouton } Voila ; c'est en gros le principe -------------------- L'indispensable est en cours de traitement,
L'urgent sera traité demain, Le normal sera traité plus tard, Le reste on vera ... En conclusion : les journées sont trop courtes. Utilisateur de MS2.2 Max 1.5 - OSC-Affiliate 1.09 - Admin With Access Levels 2.1 - Meta Tag Controller/ Generator - Credit/Gift Voucher/Coupons 5.05 - Download Controller v5.3 - X-Sell MS2 - WYSIWYG HTML Editor for Admin 1.7 - Dynamic Mo Pics - Loginbox Best - Order logging before payment processing - User Tracking - Faster Page Loads, Less DB queries - Plus plein de modifs perso :-) |
|
19 Mar 2013, 13:52
Message
#3
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 122 Inscrit : 23-July 09 Lieu : Aveyron Membre no 25830 |
Merci pour ta réponse Hanvock.
Donc pour résumer aprés Code $product_check = tep_db_fetch_array($product_check_query); je rajoute Code $product_checkin_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '0' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_checkin = tep_db_fetch_array($product_checkin_query); Ensuite je remplace Code if ($product_check['total'] < 1) { par Code if (($product_check['total'] < 1) AND ($product_checkin['total'] < 1)) { Et aprés il faut modifier le code pour l'affichage du bouton. Ce message a été modifié par gaet - 19 Mar 2013, 17:51. -------------------- OScommerce 2.2RC1 : featured-products, Ajax shopingcart, who's online enhancement, product lising columns, how did you hear, Easy graphical border, ot discount coupons, show sub categories onmouse over, maincats, URL Rewriting, header tag seoV 3.1.8
|
|
Version bas débit | Nous sommes le : 28th March 2024 - 11:19 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |