Jump to content
Typhanie

[Résolu] Personnalisé la personnalisation

Recommended Posts

Bonjour à tous,

 

Alors je vous explique mon problème. Je mets un maillot de hockey sur glace dans mes produits. L'utilisateur peut avoir le choix entre un nom et un numéro de joueur, floqué au dos, prédéfini (joueur de l'équipe) ou de personnalisé son nom et son numéro soit même.

J'aimerais mettre une action en place : 

        - si il prend un joueur prédéfini, il le sélectionne et ajoute son produit au panier

        - sinon il choix la déclinaison personnalisation et il doit être obligé de valider l'onglet personnalisation sans ça il ne peut ajouter l'article au panier

J'espère avoir été clair dans mon explication et que quelqu'un pourra m'aider. Merci :) 

Edited by Typhanie

Share this post


Link to post
Share on other sites

merci de nous preciser le nom du module utilisé, la version de PS et si ton site est en ligne, merci de preciser son lien

Share this post


Link to post
Share on other sites

Le nom du module : il n'y en a pas, du moins pour le moment j'ai juste créé un produit avec des déclinaisons et l'option personnalisation.

La version de PS : 1.6.1.17

Oui mon site est en ligne : shop-corsaires.imie-nantes.fr (beaucoup de choses à revoir encore)

Share this post


Link to post
Share on other sites

si je comprends bien, il valide l'onglet personnalisation cad il mentionne obligatoirement le nom et le numero du joueur (la partie en bas)

pour ca il faut faire un script jquery qui controle le remplissage de ces deux champs

Share this post


Link to post
Share on other sites

<script>
$('button[type="submit"]').click(function(event)

{
    if($( "select#group_4 option:selected" ).val()==44)
    {
                
        alerte();
        event.preventDefault();
            }
});

function alerte(event)
{
    
        if($("#textField0").val()=="")
        alert("En cas de choix de maillot personnalisé, le nom du joueur est obligatoire ! Veuillez le renseigner.");
        $( "#textField0" ).focus();
        event.preventDefault();
        
        if($("#textField1").val()=="")
        alert("En cas de choix de maillot personnalisé, le numéro du joueur est obligatoire ! Veuillez le renseigner.");
        $( "#textField1" ).focus();
        event.preventDefault();
}

</script>

  • Like 1

Share this post


Link to post
Share on other sites

le script ci-dessus necessite une amelioration

il affiche deux alertes pour indiquer que les deux champs sont obligatoires, ca reste d empecher la validation

je v me concentrer dessus quand je serai chez moi

Edited by Ryan Hidri
rectif
  • Thanks 1

Share this post


Link to post
Share on other sites

tu peux voir ce que ca donne en copiant le code entre <script>  et </script> puis aller dans chrome, faire F12 --> console --> le coller --> entree

ca affiche bien les alertes si tu cliques sur le bouton d ajout au panier, et je v trouver l astuce pour l empecher

je pense que c'est un appel en ajax, c pour ca que ca passe au panier

je travaille dessus ce weekend

Edited by Ryan Hidri
rectif

Share this post


Link to post
Share on other sites

essaye le code suivant et dis moi si c bien ce que tu veux avoir comme comportement :

 


$('button[type="submit"]').click(function(e)

{
    if($( "select#group_4 option:selected" ).val()==44)
    {
                
        if(!alerte())
        {
            return false;
        }
        else
        {
            $('button[name="saveCustomization"]').trigger("click");
        }
    }
});

function alerte(ev)
{
    if($("#textField0").val()=="")
    {
        alert("En cas de choix de maillot personnalisé, le nom du joueur est obligatoire ! Veuillez le renseigner.");
        $( "#textField0" ).focus();
        return false;
    }
    
    else if($("#textField1").val()=="")
    {
        alert("En cas de choix de maillot personnalisé, le numéro du joueur est obligatoire ! Veuillez le renseigner.");
        $( "#textField1" ).focus();
        //ev.preventDefault();
        return false;
    }
    else
    {
        return true;    
    }
}

Share this post


Link to post
Share on other sites

tu dois aller au fichier themes/ton theme/product.tpl

juste avant </body>

 

tu mets

<script>


$('button[type="submit"]').click(function(e)

{
    if($( "select#group_4 option:selected" ).val()==44)
    {
                
        if(!alerte())
        {
            return false;
        }
        else
        {
            $('button[name="saveCustomization"]').trigger("click");
        }
    }
});

function alerte(ev)
{
    if($("#textField0").val()=="")
    {
        alert("En cas de choix de maillot personnalisé, le nom du joueur est obligatoire ! Veuillez le renseigner.");
        $( "#textField0" ).focus();
        return false;
    }
    
    else if($("#textField1").val()=="")
    {
        alert("En cas de choix de maillot personnalisé, le numéro du joueur est obligatoire ! Veuillez le renseigner.");
        $( "#textField1" ).focus();
        //ev.preventDefault();
        return false;
    }
    else
    {
        return true;    
    }
}

</script>

 

ensuite tu suuprimes le cache PS et tu testes sur ton site

 

 

Share this post


Link to post
Share on other sites

le code me semble top mais par contre je l'ai bien mis tout en bas de mon fichier product.tpl (il n'y a pas la fermeture de la balise body dans se fichier), j'ai vidé le cache mais rien n'a changé...

Il ne le prend pas en compte...

Share this post


Link to post
Share on other sites

envoi moi une capture d'ecran ou envoie moi le fichier par mail, je t'envoie mon mail en privé

Share this post


Link to post
Share on other sites

Alors j'y suis presque :

- Premièrement ne pas mettre le bouton "Ajouter au Panier" lorsque le produit à des attributs (déclinaisons) : Préférence > Produits > Fiche Produit : il suffit de mettre "non" à ==>> Afficher le bouton "ajouter au panier" lorsque le produit a des attributs

- Deuxièmement mettre la personnalisation en pré-requis : Catalogue > Produits > Aller sur le produit concerner > Personnalisation > Cocher Requis

Bon il ne me reste plus qu'à les mettre requis uniquement lorsque l'on choisi la déclinaison "personnalisation" (que j'ai créé)... Il y a peut être un autre moyen, par exemple ne pas mettre une déclinaison "personnalisation"... A voir :) 

Share this post


Link to post
Share on other sites

Le script fonctionne nikel :) 

Lorsque je clique sur personnalisé mon maillot et je clique sur "Ajouter au panier" j'ai bien ce pop-up : 

En cas de choix de maillot personnalisé, le nom du joueur est obligatoire ! Veuillez le renseigner.

Et ça situe l'utilisateur directement sur le champs à remplir!! Donc c'est parfait.

J'ai préféré faire un onglet "PERSONNALISER MON MAILLOT" je trouve ça plus clair pour les clients!!

 

Milles merci ;) 

Share this post


Link to post
Share on other sites

Ce que je souhaitais c'est avoir une sécurité lorsque l'utilisateur souhaite personnalisé son maillot de hockey. Il ne devait pas pouvoir le mettre au manier sans avoir remplit le nom et le numéro de son choix!! Mission accomplie car lorsque je clique son "PERSONNALISER MON MAILLOT" je ne peux pas rajouter mon article au panier sans avoir un blocage si le nom et le numéro ne sont pas rempli!!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More