Nous ne répondons seulement qu'aux sujets dont l'auteur a complété sa signature [Lire]



Vous avez des soucis avec votre Opencart v1.5.x, nous pouvons résoudre vos problèmes,
contactez le Bureau France !

par tel: 0 891 690 175 ou par
email

Supprimer le bouton "+" si stock = 0 [résolu]

Programmation, discussions et suggestions pour l'amélioration de OpenCart

Supprimer le bouton "+" si stock = 0 [résolu]

Messagepar cricri92 » 07 Nov 2010, 12:14

Bonjour
comme ce topic http://forum.opencart-france.com/developpement/supprimer-bouton-ajouter-au-panier-si-stock-0-t275.html j'avais trouver le code pour ne pas afficher le bouton "Ajouter au panier" si le stock = 0. Dans le même principe, ce qui parait logique, j'aimerais également faire pareil avec le bouton "+" dans l'affichage des produits par marques ou par catégorie. J'ai essayé avec le même code que l'autre mais je me retrouve avec un message d'erreur à la place de l'image "+".
voici le code que j'avais mis
Code: Tout sélectionner
<?php if($stock == $this->language->get('text_instock') || $stock > 0): ?>
<a class="button_add_small" href="<?php echo $products[$j]['add']; ?>" title="<?php echo $button_add_to_cart; ?>" >&nbsp;</a>
<?php endif; ?>

Si quelqu'un à une idée sur la chose, en attendent je cherche encore.
Merci
Dernière édition par cricri92 le 16 Nov 2010, 11:24, édité 1 fois.
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 138
Inscription: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Supprimer le bouton "+" si stock = 0

Messagepar LeorLindel » 07 Nov 2010, 12:48

cricri92 a écrit:J'ai essayé avec le même code que l'autre mais je me retrouve avec un message d'erreur à la place de l'image "+".
Il faudrait mettre l'erreur engendrée.
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4227
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Re: Supprimer le bouton "+" si stock = 0

Messagepar cricri92 » 07 Nov 2010, 13:17

Voici l'erreur
erreur.png
erreur.png (44.46 Kio) Vu 7393 fois
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 138
Inscription: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Supprimer le bouton "+" si stock = 0

Messagepar LeorLindel » 07 Nov 2010, 14:38

Essayes en mettant ce code dans le fichier catalog/controller/product/category.php
Code: Tout sélectionner
               $product_info = $this->model_catalog_product->getProduct($result['product_id']);
               
               if ($product_info['quantity'] <= 0) {
                  $this->data['stock'] = $product_info['stock'];
               } else {
                  if ($this->config->get('config_stock_display')) {
                     $this->data['stock'] = $product_info['quantity'];
                  } else {
                     $this->data['stock'] = $this->language->get('text_instock');
                  }
               }
Après ces lignes (154) :
Code: Tout sélectionner
                  if ($special) {
                     $special = $this->currency->format($this->tax->calculate($special, $result['tax_class_id'], $this->config->get('config_tax')));
                  }               
               }

Puis mets ce code :
Code: Tout sélectionner
                  'stock'   => $this->data['stock'],
Après cette ligne (175) :
Code: Tout sélectionner
                  'special' => $special,
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4227
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Re: Supprimer le bouton "+" si stock = 0

Messagepar cricri92 » 07 Nov 2010, 15:06

Je n'ai plus de message d'erreur, mais l'image "+" apparait quand même.
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 138
Inscription: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Supprimer le bouton "+" si stock = 0

Messagepar cricri92 » 07 Nov 2010, 15:09

J'avais installer un module nommé "Call of price" qui permet de mettre du texte à la place du prix. Avec ce système l'image "+" n'apparait pas dans les catégories.
Voici le code qui fait cela

Code: Tout sélectionner
<?php if ($display_price and $products[$j]['call_for_price'] == null) { ?>
          <?php if (!$products[$j]['special']) { ?>
          <span style="color: #900; font-weight: bold;"><?php echo $products[$j]['price']; ?></span>
          <?php } else { ?>
          <span style="color: #900; font-weight: bold; text-decoration: line-through;"><?php echo $products[$j]['price']; ?></span> <span style="color: #F00;"><?php echo $products[$j]['special']; ?></span>
          <?php } ?>
         
<a class="button_add_small" href="<?php echo $products[$j]['add']; ?>" title="<?php echo $button_add_to_cart; ?>" >&nbsp;</a>

   <br />
          <?php } ?>


Y a t'il pas une idée à prendre dans ce code. Je cherche ici.
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 138
Inscription: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Supprimer le bouton "+" si stock = 0

Messagepar cricri92 » 15 Nov 2010, 12:00

J'ai demandé sur le forum US une réponse à mon problème. J'ai eu comme solution le code ci-dessous, mais lorsque je lance l'appli il me dit qu'il y a une erreur à la ligne xx qui correspond à la première ligne de ce code.
Code: Tout sélectionner
<?php If ($products[$j]['qty']; == 0) {
} else { ?>
<a class="button_add_small" href="<?php echo $products[$j]['add']; ?>" />
<?php } ?>
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 138
Inscription: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Supprimer le bouton "+" si stock = 0

Messagepar LeorLindel » 15 Nov 2010, 13:17

Il est utile de mettre le libellé des erreurs si l'on veut comprendre le pourquoi et trouver la solution !
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4227
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Re: Supprimer le bouton "+" si stock = 0

Messagepar cricri92 » 15 Nov 2010, 14:12

