osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [Resolu]Notification de produits sans compte client
mickael34
posté 4 Sep 2014, 15:59
Message #1


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 172
Inscrit : 3-January 08
Membre no 20263



Bonjour,

Avant de me lancer dans un développement de module qui va demander pas mal de travail je pense, je souhaite savoir si quelqu'un aurait vu déjà passer ce genre de contrib.
J'ai cherché mais rien trouvé.

Par défaut, si un client veut s'inscrire à une "notification de produit", il doit se logguer sur son compte client.

Ce que je cherche à faire c'est à rendre indépendant du compte client la fonction "notification de produit".

Dans mon idée, si un produit est à stock 0, à la place du bouton "ajouter au panier" on aurait le lien "Me prévenir..." qui ouvre une fenêtre en demandant le nom, prénom et le mail.

Dans la table products_notifications, on aurait ainsi 3 colonnes supplémentaires : firstname_notification, lastname_notification, email_notification.

Comment je gérerai ensuite ces données pour notifier les clients, ça se sera un autre travail dans un second temps.
Dans un premier temps, il me faut enregistrer un nom, prénom et email lors d'une demande de notification.

Est-ce que quelqu'un aurait déjà vu passer ce genre de contrib ?

smile.gif

Ce message a été modifié par mickael34 - 17 Sep 2014, 20:45.


--------------------
Sur OsCommerce 2.2
Go to the top of the page
 
Bonbec
posté 4 Sep 2014, 17:43
Message #2


Ceinture marron OSC
Icône de groupe

Groupe : Modérateurs
Messages : 1326
Inscrit : 30-May 06
Lieu : Vichy (03)
Membre no 10583



Bonjour,

Peut être celle-ci ? Notify when back in stock


--------------------
Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse)
Config 2 en local avec UwAmp : Osc 2.3.4 BS
Go to the top of the page
 
chti_poupon
posté 4 Sep 2014, 17:52
Message #3


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2744
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonjour
Vois ici.
Bon code !
Chti poupon
PSAttention c'est pour MS2.3
Go to the top of the page
 
mickael34
posté 4 Sep 2014, 19:23
Message #4


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 172
Inscrit : 3-January 08
Membre no 20263



Merci beaucoup !

Je pense que d'après la description de la contrib je devrais arriver à mes fins smile.gif


--------------------
Sur OsCommerce 2.2
Go to the top of the page
 
mickael34
posté 16 Sep 2014, 14:46
Message #5


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 172
Inscrit : 3-January 08
Membre no 20263



Bonjour,

Je reviens sur mon post car j'ai un petit souci sur une partie du code de la contribution.
Après quelques arrangements, celle-ci fonctionne sous ma MS2.2

Par contre je bloque sur ce problème :
Dans mon fichier categories.php, en dessous de

Code
} elseif ($action == 'update_product') {


J'ai ajouté ce code :

Code
           // http://www.linuxuk.co.uk - Notify when back in stock. Start
            $current_stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . (int)$_GET['pID'] . "'");
            $current_stock = tep_db_fetch_array($current_stock_query);
            if ($current_stock['products_quantity'] < 1) {
              if ($_POST['products_quantity'] > 0) {
                $audience = array();
                $products_query = tep_db_query("select distinct sn_name, sn_email, sn_P_name from " . TABLE_STOCK_NOTIFICATION ."  where product_id in ( '" . (int)$products_id . "')");

                while ($products = tep_db_fetch_array($products_query)) {
                  $audience[$products['customers_id']] = array('name' => $products['sn_name'],
                                                               'email_address' => $products['sn_email'],
                                                               'product_name' => $products['sn_P_name']);
                }

                $product_query_raw = tep_db_query("select p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and p.products_id = '" . (int)$_GET['pID'] . "'");
                $product = tep_db_fetch_array($product_query_raw);

                $customers_query_raw = tep_db_query("select distinct sn_name, sn_email, sn_P_name from " . TABLE_STOCK_NOTIFICATION ."  where product_id in ( '" . (int)$products_id . "')");
                $customer = tep_db_fetch_array($customers_query_raw);

                reset($audience);
                while (list($key, $value) = each ($audience)) {
                  $mimemessage = new email(array('X-Mailer: osCommerce System Mailer'));
                  // Build the mnessage
                  if (EMAIL_USE_HTML == 'true') {
                    //$mimemessage->add_html(HTML_NOTIFICATION1 . $value['name'] . HTML_NOTIFICATION2 . STORE_NAME . HTML_NOTIFICATION3 . $products_id . '">' . $product['products_name'] . HTML_NOTIFICATION4 . '">' . STORE_NAME . HTML_NOTIFICATION5 . $product['products_name'] . HTML_NOTIFICATION6 . $product['products_name'] . HTML_NOTIFICATION7 . STORE_NAME . HTML_NOTIFICATION8 . $products_id . '">' . $product['products_name'] . HTML_NOTIFICATION9 . STORE_NAME);
                    $mimemessage->add_html(HTML_NOTIFICATION1 . $value['name'] . HTML_NOTIFICATION2 . HTML_NOTIFICATION3 . $products_id . '">' . $product['products_name'] . HTML_NOTIFICATION4 . HTML_NOTIFICATION5 . HTML_NOTIFICATION9);
                  } else {
                    $mimemessage->add_text(TEXT_NOTIFICATION1 . $value['name'] . TEXT_NOTIFICATION2 . STORE_NAME . TEXT_NOTIFICATION3 . $product['products_name'] . TEXT_NOTIFICATION4 . $product['products_name'] . TEXT_NOTIFICATION5 . $product['products_name'] . TEXT_NOTIFICATION6 . STORE_NAME . TEXT_NOTIFICATION7 . $product['products_name'] . TEXT_NOTIFICATION8 . STORE_NAME);
                  }
                  $mimemessage->build_message();
                  $mimemessage->send($value['name'],  $value['email_address'], STORE_NAME, STORE_OWNER_EMAIL_ADDRESS, EMAIL_SUBJECT . $product['products_name'], $email_order);
                  // delete from the Alerts Table.
                  tep_db_query("delete from " . TABLE_STOCK_NOTIFICATION . " where product_id = '" . $products_id . "' ");
                }
              }
            }
        // http://www.linuxuk.co.uk - Notify when back in stock. End



Cela permet d'envoyer un mail au client lorsque le produit est de nouveau disponible en stock.

Le mail part bien SAUF SI plusieurs personnes ont demandé à être notifié par mail ! C'est seulement le dernier "inscrit" qui reçoit le mail. Pour les autres rien ne part.


J'ai un peu de mal à comprendre le code ci-dessus.

D'avance merci pour votre aide.

smile.gif


--------------------
Sur OsCommerce 2.2
Go to the top of the page
 
mickael34
posté 17 Sep 2014, 20:47
Message #6


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 172
Inscrit : 3-January 08
Membre no 20263



Autant pour moi...
En fait ce bout de code a été repris d'une autre contrib.

De ce fait :
Code
                $products_query = tep_db_query("select distinct sn_name, sn_email, sn_P_name from " . TABLE_STOCK_NOTIFICATION ."  where product_id in ( '" . (int)$products_id . "')");

                while ($products = tep_db_fetch_array($products_query)) {
                  $audience[$products['customers_id']] = array('name' => $products['sn_name'],
                                                               'email_address' => $products['sn_email'],
                                                               'product_name' => $products['sn_P_name']);


doit être modifié ainsi :
Code
                $products_query = tep_db_query("select distinct snid, sn_name, sn_email, sn_P_name from " . TABLE_STOCK_NOTIFICATION ."  where product_id in ( '" . (int)$products_id . "')");

                while ($products = tep_db_fetch_array($products_query)) {
                  $audience[$products['snid']] = array('name' => $products['sn_name'],
                                                               'email_address' => $products['sn_email'],
                                                               'product_name' => $products['sn_P_name']);



Ca marche !


--------------------
Sur OsCommerce 2.2
Go to the top of the page
 
multiman
posté 23 Jul 2016, 16:12
Message #7


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 97
Inscrit : 25-May 08
Lieu : carcassonne
Membre no 21917



Bonjour à tous

@mickael34 à priori tu as choisi la première contrib qui fait l'envoi d'email au client.
Comment s'est passé la migration en v2.2 ?
Le code corrigé que tu indiques est-il de la contrib ou d'une autre (il est indiqué autre contrib dans ton post).

Existe-t-il une meilleure contrib pour cette tâche ? J'ai cherché...

Merci


--------------------
Version oscommerce: V2.2 Rc1
Contrib : STS V4.5.8 (Simple Template System), Dynamic Sitemap V4.0, Easy Meta Tag for STS, LightBox 1, visible_contries 1.2b, Agree2Terms, trackingcolissimo+ups1.0, easypopulate, Ultimate_SEO_URLs_v2-2, Mail Validation 2.1a, ot_discount_coupon_codes_3_31, AntiRobotRegistrationValidation-2.9, customers_extra_fields_EXTENDED, Dynamic Sitemap and STS, Featured Products 161 with STS 453 instructions, free shipping by cats v1.5, Mail Validation 2.1a, ot_discount_coupon_codes_3_31, PDF_Customer_Invoice_v1.1 + Add-ons, PRODUCT QUICK EDIT V2.1, Search_Price_Range_Pulldown_Menu_1.1.1, Simple_Down_For_Maintenance, Simple_Visitor_Newsleter_With_HTML_Support-1.0
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 23rd November 2017 - 19:26
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)