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 :

désactiver un produit en fonction d'une date


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Par défaut désactiver un produit en fonction d'une date
    Bonjour à tous.

    Je suis en train de mettre en place une billeterie en ligne sous prestashop. (v 1.5)
    Je me permet de soliciter la communauté , car je bloque sur une fonctionnalité particulière
    (je suis intégrateur et novice en php).

    Il faudrait que mon client puisse définir une date d'expiration pour chaques produits.
    J'ai déjà mon champ personnalisé dans le BO sous forme de date picker + le champ dans la base de donnée.

    Et voilà ce que je n'arrive pas à faire :
    Si la date du jour est égale ou supérieure à la date d'expiration, le produit est désactiver (passe à 0 dans le champs "active" de table ps_product_shop).

    Là, je ne sais vraiment pas comment m'y prendre.
    Faut-il utiliser les overrides ? Faire un module ? Existe t-il une fonctionnalité native ?
    En faisant le tour du web et des forums, la solution qui me semble la plus adequate est la création d'un trigger, mais tout ça est très flou pour moi. Voici le script en question, que je souhaiterais adapter :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DELIMITER $
    CREATE TRIGGER `change_active_after_update` AFTER UPDATE ON `ps_stock_available`
    FOR EACH ROW BEGIN
    UPDATE ps_product_shop SET active=0
    WHERE id_product IN (SELECT id_product FROM ps_stock_available WHERE quantity=0)
    AND DATEDIFF(NOW(),date_upd)>30;
    UPDATE ps_product_shop SET active=1 WHERE id_product IN (SELECT id_product FROM ps_stock_available WHERE quantity>0);
    END $
    /* Reset the delimiter back to ";" */
    DELIMITER ;

    J'ai une erreure à l'exécution de cette commande sous phpmyadmin (apparement, je n'ai pas les droits suffisants), je suis sous un ovh mutualisé.

    Bref, est-ce la bonne voie ? Si quelqu'un peux m'aider, ce serais genial.
    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    développement Prestashop - Hébergement web - Sécurité
    Inscrit en
    Juillet 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : développement Prestashop - Hébergement web - Sécurité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 24
    Par défaut
    Bonjour,

    Ce sujet a t'il déjà une solution?

    Quelle est votre version de prestashop?

    Cordialement,

  3. #3
    Membre habitué
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Par défaut
    Bonjour,
    Non je n'ai malheureusement pas résolus mon problème.
    Je suis sous prestashop 1.5

    Merci

  4. #4
    Membre confirmé
    Homme Profil pro
    développement Prestashop - Hébergement web - Sécurité
    Inscrit en
    Juillet 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : développement Prestashop - Hébergement web - Sécurité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 24
    Par défaut
    Bonjour,

    Ce n'est pas toujours simple d'avoir tous les droits sur le serveur d'autrui.

    La chose la plus simple est de mettre en place un cron optimisé qui ne traite que les fichiers concernés (pour ne pas alourdir le serveur). Et là vous écrivez un code qui parcours la table ps_product et met le champs active à 0 si la date du jour correspond à la date du champs. Et ensuite, vous utiliser le module gratuit de cron de prestashop pour faire que ce code s'active chaque jour qui passe

    La 2e méthode peut efficace est de faire une surcharge pour que chaque fois qu'un produit est concerné dans une sélection, tu vérifies s'il n'est pas périmé. Si c'est le cas, tu l'enlèves de la sélection et tu le désactives.
    Cette surcharge doit se faire dans les méthodes
    - getProductProperties (de la classe Product) car la sélection de la majorité de produits passe par là
    - GetProducts (de la classe Category) car c'est elle qui récupère les produits dans la page catégorie

    En espérant que cela va vous aider

    Cordialement,
    Fernand WAFO

  5. #5
    Membre habitué
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Par défaut
    Je vais tester ça dès que j'ai un moment et te tiens au courant.
    Merci bcp de ton aide

  6. #6
    Membre confirmé
    Homme Profil pro
    développement Prestashop - Hébergement web - Sécurité
    Inscrit en
    Juillet 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : développement Prestashop - Hébergement web - Sécurité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 24
    Par défaut
    Merci,

    La première méthode est efficace et simple. Si vous ne parvenez pas et que votre serveur permet les cron, je peux vous donner des indications plus profondes.

    Cdt,

Discussions similaires

  1. url en fonction d'une date
    Par silwebdesign dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 18/09/2006, 19h41
  2. Déterminer le jour en fonction d'une date
    Par Flagny dans le forum Access
    Réponses: 3
    Dernier message: 19/07/2006, 10h36
  3. afficher le jour en fonction d'une date
    Par oceane751 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 05/03/2006, 22h20
  4. [Dates] message en fonction d'une date
    Par chouchouboy dans le forum Langage
    Réponses: 14
    Dernier message: 24/02/2006, 17h31
  5. Réponses: 2
    Dernier message: 03/10/2005, 12h00

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