Voici le message d'erreur qui s'affiche dans le navigateur
Code: Tout sélectionner
Parse error: parse error C:\wamp\www\opencart\boutique\catalog\view\theme\default\template\product\product.tpl on line 234
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 138
Inscription: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Supprimer le bouton "+" si stock = 0

Messagepar Diabolo » 15 Nov 2010, 15:03

Code: Tout sélectionner
<?php If ($products[$j]['qty']; == 0) {
} else { ?>
<a class="button_add_small" href="<?php echo $products[$j]['add']; ?>" />
<?php } ?>


enlever le ; pour la première ligne
essaye cela pour le if
remplacer
Code: Tout sélectionner
if ($products[$j]['qty']; == 0)

par
Code: Tout sélectionner
if (empty($products[$j]['qty']))
, j'ai pas essayé et je sais pas ce qu'il y a dans $products
Avatar de l’utilisateur
Diabolo
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 39
Inscription: 09 Nov 2010, 23:37

Re: Supprimer le bouton "+" si stock = 0

Messagepar cricri92 » 15 Nov 2010, 15:34

Merci de ta réponse, je n'ai plus le message d'erreur, mais j'ai toujours le "+" derrière le prix malgré que le stock du produit est à zéro.
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 138
Inscription: 02 Juil 2010, 05:28
Localisation: haut de Seine

Re: Supprimer le bouton "+" si stock = 0

Messagepar LeorLindel » 15 Nov 2010, 16:48

Une question me travaille.

Pourquoi veux-tu supprimer le bouton + quand le produit n'est plus en stock, il serait plus simple qu'il ne figure plus dans le catalogue, puisque épuisé...... non ?
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4227
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Re: Supprimer le bouton "+" si stock = 0

Messagepar Diabolo » 15 Nov 2010, 16:56

En regardant rapide le code

A mon avis c'est pas 'qty' mais 'quantity' (cf mysql)
le bon code serait:
Code: Tout sélectionner
              <?php if (!empty($products[$j]['quantity'])) { ?>
             <a class="button_add_small" href="<?php echo $products[$j]['add']; ?>" title="<?php echo $button_add_to_cart; ?>" >&nbsp;</a>
          <?php } ?>   

= Si quantity n'est pas 0 on affiche le +

Mais cela supprime tous les + car pour que le code fonctionne il faudrait aller chercher la quantité (quantity) pour le produit dans la base de données donc il faut modifier la requête sql, ça oblige à modifier le code source de ce que j'ai vu rapidement.

Je pense aussi qu'il faut aller au plus simple et enlever le produit s'il n'est plus disponible tout simplement ;)
Avatar de l’utilisateur
Diabolo
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 39
Inscription: 09 Nov 2010, 23:37

Re: Supprimer le bouton "+" si stock = 0

Messagepar Diabolo » 15 Nov 2010, 17:10

Tu as de la chance j'ai aps mis trop de temps à chercher :D

Donc la solution:

dans category.tpl
tu mets comme dit avant :
Code: Tout sélectionner
          <?php if (!empty($products[$j]['quantity'])) { ?>
             <a class="button_add_small" href="<?php echo $products[$j]['add']; ?>" title="<?php echo $button_add_to_cart; ?>" >&nbsp;</a>
          <?php } ?>


Puis dans catalog/controller/product/category.php
tu cherches :
Code: Tout sélectionner
               $this->data['products'][] = array(
                     'name'    => $result['name'],
                  'model'   => $result['model'],
                     'rating'  => $rating,
                  'stars'   => sprintf($this->language->get('text_stars'), $rating),
                  'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
                     'price'   => $price,
                     'options' => $options,
                  'special' => $special,
                  'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']),
                  'add'     => $add
                   );
              }

tu remplaces par :
Code: Tout sélectionner
               $this->data['products'][] = array(
                     'name'    => $result['name'],
                  'model'   => $result['model'],
                  'quantity'   => $result['quantity'],
                     'rating'  => $rating,
                  'stars'   => sprintf($this->language->get('text_stars'), $rating),
                  'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
                     'price'   => $price,
                     'options' => $options,
                  'special' => $special,
                  'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']),
                  'add'     => $add
                   );
              }


C'est pour aller chercher la quantity dans la bdd

Voila ;)
Avatar de l’utilisateur
Diabolo
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 39
Inscription: 09 Nov 2010, 23:37

Re: Supprimer le bouton "+" si stock = 0

Messagepar cricri92 » 16 Nov 2010, 10:42

Merci beaucoup Diabolo pour ta réponse.
J'ai fait exactement ce que tu a mis est cela marche correctement pour les catégories. Pour aller plus loin, je voudrais également que ce système marche pour les nouveautés et les produits apparentés dans la fiche du produits. Pour les nouveautés et les produits apparentés qu'elle fichiers à changer.
Je te remercie par avance et encore merci pour avoir chercher le code.
Mon but est que lorsque un produit est en rupture de stock, il n'y est aucune possibilités de le mettre dans le panier, mais le produit reste visible pour la consultation car le réassort généralement arrive assez rapidement.
Version Opencart 1.4.8 Fr sur serveur Infomaniak
Version Opencart 1.5.4.1 sur JOOMLA avec module AceShop
modules additionnels : CMS Categories, Stock report, Product extra fields, Poll, Visiteur counter, NextAndPreviousProductLink, MiniSlider
Avatar de l’utilisateur
cricri92
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 138
Inscription: 02 Juil 2010, 05:28
Localisation: haut de Seine

Suivante

Retourner vers Développement

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron