Mi catalogue / Mi commerce en désactivant le panier à la demande

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Mi catalogue / Mi commerce en désactivant le panier à la demande

    Salut,

    Je rêvais de cette option, grâce à Escape74, j'y suis arrivé
    Je souhaitais depuis un moment désactiver le panier sur seulement certains produits.
    Or pour le moment, Virtuemart n'offre la possibilité que de tout activer ou de tout désactiver, et c'est déjà pas mal .

    Là ce que je propose c'est de désactiver le panier sur uniquement les produits que vous voulez.

    Concrètement: Certains diront que c'est du bricolage, mais bon je pense que ça peut rendre de bons services. Le principe est de simplement paramétrer Virtuemart pour que lorsque que vous mettez un stock de xxxxx (10000 par exemple) le panier se désactive et la quantité en stock disparait. C'est donc super facile à gérer par la suite.

    Manipulation

    Ca se passe dans shop.products_details.php
    Changer ça
    Code HTML:
    /* ADD-TO-CART */
      $addtocart = "<div>
        <form action=\"". $mm_action_url."index.php\" method=\"post\" name=\"addtocart\" id=\"addtocart\">"
              .$ps_product_attribute->list_attribute($product_id)
              // added for the advanced attribute modification
              .$ps_product_attribute->list_advanced_attribute($product_id)
              // end added for advanced attribute modification
              .$ps_product_attribute->list_custom_attribute($product_id);
              // end added for custom attribute modification
    	if (USE_AS_CATALOGUE != '1' && $product_price != "" && !stristr( $product_price, $VM_LANG->_PHPSHOP_PRODUCT_CALL )) { 
                    $addtocart .= "
            <p><label for=\"quantity\" style=\"vertical-align: middle;\">".$VM_LANG->_PHPSHOP_CART_QUANTITY.":</label>
                <input type=\"text\" class=\"inputbox\" size=\"4\" id=\"quantity\" name=\"quantity\" value=\"1\" style=\"vertical-align: middle;\" />&nbsp;
                <input type=\"submit\" ";
                    $addtocart .= "style=\"text-align:center;background-position:bottom left;width:160px;height:35px;cursor:pointer;border:none;font-weight:normal;font-family:inherit;background: url('". IMAGEURL ."ps_image/".PSHOP_ADD_TO_CART_STYLE ."') no-repeat left center transparent;vertical-align: middle;\" ";
                    $addtocart .= "value=\"".$VM_LANG->_PHPSHOP_CART_ADD_TO ."\" title=\"".$VM_LANG->_PHPSHOP_CART_ADD_TO."\" />
              </p>
          <input type=\"hidden\" name=\"flypage\" value=\"shop.$flypage\" />
          <input type=\"hidden\" name=\"page\" value=\"shop.product_details\" />
          <input type=\"hidden\" name=\"manufacturer_id\" value=\"$manufacturer_id\" />
          <input type=\"hidden\" name=\"category_id\" value=\"$category_id\" />
          <input type=\"hidden\" name=\"func\" value=\"cartAdd\" />
          <input type=\"hidden\" name=\"option\" value=\"$option\" />
          <input type=\"hidden\" name=\"Itemid\" value=\"$Itemid\" />";
    	}
        $addtocart .= "</form>
        </div>";
    Par ça
    Code HTML:
    /* ADD-TO-CART */
     $product_in_stock = $db_product->f("product_in_stock");
    if($product_in_stock == 10000) {$addtocart .= "<form action=\"". $mm_action_url."index.php\" method=\"post\" name=\"addtocart\" id=\"addtocart\">"
    .$ps_product_attribute->list_attribute($product_id)
    // added for the advanced attribute modification
    .$ps_product_attribute->list_advanced_attribute($product_id)
    // end added for advanced attribute modification
    .$ps_product_attribute->list_custom_attribute($product_id);
    // end added for custom attribute modification</form></div>";
                                         }
                                  else {
    $addtocart = "<div>
    <form action=\"". $mm_action_url."index.php\" method=\"post\" name=\"addtocart\" id=\"addtocart\">"
    .$ps_product_attribute->list_attribute($product_id)
    // added for the advanced attribute modification
    .$ps_product_attribute->list_advanced_attribute($product_id)
    // end added for advanced attribute modification
    .$ps_product_attribute->list_custom_attribute($product_id);
    // end added for custom attribute modification
    if (USE_AS_CATALOGUE != '1' && $product_price != "" && !stristr( $product_price, $VM_LANG->_PHPSHOP_PRODUCT_CALL )) { 
    $addtocart .= "
    <p><label for=\"quantity\" style=\"vertical-align: middle;\">".$VM_LANG->_PHPSHOP_CART_QUANTITY.":</label>
    <input type=\"text\" class=\"inputbox\" size=\"4\" id=\"quantity\" name=\"quantity\" value=\"1\" style=\"vertical-align: middle;\" />&nbsp;
    <input type=\"submit\" ";
    $addtocart .= "style=\"text-align:center;background-position:bottom left;width:160px;height:35px;cursor:pointer;border:none;font-weight:normal;font-family:inherit;background: url('". IMAGEURL ."ps_image/".PSHOP_ADD_TO_CART_STYLE ."') no-repeat left center transparent;vertical-align: middle;\" ";
    $addtocart .= "value=\"".$VM_LANG->_PHPSHOP_CART_ADD_TO ."\" title=\"".$VM_LANG->_PHPSHOP_CART_ADD_TO."\" />
    </p>
    <input type=\"hidden\" name=\"flypage\" value=\"shop.$flypage\" />
    <input type=\"hidden\" name=\"page\" value=\"shop.product_details\" />
    <input type=\"hidden\" name=\"manufacturer_id\" value=\"$manufacturer_id\" />
    <input type=\"hidden\" name=\"category_id\" value=\"$category_id\" />
    <input type=\"hidden\" name=\"func\" value=\"cartAdd\" />
    <input type=\"hidden\" name=\"option\" value=\"$option\" />
    <input type=\"hidden\" name=\"Itemid\" value=\"$Itemid\" />";
                           }
    }
    $addtocart .= "</form>
    </div>";
    Pour info, j'ai mis "10000" en stock car 10000 est un chiffre que mon stock n'atteindra jamais.

    Maintenant, il faut désactiver l'affichage de "disponibilité en stock" pour tous les produits qui ont un stock de 10000.
    Et oui, sinon ça fait moyen de laisser ça visible sur le site.
    Pour ce faire, changer quelques lignes plus haut:
    Code HTML:
    /** AVAILABILITY **/
      // This is the place where it shows: 
      // Availability: 24h, In Stock: 5 etc.
      // You can make changes to this functionality in the file: classes/ps_product.php
      if( @$_REQUEST['output'] != "pdf" )
        $product_availability = $ps_product->get_availability($product_id);
    Par ça
    Code HTML:
    /** AVAILABILITY **/
      // This is the place where it shows: 
      // Availability: 24h, In Stock: 5 etc.
      // You can make changes to this functionality in the file: classes/ps_product.php
      if( @$_REQUEST['output'] != "pdf" )
      
     $product_in_stock = $db_product->f("product_in_stock");
    if($product_in_stock == 10000) {$product_availability = " ";
                                         }
                                  else {
    
      $product_availability = $ps_product->get_availability($product_id); 
        }
    Pour désactiver maintenant le panier dans la navigation (browse_1, browse_2...) ça se passe dans shop.browse.php , remplacez le code de votre bouton add to cart (entre /*** Add-to-Cart Button ***/ et /*** Now fill the template) par celui-ci :

    Code HTML:
    if (USE_AS_CATALOGUE != '1' && $product_price != "" && !stristr( $product_price, $VM_LANG->_PHPSHOP_PRODUCT_CALL )) {
          $product_in_stock = $db_browse->f("product_in_stock");
          if($product_in_stock == 10000) {$form_addtocart = "";}
          else {
       $form_addtocart = "<form action=\"". $mm_action_url ."index.php\" method=\"post\" name=\"addtocart\" id=\"addtocart".$i."\">\n
                    <label for=\"quantity_".$i."\">".$VM_LANG->_PHPSHOP_CART_QUANTITY.":</label>\n
                    <input id=\"quantity_".$i."\" class=\"inputbox\" type=\"text\" size=\"3\" name=\"quantity\" value=\"1\" />
                    <input type=\"submit\" style=\"text-align:center;background-position:bottom left;width:160px;height:35px;cursor:pointer;border:none;font-weight:bold;font-family:inherit;background: url('". IMAGEURL ."ps_image/".PSHOP_ADD_TO_CART_STYLE ."') no-repeat left center transparent;vertical-align: middle;overflow:hidden;\" value=\"".$VM_LANG->_PHPSHOP_CART_ADD_TO ."\" title=\"".$VM_LANG->_PHPSHOP_CART_ADD_TO."\" />
                    <input type=\"hidden\" name=\"category_id\" value=\"". @$_REQUEST['category_id'] ."\" />\n
                    <input type=\"hidden\" name=\"product_id\" value=\"". $db_browse->f("product_id") ."\" />\n
                    <input type=\"hidden\" name=\"page\" value=\"shop.cart\" />\n
                    <input type=\"hidden\" name=\"func\" value=\"cartadd\" />\n
                    <input type=\"hidden\" name=\"Itemid\" value=\"$Itemid\" />\n
                    <input type=\"hidden\" name=\"option\" value=\"com_virtuemart\" />\n
                  </form>\n";
         }
      }
      else
      $form_addtocart = "";

    Conclusion: Pour désactiver le bouton "ajouter au panier" sur seulement certains produits et transformer votre site en mi catalogue / mi vente en ligne , vous n'avez plus qu'à attribuer un stock de 10000 sur les produits de vos choix.

    Elle est pas belle la vie!

    Encore un grand grand merci à Escape74

    Si vous constatez des anomalies dans cette astuce, ou des grosses boulettes techniques, il ne faut pas hésiter, je suis là pour apprendre

    En tout cas chez moi ça marche nickel.

    @ +
    Julian.
    Dernière édition par julian à 09/05/2006, 20h32

  • #2
    salut à tous,

    merci pour le poste, j'en ai pas besoin pour l'instant mais on sait jamais alors bravo pour le partage et bonne continuation

    cordialement
    Agence web Joomla www.nartconcept.fr spécialisée en création de sites Joomla professionnels http://www.nartconcept.fr/services.html
    RT3 Framework : www.rt3.fr pour Joomla 1.7.x & 2.5

    Commentaire


    • #3
      C'est génial cette possibilité, l'idéale maintenant serait une fois dans l'admin virtuemart "liste des produits" on puisse choissir l'odre d'affichage par le nombre de produits en stock par exemple, ceci permettrait d'un seul coup d'oeil de voir quel sont les produits qui sont en stock 0 ou 1000 etc...

      je sais j'abuse
      Pas de demande de support en MP ou par mail, le forum est là pour ça!
      Joomla Ecommerce terminé grace à la communauté joomla , merci à tous. Maintenant je squate http://www.pc-tuning.fr
      http://www.mx-console.com
      http://www.alsace-boutique.fr prevu pour mars 2007

      Commentaire


      • #4
        juste un truc cette fonction devrait s'appliquer aussi au browse.php car dans le listing produit la possibilité de mettre le produit dans le pannier y est toujours
        Pas de demande de support en MP ou par mail, le forum est là pour ça!
        Joomla Ecommerce terminé grace à la communauté joomla , merci à tous. Maintenant je squate http://www.pc-tuning.fr
        http://www.mx-console.com
        http://www.alsace-boutique.fr prevu pour mars 2007

        Commentaire


        • #5
          Oui, il faut modifier le code un peu de la même facon, je post ça ce soir...
          www.salaison.fr : vente en ligne de saucissons de savoie !!
          Salma ou Pénélope ? --> Voter pour : http://forum.joomlafacile.com/showthread.php?t=9926

          Commentaire


          • #6
            OK merci , je t'ais laisser un mp peut tu y répondre svp merci
            Pas de demande de support en MP ou par mail, le forum est là pour ça!
            Joomla Ecommerce terminé grace à la communauté joomla , merci à tous. Maintenant je squate http://www.pc-tuning.fr
            http://www.mx-console.com
            http://www.alsace-boutique.fr prevu pour mars 2007

            Commentaire


            • #7
              Salut,

              En fait, comme je n'affiche pas du tout le panier pendant la navigation mais uniquement dans la fiche du produit, J'ai zappé les manipulations à faire dans le shop.browse.php .

              Désolé
              Mais je vois qu'escape74 veille au grain

              Commentaire


              • #8
                Salut julian, par contre, juste une remarque : dans la modif du code pour la disponibilité en stock, change cette ligne :
                Code PHP:
                $product_availability .= "</form></div>"
                Par celle ci :
                Code PHP:
                $product_availability ""
                Car la fin de balise form et div n'ont rien à faire ici...ça marche quand même avec, mais ton code html sera plus propre sans ! Merci !

                Edit : Et le point non plus !
                Dernière édition par escape74 à 09/05/2006, 19h26
                www.salaison.fr : vente en ligne de saucissons de savoie !!
                Salma ou Pénélope ? --> Voter pour : http://forum.joomlafacile.com/showthread.php?t=9926

                Commentaire


                • #9
                  Pour faire les modifs dans shop.browse.php, remplace votre bouton add to cart (entre /*** Add-to-Cart Button ***/ et /*** Now fill the template) par celui-ci :

                  Code HTML:
                    if (USE_AS_CATALOGUE != '1' && $product_price != "" && !stristr( $product_price, $VM_LANG->_PHPSHOP_PRODUCT_CALL )) {
                        $product_in_stock = $db_browse->f("product_in_stock");
                        if($product_in_stock == 10000) {$form_addtocart = "";}
                        else {
                     $form_addtocart = "<form action=\"". $mm_action_url ."index.php\" method=\"post\" name=\"addtocart\" id=\"addtocart".$i."\">\n
                                  <label for=\"quantity_".$i."\">".$VM_LANG->_PHPSHOP_CART_QUANTITY.":</label>\n
                                  <input id=\"quantity_".$i."\" class=\"inputbox\" type=\"text\" size=\"3\" name=\"quantity\" value=\"1\" />
                                  <input type=\"submit\" style=\"text-align:center;background-position:bottom left;width:160px;height:35px;cursor:pointer;border:none;font-weight:bold;font-family:inherit;background: url('". IMAGEURL ."ps_image/".PSHOP_ADD_TO_CART_STYLE ."') no-repeat left center transparent;vertical-align: middle;overflow:hidden;\" value=\"".$VM_LANG->_PHPSHOP_CART_ADD_TO ."\" title=\"".$VM_LANG->_PHPSHOP_CART_ADD_TO."\" />
                                  <input type=\"hidden\" name=\"category_id\" value=\"". @$_REQUEST['category_id'] ."\" />\n
                                  <input type=\"hidden\" name=\"product_id\" value=\"". $db_browse->f("product_id") ."\" />\n
                                  <input type=\"hidden\" name=\"page\" value=\"shop.cart\" />\n
                                  <input type=\"hidden\" name=\"func\" value=\"cartadd\" />\n
                                  <input type=\"hidden\" name=\"Itemid\" value=\"$Itemid\" />\n
                                  <input type=\"hidden\" name=\"option\" value=\"com_virtuemart\" />\n
                                </form>\n";
                       }
                    }
                    else
                    $form_addtocart = "";
                  www.salaison.fr : vente en ligne de saucissons de savoie !!
                  Salma ou Pénélope ? --> Voter pour : http://forum.joomlafacile.com/showthread.php?t=9926

                  Commentaire


                  • #10
                    Oui c'est vrai

                    C'est corrigé.

                    Merci

                    Commentaire


                    • #11
                      Ca fonctionne nickel

                      J'ai donc mis à jour l'astuce en haut.

                      Merci.

                      Commentaire


                      • #12
                        C'est cool d'avoir tester, je n'avais pas pu le faire chez moi...
                        Merci
                        www.salaison.fr : vente en ligne de saucissons de savoie !!
                        Salma ou Pénélope ? --> Voter pour : http://forum.joomlafacile.com/showthread.php?t=9926

                        Commentaire


                        • #13
                          salut,
                          j'ai testé votre système, c'est cool, sauf que pour les produits en stock 10000, le bouton ajouter au panier n'apparait pas.
                          Autre chose, je voudrais que sur les produits "catalogue", on puisse mettre les prix mais pas le panier, ce qui est une variante de votre systeme actuel. Comment peut-on faire ça ?

                          Commentaire


                          • #14
                            Envoyé par ephie
                            salut,
                            j'ai testé votre système, c'est cool, sauf que pour les produits en stock 10000, le bouton ajouter au panier n'apparait pas.
                            Salut,
                            Le but de la manoeuvre c'est justement de pouvoir désactiver le panier en mettant 10000 produits en stock. Je ne vois donc pas bien où est le problème.

                            Envoyé par ephie
                            Autre chose, je voudrais que sur les produits "catalogue", on puisse mettre les prix mais pas le panier, ce qui est une variante de votre systeme actuel. Comment peut-on faire ça ?

                            Ben la pareil, ce système fait exactement ça.
                            Dernière édition par julian à 18/05/2006, 14h31

                            Commentaire


                            • #15
                              Autant pour moi, je n'ai pas été assez attentive, j'ai cru que c'était les produits en vente qu'on passait en stock 10000. Désolée ! Maintenant ça marche !

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins
                              Travaille ...
                              X