Mettre le container "panier" dans browse

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

  • [Problème] Mettre le container "panier" dans browse

    Bonjour,

    Je viens vous exposer mon souci avec virtuemart, j'ai parcouru google et le forum et je n'ai pas réussi à trouver de solution correspondant tout à fait à mon souci.

    Je suis sous joomla 1.5 et virtuemart 1.1.4 en local.

    Je suis en train de mettre en place une boutique, presque tout fonctionne très bien.

    J'ai récemment compris et fait fonctionner le principe des produits parents/enfants. Or quand je suis sur le détail du produit, pas de probleme j'ai un tableau (container) qui s'affiche avec les produits enfants et les "ajouter au panier" devant chacun....mais sur le browse des catégories il n'y a qu'un bouton "ajouter au panier" (correspondant je pense au parent) alors que je voudrais la même chose que sur le détail, à savoir mon petit tableau/container contenant tous les enfants (pour que les gens n'aient pas à cliquer sur détail du produit pour pouvoir faire leur achat)

    Pour donner un ex plus explicite, mon produit parent est un paquet de croquette genre "Acana Adulte" et mes enfants sont "Acana Adulte 2,5kg x1" "Acana Adulte 2,5kg x2" "Acana Adulte 13,5kg x1" etc..

    Sur ce site ça a l'air de marcher impec...

    Si quelqu'un a une solution, je vous en serais très très reconnaissante !

    Merci d'avance

    June
    Dernière édition par june87 à 27/02/2010, 14h38

  • #2
    Juste un petit up avec deux aperçu



    Dernière édition par june87 à 27/02/2010, 14h42

    Commentaire


    • #3
      J'ai eu un début de réponse sur un forum qui conseillait de faire un copier/coller des includes add to cart de "\components\com_virtuemart\themes\default\templat es\product_details\includes" vers "\components\com_virtuemart\themes\default\templat es\browse\includes" en modifiant des bouts de code....

      Ca a presque marché, le tableau/container apparait bien sauf que j'ai des lignes d'erreur qui apparaissent autour dudit container :

      Notice: Undefined variable: product_parent_id in C:\Program Files\EasyPHP5.3.0\www\components\com_virtuemart\t hemes\default\templates\browse\includes\addtocart_ form.tpl.php on line 10

      Et

      Notice: Undefined variable: product_price in C:\Program Files\EasyPHP5.3.0\www\components\com_virtuemart\t hemes\default\templates\browse\includes\addtocart_ form.tpl.php on line 27

      Voilà le code complet de ma page addtocart_form.tpl.php issue de product_details, copiée et modifiée dans browse, si quelqu'un peut y jeter un oeil et me dire si quelque chose cloche ? Merci beaucoup beaucoup d'avance

      <?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

      <div class="vmCartContainer">

      <?php
      mm_showMyFileName(__FILE__);
      // This function lists all product children ( = Items)
      // or, when not children are defined, the product_id
      // SO LEAVE THIS IN HERE!
      list($html,$children) = $ps_product_attribute->list_attribute( ( $product_parent_id > 0 ) ? $product_parent_id : $product_id );

      if ($children != "multi") {

      if( CHECK_STOCK == '1' && !$product_in_stock ) {
      $notify = true;
      } else {
      $notify = false;
      }

      ?>
      <form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="<?php echo uniqid('addtocart_') ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>

      <?php
      }
      echo $html;

      if (USE_AS_CATALOGUE != '0' && $product_price != "" && !stristr( $product_price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL') )) {
      ?>

      <?php if ($children != "multi") { ?>
      <div style="float: right;vertical-align: middle;"> <?php
      if ($children == "drop") {
      echo $ps_product_attribute->show_quantity_box($product_id,$product_id);
      }
      if ($children == "radio") {
      echo $ps_product_attribute->show_radio_quantity_box();
      }
      $button_lbl = $VM_LANG->_('PHPSHOP_CART_ADD_TO');
      $button_cls = 'addtocart_button';
      if( CHECK_STOCK == '1' && !$product_in_stock ) {
      $button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
      $button_cls = 'notify_button';
      }
      ?>
      <input type="submit" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />
      </div>
      <?php } ?>
      <input type="hidden" name="flypage" value="shop.<?php echo $flypage ?>" />
      <input type="hidden" name="page" value="shop.cart" />
      <input type="hidden" name="manufacturer_id" value="<?php echo $manufacturer_id ?>" />
      <input type="hidden" name="category_id" value="<?php echo $category_id ?>" />
      <input type="hidden" name="func" value="cartAdd" />
      <input type="hidden" name="option" value="<?php echo $option ?>" />
      <input type="hidden" name="Itemid" value="<?php echo $Itemid ?>" />
      <input type="hidden" name="set_price[]" value="" />
      <input type="hidden" name="adjust_price[]" value="" />
      <input type="hidden" name="master_product[]" value="" />
      <?php
      }
      if ($children != "multi") { ?>
      </form>
      <?php
      }
      if($children == "radio") { ?>

      <script language="JavaScript" type="text/javascript">//<![CDATA[
      function alterQuantity(myForm) {
      for (i=0;i<myForm.selItem.length;i++){
      setQuantity = myForm.elements['quantity'];
      selected = myForm.elements['selItem'];
      j = selected[i].id.substr(7);
      k= document.getElementById('quantity' + j);
      if (selected[i].checked==true){
      k.value = myForm.quantity_adjust.value; }
      else {
      k.value = 0;
      }
      }
      }
      //]]>
      </script>
      <?php } ?>
      </div>
      Dernière édition par june87 à 02/03/2010, 14h33

      Commentaire


      • #4
        Petit up

        Commentaire


        • #5
          et allez voir dans ton browse\includes\addtocart_ form.tpl.php ligne 10 et 27 pour voir a quoi font référence tes messages d'erreur....
          Sobi =>

          Commentaire


          • #6
            Oui, c'est ce que j'ai fait, mais je vois pas le souci... c'est pour ça que je vous avais mis mon code (je viens de mettre les lignes en question - 10 et 27 - en rouge dans le code cité au-dessus, c'est plus simple) pour que quelqu'un de plus doué que moi essaie de repérer ce qui pourrait clocher !

            Merci d'avance de votre aide

            Commentaire


            • #7
              Up

              Svp, juste un tit coup d'oeil sur mon code...

              C'est hyper frustrant, sur ce site c'est parfait et je comprend pas comment ils ont fait (mais à défaut si je pouvais ne pas avoir de messages d'erreur sur mon truc se serait déjà très bien!)

              Commentaire


              • #8
                essais de changer:
                Code:
                list($html,$children) = $ps_product_attribute->list_attribute( ( $product_parent_id > 0 ) ? $product_parent_id : $product_id );
                par
                Code:
                list($html,$children) = $ps_product_attribute->list_attribute( ( $product_parent_id > 0 )  ? $product_parent_id : $product_id, $product_price);
                Puisque ton message d'erreur te dit que $product_price n'est pas définie, j'ai repris cette ligne de addtocart_form.tpl.php de product_details

                N'oublie pas de mettre sur réglé si c'est bon
                Sobi =>

                Commentaire


                • #9
                  D'abord : merci beaucoup d'avoir répondu et cherché une solution

                  Mais malheureusement ça ne fonctionne pas, au lieu d'avoir un message d'erreur sur la ligne 10 ça m'en met deux :

                  Notice: Undefined variable: product_parent_id in C:\Program Files\EasyPHP5.3.0\www\components\com_virtuemart\t hemes\default\templates\browse\includes\addtocart_ form.tpl.php on line 10

                  Notice: Undefined variable: product_price in C:\Program Files\EasyPHP5.3.0\www\components\com_virtuemart\t hemes\default\templates\browse\includes\addtocart_ form.tpl.php on line 10
                  Snif :/

                  Commentaire


                  • #10
                    hum... en méme temps on a list($html,$children) alors que $html et $children sont des variables qui ne sont pas définies avant sur ce coup la.... et en allant chercher ce qu'il y a dans quantity_box_general.tpl.php (c'est juste une idée comme ça hein xD)
                    Dernière édition par darakk à 04/03/2010, 20h36
                    Sobi =>

                    Commentaire


                    • #11
                      hum... en méme temps on a list($html,$children) alors que $html et $children sont des variables qui ne sont pas définies avant sur ce coup la....
                      Mmm, ah ouai, c'est pas faux ça :- D

                      et en allant chercher ce qu'il y a dans quantity_box_general.tpl.php
                      Heu.. c'est à dire ? Copier ce qu'il y a dans quantity_box_general dans mon addtocart_form ? (oui je comprend vite mais faut m'expliquer lonnngtemps XD)

                      Edit : j'ai essayé de copier : pas pire, mais pas mieux

                      Y a vraiment un truc qui m'échappe... ça devrait presque être en option de pouvoir faire apparaitre le panier "avec children" dans le browse, ça doit être commun comme besoin (heu..non?)
                      Dernière édition par june87 à 05/03/2010, 09h38

                      Commentaire


                      • #12
                        Tu n'as pas fait de recherche sur le forum ou google avant de poster?
                        Sobi =>

                        Commentaire


                        • #13
                          Bah bien sûr que si ! Quand même ! Je trouve toujours des réponses à mes soucis comme ça.... mais là rien du tout ! Soit c'est hyper simple et je vois pas le truc, soit personne n'a jamais voulu faire ça (?!)

                          Commentaire


                          • #14
                            oula, désolé, mais en faite, perso j'ai viré dans browse l'affichage du bouton ajouter au panier avec la quantité.... je viens juste de m'en rendre compte.
                            dans components\com_virtuemart\themes\default\templates \browse\includes il y a déjà tout ce qu'il faut d'origine.
                            Après si ça n'apparait pas, pour avoir ton panier c'est:
                            Code:
                            <?php echo $form_addtocart ?>
                            Sobi =>

                            Commentaire


                            • #15
                              Non mais mon panier il apparait.... c'est juste que soit :
                              - je laisse les addtocart_form d'origine du browse et dans ce cas j'ai que le bouton addtocart du parent qui apparait (alors que les produits enfants apparaissent ****l dans le flypage)
                              - je copie colle mon addtocart_form depuis les includes du flypage vers les includes du browse pour retrouver mes enfants sur le browse > ils apparaissent bien avec leurs boutons sauf que j'ai les deux messages d'erreur ci dessus mentionnés qui apparaissent (et bon niveau esthétique les messages d'erreur :/)

                              Une autre idée peut-être : y a t'il un moyen de faire disparaitre les messages d'erreur de façon générale des pages ? (à défaut de pas trouver comment régler les erreurs.. puisque les paniers marchent...!)

                              Merci

                              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