alerte produit de nouveau disponible

19 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

Euh... Dans les paramètres de la boutique et la gestion des stock, quand on choisit de ne pas permettre aux utilisateurs de commander un produit non disponible, il y a un formulaire (dans la fiche produit) qui apparaît où l'utilisateur peut renseigner, entre autres, son nom et son email pour demander à être averti quand le produit est de nouveau disponible.

Qu'est-il censé se passer ensuite ? Dans ma boutique, ni l'administrateur ni l'utilisateur ne reçoit de mail.

Du coup, l'administrateur ne connait pas le mail de l'utilisateur qui fait la demande.

Et quand le produit est de nouveau disponible (gestion du stock), l'utilisateur ne reçoit aucun email pour l'informer. :blink:

Ma question :

- Comment faire pour que ça fonctionne ? Est-ce que c'est moi qui est mal paramétré quelque chose ?

Merci de votre aide.

:)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Les demandes de réaprovisonnement sont listé dans la page /modules/stock_advanced/administrer/alertes.php, accessible via le menu Ventes et Comptabilité > Alertes disponibilité en cours du back office

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Merci mais je reviens sur le sujet car bé non, désolé, mais décidément (après nombres d'essais) ça ne fonctionne pas. Aucune alerte n’apparaît dans "Alertes disponibilité en cours", l'administrateur n'est donc pas au courant de la demande et donc aucun mail n'est envoyé au client pour l'avertir que le produit est de nouveau dispo.

Je ne sais pas quoi faire. :wacko:

Quelqu'un pour m'aiguiller dans une direction ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Est-ce que la table peel_alertes est installé dans votre BDD ? Pouvez-vous aussi vérifier que l'email email_alerte est actif sur la page administrer/email-templates.php ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour et merci !

Oui la table peel_alertes est installé (mais vierge forcément) dans la BDD. Oui l'email email_alerte est actif.

Par contre, le problème est peut-être lié : je viens de m'apercevoir que je ne reçois plus les emails de récapitulatif de commande (par contre j'ai testé un envoi d'email à partir du back office, et là pas de soucis).

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

est ce que tu n'as pas désactivé l'envoi de mail à partir des paramètres du site ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Non non, dans Gestion des emails > Activation de l'envoi d'emails sur tout le site > Activer

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Par contre, le problème est peut-être lié : je viens de m'apercevoir que je ne reçois plus les emails de récapitulatif de commande (par contre j'ai testé un envoi d'email à partir du back office, et là pas de soucis).

Recevez vous d'autres email de votre boutique ? Si c'est le cas, et que l'option d'envoi d'email est active depuis le back office, le problème peux venir de votre hébergement.

Par contre, l'insertion des données dans la table peel_alertes devrait fonctionner. Il faut aller dans le code pour trouver le problème. Je vous propose d'ajouter die('insere_alerte'); dans la fonction insere_alerte() du fichier modules\premium\modules\stock_advanced\fonctions.php, sous la requête


$qid = query("INSERT INTO peel_alertes (
id_produit
, nom_produit
, id_utilisateur
, email
, datestamp
) VALUES (
'" . intval($frm['id_produit']) . "'
, '" . nohtml_real_escape_string($frm['nom_produit']) . "'
, '" . intval($frm['id_utilisateur']) . "'
, '" . nohtml_real_escape_string($frm['email']) . "'
, '" . date('Y-m-d H:i:s', time()) . "'
)");
[/CODE]

Ensuite, il faut faire un test de demande de réapprovisionnement de stock pour savoir si la fonction die() est exécuté, ce qui voudrait dire que la requête SQL est bien exécuté, et que le problème est ailleurs.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

OK merci, je vais tester ça et je vous dis...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bon déjà j'ai résolu mon problème de récapitulatif de mail au client. J'avais oublié qu'il faut rajouter case 'paybox': dans la page achat/fin_commande.php :


switch ($com->paiement) {

// In $com->payment_technical_code is stored the "technical_code" found in peel_paiement

case 'check':

case 'transfer':

case 'paybox':

  // On avertit l'utilisateur et l'administrateur uniquement pour les modes de paiement non instantanés

  send_mail_order_admin($commandeid);

  email_commande($commandeid);

Par contre concernant l'alerte produit, toujours pas d'insertion dans la table peel_alertes. Je continue à chercher (du côté hébergeur je pense, je suis chez 1and1)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Je pense que le problème d'insertion dans votre base de donnée est indépendante de votre hébergement. Que donne le test avec die() pour savoir si le script qui insère les données est exécuté ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Simon

 

j'ai le même problème que BERSERKER

 

Je vérifier les bases de donnés

 

J’inséré die('insere_alerte'); dans fonctions. PHP

 

Je fais le test et rien

La fonction die n’est pas exécutée

 

Cordialement

Franck

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

J'ai fais un test sur la dernière version et l’insertion dans peel_alertes se fait correctement. Vous pouvez voir ce qui ne va pas sur votre installation dans le fichier \achat\produit_details.php, à partir de la ligne

if ((isset($_POST["validate"]))) {

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Simon

 

Je ne sais pas ce qu’il faut chercher comme défaut

 

Voici un relevé du fichier produit_détails.php

A partir de la ligne 48 à la fin du fichier

 

// Insertion de la demande d'infos de stock
$form_error_object = new FormError();
if ((isset($_POST["validate"]))) { // si on valide le formulaire d'info stock
    $form_error_object->valide_form($_POST,
        array('email' => $GLOBALS['STR_ERR_EMAIL']));
    if (!$form_error_object->has_error('email')) {
        $_POST['email'] = trim($_POST['email']);
        if (!EmailOK($_POST['email'])) {
            // si il y a un email on teste l'email
            $form_error_object->add('email', $GLOBALS['STR_ERR_EMAIL_BAD']);
        }
    }
    if (!$form_error_object->count()) {
        if (insere_alerte($_POST)) {
            $form_error_object->add('confirm_ok', $GLOBALS['STR_REQUEST_OK']);
        } else {
            $form_error_object->add('confirm_ko', $GLOBALS['STR_ERR_EMAIL_BAD']);
        }
    }
}

// Gestion des erreurs de téléchargement des fichiers (cas d'attribut d'upload)
if (!empty($_SESSION["session_display_popup"]["upload_error_text"])) {
    $form_error_object->add('upload_option_error', $_SESSION["session_display_popup"]["upload_error_text"]);
    // On vient d'afficher le message d'alerte de problème de téléchargement d'image, donc on le désactive pour l'avenir
    unset($_SESSION["session_display_popup"]["upload_error_text"]);
}

define('IN_CATALOGUE_PRODUIT', true);
$GLOBALS['page_columns_count'] = $GLOBALS['site_parameters']['product_details_page_columns_count'];

include($GLOBALS['repertoire_modele'] . "/haut.php");

if ($form_error_object->count() > 0) {
    foreach ($form_error_object->error as $key => $error) {
        if ($key == "confirm_ok") {
            echo $GLOBALS['tplEngine']->createTemplate('global_success.tpl', array('message' => $error))->fetch();
        } else {
            echo $GLOBALS['tplEngine']->createTemplate('global_error.tpl', array('message' => $error))->fetch();
        }
    }
}
echo get_produit_details_html(intval($_GET['id']), intval(vb($_GET['cId'])));

include($GLOBALS['repertoire_modele'] . "/bas.php");

?>

 

cordialement

Franck

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

 

Le bloc de code qui enregistre les alertes stocks est :

if ((isset($_POST["validate"]))) { // si on valide le formulaire d'info stock
    $form_error_object->valide_form($_POST,
        array('email' => $GLOBALS['STR_ERR_EMAIL']));
    if (!$form_error_object->has_error('email')) {
        $_POST['email'] = trim($_POST['email']);
        if (!EmailOK($_POST['email'])) {
            // si il y a un email on teste l'email
            $form_error_object->add('email', $GLOBALS['STR_ERR_EMAIL_BAD']);
        }
    }
    if (!$form_error_object->count()) {
        if (insere_alerte($_POST)) {
            $form_error_object->add('confirm_ok', $GLOBALS['STR_REQUEST_OK']);
        } else {
            $form_error_object->add('confirm_ko', $GLOBALS['STR_ERR_EMAIL_BAD']);
        }
    }
}

La requête SQL d’insertion de la demande de réassort est dans la fonction insere_alerte.

Donc quand le formulaire est envoyé depuis une fiche produit, $_POST['validate'] doit être défini. Il y a ensuite une vérification sur l'adresse email renseigné, et si il n'y a pas d'erreur, la fonction insere_alerte est appelé avec les informations du formulaire en paramètre pour l'inserer dans la BDD.

Tout cela fonctionne sur la 7.1.4, vous pouvez utiliser la fonction die(); pour savoir si vous passez dans les différentes conditions, jusqu'a la fonction insere_alerte.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Simon

 

Je récapitule la fonction alerte stock

 

Je révisé l’ensemble des fichiers

 

1° ) Dans stock_avanded\fonctions.php

 

Le code dans le fichier est identique à celui que vous avez mis dans ce topic

J’ajouté la fonction die(‘insère alerte’) mais ça n’est pas fonctionné

 

2° ) dans achat produit_details.php

 

Le bloc de code est identique à celui que vous mentionnez dans le topic

La requête SQL d’insertion ne part pas vers la BDD

 

la table peel_alertes est vide chez l’hébergeur

 

Si un utilisateur utilise le mail pour être prévenu le mail n’est pas enregistré,

donc l’admin n’a pas connaissance de la demande du client dans le menu Ventes \Liste des alertes en cours

 

Par contre à chaque fois qu’il y a une rupture de stock on reçoit un mail

 

Si cette fonction fonctionne parfaitement sur la version 7.1.4

 

Sur la version 7.0.3 ne fonctionne pas, (pour le moment bien sûr)

 

Je déduis qu’étant donné le module stock à été ajouter après l’installation, il se pourrait qu’une erreur est survenue lors de l’ajout du PREMIUM

 

Deux questions :

 

 Le htacess pourrait empêcher le fonctionnement ?

 

les droits d’accès d’attributs pour les fichiers en question est a  604 lire, écrire, mais pas exécuter ?

 

Etant pas un spécialiste de la programmation je cherche à comprendre et à faire fonctionner cette fonction.

 

Merci pour votre aide

 

Cordialement

Franck

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

 

Par contre à chaque fois qu’il y a une rupture de stock on reçoit un mail

C'est une fonctionnalité différente, qui n'est pas appelé au même moment (voir la fonction decremente_stock)

 

 

Le htacess pourrait empêcher le fonctionnement ?

les droits d’accès d’attributs pour les fichiers en question est a  604 lire, écrire, mais pas exécuter ?

Ce n'est pas le problème à priori, vous dites que "J’ajouté la fonction die(‘insère alerte’) mais ça n’est pas fonctionné", il faut chercher au niveau du bloc de code sous if ((isset($_POST["validate"]))) {

=> Si vous placer die("POST validate ok"); sous cette ligne, avez-vous un résultat ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Simon

 

J’insérer  die("POST validate ok");

 

Je fais une commande article, le site a reçu un mail notification d’alerte STOCK

 

Je répète la même commande je rempli le formulaire  mail

 

Ali 110w P3 n'est pas en stock aujourd'hui.
Nous vous préviendrons par email dès qu'il sera disponible :

 

Rien ce passé :

 

1°) dans Admi/Vents/Alertes disponibilité en cours = Aucune alerte enregistrée dans la base

 

2°) le site n’est pas reçu de mail venant du client

 

3°) dans BDD rien est injecté

 

Ci-joint le morceau de bloc code que vous me dites de chercher avec die("POST validate ok");

 

// Insertion de la demande d'infos de stock

 

$form_error_object = new FormError();

if ((isset($_POST["validate"]))) { // si on valide le formulaire d'info stock

die("POST validate ok");

                $form_error_object->valide_form($_POST,

                               array('email' => $GLOBALS['STR_ERR_EMAIL']));

                if (!$form_error_object->has_error('email')) {

                               $_POST['email'] = trim($_POST['email']);

                               if (!EmailOK($_POST['email'])) {

                                               // si il y a un email on teste l'email

                                               $form_error_object->add('email', $GLOBALS['STR_ERR_EMAIL_BAD']);

                               }

                }

                if (!$form_error_object->count()) {

                               if (insere_alerte($_POST)) {

                                               $form_error_object->add('confirm_ok', $GLOBALS['STR_REQUEST_OK']);

                               } else {

                                               $form_error_object->add('confirm_ko', $GLOBALS['STR_ERR_EMAIL_BAD']);

                               }

                }

}

 

// Gestion des erreurs de téléchargement des fichiers (cas d'attribut d'upload)

 

 

Je suis allée voir sur la version 7.1.4 le même bloc  de code,  ils sont identiques

 

Le bug sa dois ce passer ailleurs  !!! Mais où ? Je ne sais pas

 

Par MP je vous envoi le pass admin du site si vous voulez voir

 

Cordialement

Franck

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

La fonctionnalité d'alerte stock correspond au formulaire qui s'affiche sur la page produit lorsque le produit n'est plus en stock. Vous pouvez voir un aperçu sur le site de démonstration :
https://premium.peel.fr/tables-6/table-basse-ovale-4.html
La table peel_alertes contient les données qui viennent de ce formulaire.
 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping