Joomladay francophone 2018 à Paris 18 et 19 mai

Question beaucoup posé, jamais résolu : étapes d'une commande

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

  • Question beaucoup posé, jamais résolu : étapes d'une commande

    Bonjour,

    J'ai fait le tour des forums français et anglais pour constater que beaucoup de gens souhaitent faire la même chose que moi, à savoir :
    1- Ajouter des étapes dans le processus de commande.
    2- une de ces étapes s'agit d'un upload d'un fichier.

    Des gens conseillent le composant VirtueUpload qui ne marche pas pour tout le monde, tout simplement parce que les auteurs l'ont abandonné.

    D'autres gens conseillent le hak "Custom Attributes Extended", mais on dirait qu'il n'est pas encore à prêt.

    D'autres gens assurent que s'il vous le faut, il faut le faire soi-même.

    Je vous propose :
    1- Que chacun mette dans ce post son expérience là-dessus.
    2- S'il n'y a vraiment pas de solution qui existe déjà, je propose que nous en developpions une tous ensemble. Y aurait-il des interssés ?

    Merci

  • #2
    On dirait que ce que je raconte n'interesse personne.
    Tant pis.

    Commentaire


    • #3
      Envoyé par adan Voir le message
      Bonjour,

      J'ai fait le tour des forums français et anglais pour constater que beaucoup de gens souhaitent faire la même chose que moi, à savoir :
      1- Ajouter des étapes dans le processus de commande.
      2- une de ces étapes s'agit d'un upload d'un fichier.

      Des gens conseillent le composant VirtueUpload qui ne marche pas pour tout le monde, tout simplement parce que les auteurs l'ont abandonné.

      D'autres gens conseillent le hak "Custom Attributes Extended", mais on dirait qu'il n'est pas encore à prêt.

      D'autres gens assurent que s'il vous le faut, il faut le faire soi-même.

      Je vous propose :
      1- Que chacun mette dans ce post son expérience là-dessus.
      2- S'il n'y a vraiment pas de solution qui existe déjà, je propose que nous en developpions une tous ensemble. Y aurait-il des interssés ?

      Merci
      quelle type d'etape pourrais-tu vouloir ajouter?
      sommaire thématique des astuces du forum e-commerce ici http://www.webtimarket.com/fr/telechargements
      http://virtuemart.fr

      Commentaire


      • #4
        Le client a par exemple choisi un tshirt et souhaite le personaliser en chargeant une image pour qu'il y soit imprimé.

        Merci

        Commentaire


        • #5
          Envoyé par adan Voir le message
          Le client a par exemple choisi un tshirt et souhaite le personaliser en chargeant une image pour qu'il y soit imprimé.

          Merci
          effectivement, c'est tres specifique.
          sommaire thématique des astuces du forum e-commerce ici http://www.webtimarket.com/fr/telechargements
          http://virtuemart.fr

          Commentaire


          • #6
            C'est juste un exemple. Tu trouves ci-dessous quelques liens vers des discussions qui ont posé plus ou moins la même question. Il y en a d'autres ici et au forum en anglais :

            http://forum.joomla.fr/showthread.ph...pload+commande
            http://forum.joomla.fr/showthread.php?t=28385
            http://forum.joomla.fr/showthread.ph...pload+commande
            http://forum.joomla.fr/showthread.ph...outer+commande

            J'ai contacté quelques uns, la plupart n'ont pas répondu. Parmi ceux qui ont eu la gentillesse de me répondre, une partie n'ont pas encore trouver de solutions, d'autres ont carrémment abandonner virtuemart.

            C'est pour cela que j'ai eu l'idée de faire ce post.

            A+

            Commentaire


            • #7
              Envoyé par adan Voir le message
              C'est juste un exemple. Tu trouves ci-dessous quelques liens vers des discussions qui ont posé plus ou moins la même question. Il y en a d'autres ici et au forum en anglais :

              http://forum.joomla.fr/showthread.ph...pload+commande
              http://forum.joomla.fr/showthread.php?t=28385
              http://forum.joomla.fr/showthread.ph...pload+commande
              http://forum.joomla.fr/showthread.ph...outer+commande

              J'ai contacté quelques uns, la plupart n'ont pas répondu. Parmi ceux qui ont eu la gentillesse de me répondre, une partie n'ont pas encore trouver de solutions, d'autres ont carrémment abandonner virtuemart.

              C'est pour cela que j'ai eu l'idée de faire ce post.

              A+
              c'est une excellente idee!

              sans etre concerne, si je peux apporter quelque chose, ravi! toutefois, je ne me sens pas l'ame de demarrer (trop de pbs a regler avant...).

              mais je pense que ton idee demanderait un développement.

              parmi ceux qui ont repondu, y a-t'il des elements de reponse exploitable, selon toi, pour ce que tu veux faire?

              pourrais-tu les faire apparaitre ici?

              a bientot...
              sommaire thématique des astuces du forum e-commerce ici http://www.webtimarket.com/fr/telechargements
              http://virtuemart.fr

              Commentaire


              • #8
                ajouter une page d'upload

                Je vais tenter d'expliquer précisément comment j'ai fait... tout en sachant que j'ai beaucoup bricolé pour y arriver....

                Dans l'esprit, ma partie upload se trouve dans un fichier php appelé simplement dans un wrapper

                Donc la première étape consiste à détourner le processus de commande pour le redirigé vers le wrapper.

                Dans mon fichier checkout.index.php (partie administrator/components/com_virtuemart/html/)

                1- ajouter un condition ( si l'upload de doc n'a pas été fait aller vers la page php d'upload, sinon continuer le chemin normal.

                Pour cela j'ai initié une variable $perso (pour personalisation du produit). Sil elle est a 1, c'est que la personalisation a été faite sinon c'est qu'elle est a faire.

                Du coup vers la ligne 170 , je rajoute :

                Code:
                if ($perso==1){ 
                				
                				 echo'
                				 paiement passé
                				 L\'&eacute;tape de personalisation des photos et textes est termin&eacute;e, veuillez &agrave; pr&eacute;sent valider votre paiement en ligne<br><br>
                				 <input type="submit" class="button" name="formSubmit" value="acc&eacute;der au paiement en ligne" />';} 
                				 else {
                				 $pdsku=$_SESSION['cart'][0]["product_id"];
                				
                				echo'<a href="http://www.monsite/index.php?option=com_wrapper&view=wrapper&Itemid=51&sku='.$pdsku.'&id='.$auth['user_id'].'"><img src="http://www.1001cartes.com/images/stories/images_design/etape2.jpg" width="573" height="35"></a>';}
                				 
                				 ?>
                Dans ce cas précis , j'ai deux upload différents suivant que le faire part soit choisis en dvd ou en papier j'a joute deux variables que je vais récupérer dans le wrapper :

                $id, mon id client qui va me permettre de créer un sous dossier à son nom avec ses photos.
                $sku , la ref produit car j'en ai besoin dans mon cas.

                pour avoir l'adresse de mon wrapper j'ai créer un menu non affiché dans un module ce qui me permet de récupérer un item id

                Puis je les récupères dans le wrapper.

                Pour cela :

                Dans component/wrapper.php

                apres la ligne :



                Code:
                $url = $params->def( 'url', '' );


                Ajouter :



                Code:
                foreach ($_GET as $key => $value) {
                if ($key<>"option" && $key<>"Itemid") {
                $url.=(strpos($url,"?")) ? "&" : "?";
                $url.="$key=$value";
                }
                }


                Ensuite, passer la variable dans l'URL avec la method get et récupérer sur la page php appelée
                dans le wrapper.

                Du coup dans la page php d'upload de mon wraper je récupere les variables d'id client, je fais un upload photo classique (dans mon cas swfupload), le script crée un dossier au nom de l'id client, y positionne la ou les photos puis à la fin de mon formulaire je redirige vers le cheminement classique de virtuemart

                a la fin je rajoute un bouton permettant le retour vers le processus classique (page checkout.index.php)

                Code:
                <form action="http://www.1001cartes.com/index.php?option=com_virtuemart&page=checkout.index&vmcchk=1" target="_parent" method="post">
                <input type="hidden" name="perso" value="1">
                <input type="hidden" name="user_id" value="<?php echo $userid?>">
                
                <input type="submit" value="Etape suivante : Récapitulatif de ma commande">
                </form>
                Au passage je recupere dans deux champs hidden ma variable $perso que je passe à 1 ainsi que mon user.id.
                J'en profite pour rajouter un vmchk=1 , pour ne pas etre ennuyé avec l'url rewriting de virtuemart.

                Enfin je rajoute un bout de code dans mon checkout.index.php pour indiquer a virtuemart de reprendre le cheminement normal de la commande, c'est a dire de me passer à l'étape suivante :

                ligne 150 après
                Code:
                // Now let the user confirm
                			echo $theme->fetch( 'checkout/get_final_confirmation.tpl.php');
                			$theme->set('basket_html', '');
                        }
                        ?>
                    <br />
                je rajoute

                Code:
                <?php 
                	if ($perso==1){$this_step=3;$current_stage=3;}
                		foreach( $checkout_steps[$current_stage] as $this_step ) {	
                			echo '<input type="hidden" name="checkout_this_step[]" value="'.$this_step.'" />';
                		}
                et voila... Bon ceci dit, j'ai peut être modifié d'autres petites parties mais honnetemnt je ne m'en souviens pas... en tout cas le cheminement est celui décrit plus haut
                Antéane, spécialiste joomla à toulouse : http://www.anteane.fr
                Galerie d'art à Toulouse :http://www.tokade.com
                La tv 3d débarque en France:http://www.tv-3d.fr

                Commentaire


                • #9
                  Merci beaucoup pour ton aide.
                  Je vais essayer tout ça et je vous tiendrai au courant.

                  Commentaire


                  • #10
                    super cool!
                    sommaire thématique des astuces du forum e-commerce ici http://www.webtimarket.com/fr/telechargements
                    http://virtuemart.fr

                    Commentaire


                    • #11
                      Je connais un composant, malheureusement payant, qui fait exactement ce que tu as besoins de faire,
                      sans passer par l'ajout d'une étape dans le processus de commande.

                      C'est "Printenator", DEMO & TARIF :
                      http://www.printenator.eu

                      Bon c vrai il reste vraiment trés cher, mais il est vraiment au point.

                      Commentaire


                      • #12
                        En fait je ne connais pas php, mais je suis un programmeur expérimenté java et c++, je ne pense pas que l'apprentissage de php me posera des problèmes.

                        Le problème sera plutôt du côté virtuemart. En effet, je m'attendais à trouver une API digne de ce nom or tout ce que j'ai trouvé c'est la doc VirtueMart_Developer_Manual.pdf qui n'a rien d'une api. Il faudra donc faire pas mal de "reverse engineering" ce qui prendra du temps.

                        Si vous connaissez d'autre docs que VirtueMart_Developer_Manual, n'hésitez pas à me le signaler, et toute aide dans cette tâche sera la bienvenue.

                        A+

                        Commentaire


                        • #13
                          Bonjour,

                          J’ai finalement pensé que ça sera dommage que je fasse un hak que je serai le seul à utiliser alors qu’il existe un hak qui est déjà largement utilisé qui s’appelle « Custom Attributes Extended Hack ». C’est sûre, il contient des bugs, mais si à force de l’utiliser chacun corrige un bug il sera peut être finalement intégré dans VirtueMart.

                          Ce hak n’ajoute pas d’étapes au processus de commande comme je le voulais, mais étend l’utilisation des attributs personnalisés. Ca me permet d’accomplir ce que je veux au moment de l’ajout dans le panier.

                          Vous trouvez attaché la dernière version de ce hak pour virtuemart 1.1.2. Je vais mettre ici toutes les informations qui permettent de faire marcher ce hak. Plus d’information peuvent être trouvés dans le forum anglais avec le lien suivant : http://forum.virtuemart.net/index.php?topic=39666.0

                          - Si vous avez déjà défini des attributs personnalisés dans votre site, il faut les supprimer et les refaire avec avec la nouvelle syntaxe (voir la nouvelle syntaxe ci-dessous), sinon vous recevrez des erreurs du genre des classes ne sont pas trouvées.
                          - Si vous voulez utiliser l’attribut « file » qui permet de charger un fichier, il faut désactiver l’option ‘Use Ajax to add, update or delete products from the cart?’ dans Configuration/site/configuration (cette dernière est sous « Choisir le thème de sa boutique » dans site.
                          - Si vous recevez des messages du genre notice comme : Notice: Constant CUSTOM_ATTRIBUTE_UPLOAD_ROOT already defined in.
                          Allez dans configuration generale de Joomla, l’onglet serveur, et mettez le rapport d’erreur à simple.

                          Avec ces trois modifications, vous devrez maintenant être capable d’utiliser ce hak.
                          J’ai fait quelques tests et j’ai trouvé les bugs suivants :
                          - Lorsque j’ajoute des attributs à des produits enfants avec l’option par défaut (j’obtiens alors une liste déroulante contenant les différents produits fils avec au départ un choix sur « Select »). Si l’utilisateur clique sur ajouter au panier tout en laissant le choix sur « select », il devrait normalement recevoir un message l’invitant à choisir un produit dans la liste, mais au lieu de cela je passe à une page qui liste tous les produits du magasin !!!
                          - Si je change l’option pour voir tous les produits fils, chacun avec son bouton « ajouter au panier », je n’ai plus le problème ci-dessus mais je n’arrive plus à charger un fichier.
                          - Sur mon ordinateur au travail, au lieu que chaque attribut soit sur une ligne différente, ils sont alignés à la queuelele. Ce qui est embêtant. Je n’ai pas ce cas sur mon ordinateur à la maison.
                          - Une fois un produit avec des attributs « file » ajouté au panier, il est impossible de le supprimer du panier mais je pense que ça n’a rien à voir avec ce hak et que c’est un bug virtuemart dont la solution est adressée avec le post suivant bien que je ne l’ai pas encore testé : http://forum.joomla.fr/showthread.ph...pprimer+panier


                          Je continue à utiliser ce hak et à faire plus de tests. Je vous tiendrai au courant si je rencontre plus de bugs. Je vais aussi essayer de corriger les bugs cités ci-dessus. Je mettrai ici les corrections.

                          Si quelqu’un a une idée dans quels fichiers il faut que je cherche pour trouver ces bugs, ça sera déjà une bonne aide. En effet, je ne suis pas encore familiarisé avec les différents composant de virtueMart. Par exemple quels codes entre en jeu lorsqu’on clique sur « ajouter au panier ». Une petite explication pourrait m’aider au lieu que je mette des heures à trouver tou seul en suivant le code.

                          Comme promis, la nouvelle syntaxe des attributs personnalisés :
                          Syntax:
                          Name(attribute type)(tip text|tip location)(attribute data);

                          add "-r" to attribute type to make it required.
                          if no tip needed you must still add: Name(text)(|)(data);

                          Attribute Types: price, text, textarea, line, date, file, checkbox, radio, select, multiple, number

                          Tip Locations: title-hover, title-below, field-above, field-below

                          Attribute Data:

                          Price:
                          Name(price)(tip here|location)(default price|price type);

                          examples:
                          Donation(price)(please enter donation|title-below)(10.00|+);
                          Reduce By(price)(How much to subtract|field-below)(|-);

                          Text & Textarea:
                          Name(text)(tip here|location)(default text|price|charge type);

                          charge types: char,char_nospace,word,all
                          Note: add "-d" to end of charge type to show cost break down in cart

                          examples:
                          name(text)(1.00 per character|field-below)(|1.00|char);
                          message(textarea)(5.00 per word|title-hover)(message here|5.00|word);
                          Test(text)(1.50 per character|title-hover)(|1.50|char_nospace-d);

                          Number:
                          Name(number)(tip here|location)(default number|price);

                          example:
                          Number of chocolates(number)(enter # of chocolates|title-hover)(10|0.25);

                          Date:
                          Name(date)(tip here|location)(|);


                          Checkbox & Radio & Select & Multiple:
                          Name(checkbox)(tip here|location)(option1|image1,option2*|image2,opti on3 [+5.00]|image3);
                          * = selected

                          images work for checkboxes, radio buttons, and select boxes.

                          examples:
                          Donate(checkbox)(tip here|title-hover)(Widows [+5.00],Orphans [+10.00]);
                          Colors(radio)(tip here|title-hover)(Blue [+5.00]|images/img_blue.jpg,Red [+10.00]|images/img_red.jpg);

                          File:
                          Name(file)(tip here|title-below)(directory|file types|charge|max file size|min file size);

                          Max file size & Min file size measures in bytes.

                          examples:
                          File Upload(file)(upload file of type .jpg or .doc|title-below)(images/|.jpg,.doc);
                          Art Work(file)(upload artwork, $20.00 charge|title-below)(images/|.jpg,.doc|20.00);
                          Picture(file)(upload picture, $20.00 charge, max file of .5MB|title-below)(images/|.jpg|20.00|500000|300);

                          Line:
                          Name(line)(tip-here|field-below)(custom line code);

                          examples:
                          Further Options(line)(here are more options|field-below)();
                          (line)(|)(<b>--------------------------------</b>);
                          Fichiers joints

                          Commentaire


                          • #14
                            Merci pour toutes ces infos Adan

                            Et bonne continuation!
                            sommaire thématique des astuces du forum e-commerce ici http://www.webtimarket.com/fr/telechargements
                            http://virtuemart.fr

                            Commentaire


                            • #15
                              Bonjour adam et excuse-moi de ne pas t'avoir répondu en mp à l'époque je n'étais plus du tout dans le sujet.

                              Je finalise actuellement un site qui utilise custom attributes extended, j'ai gardé la version 2.13 car la 2.15 ne marche pas bien pour moi (Joomla 1.5.9 VM 1.3).

                              http://esthercustom.com

                              J'ai été confronté a 2 problèmes qui peuvent s'apparenter au tiens:

                              1)Problème d'affichage: sur Firefox en ligne parfait, sur IE tout est décalé.

                              Solution: rajouter au début de ton index.php:

                              <!--[if lte IE 7]>
                              <script defer type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/pngfix.js"></script>
                              <link href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/ieonly.css" rel="stylesheet" type="text/css" />
                              <![endif]-->

                              Créer une feuille de style ieonly.css dans ton repertoire css et inscrire le code suivant:

                              /* Addtocart detail Styles*/

                              .vmCartContainer { /* Cart Container */
                              width: auto;
                              float: none;
                              background: #ADD8E6;
                              border: 1px solid #000;
                              padding: 3px;
                              }

                              .vmCartChildHeading { /* Header for the cart */
                              font-size: 14px;
                              font-weight: bold;
                              padding-bottom: 3px;
                              text-align: left;
                              }

                              .vmCartChild { /* Container for the Child Product */

                              vertical-align: middle;
                              border: 1px solid #000;
                              padding-left: 2px;
                              padding-right: 2px;
                              margin-bottom: 2px;
                              float:none;
                              }


                              .vmCartAttributes { /* Attributes Div*/

                              margin-top:8px;
                              width:100%;
                              }

                              Le tout c'est que pour IE le float soit none !!



                              2) le problème du panier qui bug avec le hack !

                              Solution: modifier le php.ini et rajouter

                              [PHP]

                              register_globals = Off
                              php_value mbstring.language neutral
                              memory_limit = 16M

                              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