IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[eCommerce] Déclencher automatiquement la suppression d'un article


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Presque retraitée
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Presque retraitée
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Points : 66
    Points
    66
    Par défaut [eCommerce] Déclencher automatiquement la suppression d'un article
    Bonjour,

    J'ai hésité avant de créer cette discussion hors de celle relative au tuto "panier.php", mais comme elle ne concerne pas directement le contenu du tuto, je ne l'ai pas mise dans cette dernière... Je laisse le soin aux responsables de ce forum de la déplacer, s'ils le souhaitent.

    Utilisant sans problème le "panier.php" depuis plus d'un an, je voudrais proposer à mes clients la possibilité de retrouver le contenu d'un panier qu'ils n'auraient pas validé lors d'une visite précédente.
    Plutôt que d'utiliser des cookies, j'ai préféré envoyer ces données dans ma bdd, sur une table que j'ai appelé "panierprov".
    Pas de problème pour l'envoi dans la bdd ni pour récupérer lesdites données.
    Afin que le client puisse reprendre les produits stockés dans cette table pour les envoyer en tout ou partie dans son panier définitif, puis gérer normalement ce dernier, les données, après récupération, sont affichées dans un tableau. Puis j'utilise le même script que celui qui sert à l'envoi des produits dans le panier définitif pour le transfert des produits choisis par le client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a onClick="document.location(this.href, '', 'toolbar=yes, location=no, directories=yes, status=yes, scrollbars=yes, resizable=yes, copyhistory=no); return false;" href="panier.php?action=ajout&r=<?php echo $ref; ?>&d=<?php echo $code; ?>&l=<?php echo $libelle; ?>&c=<?php echo $cond; ?>&pd=<?php echo $poids; ?>&q=<?php echo $qte; ?>&p=<?php echo $prix; ?>&b=<?php echo $brut; ?>"><img src="images/caddiepm.png"></a>
    }
    en ne fermant ma parenthèse du "while" (qui m'a permis la récupération des données de la table "panierprov") qu'après le "</a>" afin que le client puisse choisir, un à un, le ou les produits qu'il veut ajouter à sa table grâce au bouton d'envoi "caddie" qui se trouve, de ce fait, au bout de chaque ligne de produit au lieu d'un bouton unique qui enverrait, dans le panier définitif, la totalité des produits récupérés.

    Tout cela fonctionne à merveille...

    Par contre, je voudrais qu'à chaque fois que le client envoie un produit dans son panier définitif, ce produit soit automatiquement supprimé de la table "panierprov" dans la bdd...
    Et c'est là que je sèche depuis trois jours. J'ai essayé je ne sais plus combien de combinaisons différentes (je suis loin d'être une pro du php et du mysql) et soit cela ne supprime rien de ma table, soit cela supprime tout ce qui est dans la table au lieu d'uniquement l'article qui a été envoyé dans le panier définitif...
    J'espère ne pas être trop confuse dans mes explications.
    Quelqu'un aurait-il une idée ou un début d'idée à me soumettre ?

    Par avance, merci de votre aide...

  2. #2
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    lorsque tu cliques sur un des liens, le traitement se fait dans panier.php et l'action est égale à ajout, ce que tu peux faire c'est rajouter une variable pour indiquer que les produits proviennent d'un panier provisoire ( ça t'éviteras de faire systématiquement ce qui suit...) et tu testes si cette variable existe et si elle contient la valeur que tu auras choisie dans ton script panier.php et tu peux même l’intégrer à la fonction ajout produit, si c'est le cas tu fais quand même une requete sur ta table panier provisoire avec le référence que tu récupère dans la foulé et si le produit existe dans cette table, tu le supprimes.
    voila en espérant avoir été clair.
    Développeur informatique contrarié...

  3. #3
    Membre du Club
    Femme Profil pro
    Presque retraitée
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Presque retraitée
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    Merci de m'avoir répondu.

    Cependant, j'avoue ne pas voir comment mettre en pratique la solution que vous proposez... sans doute est-ce dû à mes lacunes en php, ajouté à mon inexpérience du JavaScript et au fait que j'ai du mal à me concentrer à cause d'une cochonnerie de lumbago...
    Pourriez-vous me donner un exemple ?

  4. #4
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    ce que je te propose c'est un lien sans onClick, avec pour href la page elle même comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="<?php echo $_SERVER['PHP_SELF']; ?>?action=ajout&panier=provisoire&r=<?php echo $ref; ?>&d=<?php echo $code; ?>&l=<?php echo $libelle; ?>&c=<?php echo $cond; ?>&pd=<?php echo $poids; ?>&q=<?php echo $qte; ?>&p=<?php echo $prix; ?>&b=<?php echo $brut; ?>">
    <img src="images/caddiepm.png">
    </a>
    j'ai ajouté une variable panier qui est égale à "provisoire", le traitement ce fera sur cette page, en début de script tu auras ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
    session_start();
    include_once("fonctions-panier.php");
    $action = isset($_GET['action'])? $_GET['action']:null ;
    $panier = isset($_GET['panier'])? $_GET['panier']:null ;
    if($action == "ajout" && $panier == "provisoire")
    {
       //récuperation des variables en POST ou GET
       $l = (isset($_POST['l'])? $_POST['l']:  (isset($_GET['l'])? $_GET['l']:null )) ;
       $p = (isset($_POST['p'])? $_POST['p']:  (isset($_GET['p'])? $_GET['p']:null )) ;
       $q = (isset($_POST['q'])? $_POST['q']:  (isset($_GET['q'])? $_GET['q']:null )) ;
     
       //Suppression des espaces verticaux
       $l = preg_replace('#\v#', '',$l);
       //On verifie que $p soit un float
       $p = floatval($p);
     
       //On traite $q qui peut etre un entier simple ou un tableau d'entier
     
       if (is_array($q)){
          $QteArticle = array();
          $i=0;
          foreach ($q as $contenu){
             $QteArticle[$i++] = intval($contenu);
          }
       }
       else
       $q = intval($q);
       ajouterArticle(...,...,...);//ici tu ajoutes au panier en cours l'article de l'ancien panier
       $requeteSuppression = "";//ici tu fait ta requete sur ta table panier provisoire avec le code ou la reference du produit selon ce qui te sert de clé primaire donc avec une clause where 
    }
     
    ?>
    pour ce qui est des autres variables GET, j'ai laissé le code tel qu'il est sur le tuto mais à toi de l'adapter en fonction de tes variables.
    juste après les vérifications, tu ajoutes l'article dans le panier en cours et tu le supprime de l'ancien, à savoir de la table panier provisoire avec une requete. Ou faire l'inverse si tu veux être sure que le produit à été supprimer avant de l'ajouter au panier avec un 'if' sur le résultat de la requete.
    Enfin, pour optimiser ton code, tu peux au moment ou tu crées les liens pour chaque produit récupérer dans ta requete que la clé primaire (référence ou code) et la quantité que tu mes en variable dans ton lien et dans le traitement que je t'ai mis plus haut, tu fait un select pour tout récupérer sur le produit pour l'ajouter au panier puis tu le supprime de la table panier provisoire.
    j'espère avoir été plus clair...
    Développeur informatique contrarié...

  5. #5
    Membre du Club
    Femme Profil pro
    Presque retraitée
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Presque retraitée
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    Avec un peu de retard dans ma réponse, mais vaut mieux tard que jamais, je vous remercie de votre réponse.

    Je vais la tester...

Discussions similaires

  1. Déclencher automatiquement une impression
    Par guidav dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/01/2009, 12h01
  2. Déclencher automatiquement une page
    Par ctobini dans le forum Langage
    Réponses: 2
    Dernier message: 01/08/2008, 17h27
  3. Réponses: 6
    Dernier message: 09/01/2008, 21h33
  4. [VBA-E]Graphique mise à jour automatiquement qd suppression
    Par LostIN dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 16/01/2007, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo