[resolu] newseltter vs products notification

Archive

Messagepar oscim » Ven 17 Juil 2009, 00:23

Salut,

Une question, je suis dessus depuis quelque temps maintenant.

Dans Bulletins d'information, 2 choix possible
* newsletter
* products_notifications

Ok, pour le choix entre es module en fonction de l'objectif de com.

Bon, mais a partir de la, on choisi product notification.
La, on se rend compte qu'il faut ajouter une colonne à la table customers_info le champs: global_product_notifications (valeur possible 1/0)

Ok, une fois ca fait, ?? il faut que le client est choisi d'être notifié de ce module, et pas l'autre
>> donc il manque une case coté public, et admin idem a newseltter

Apres envoi, ca pas de soucis.
le code fait référence alors à la table product_notification. Or cette table reste désespérément vide ?

Quand est il , ajouté un champs sous chaque produits pour recevoir les notification sur ce produits ?
Ou est ce plutôt une inscription automatique lors d'un achat ?


enfin, voila, si vous avez des pistes ?
Dernière édition par oscim le Ven 06 Nov 2009, 02:18, édité 1 fois.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar cynic- » Ven 17 Juil 2009, 13:23

Effectivement je n'ai jamais constaté ce bug, car j'utilise seulement newsletter et pas product_notifications

Je vais tester de mon côté
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar oscim » Ven 17 Juil 2009, 16:02

Donc, pour la suite , effectivement, il s'agit bien d'une case a cocher coté public, par fiche produits.

La table products_notification associé couple product_id / customer_id

De plus, comme fait remarqer plus haut, la colonne manquante customers_info sert a activer ou désactiver de maniére générale le service pour un client.

Enfin, j'ai ajouté un stat_reports_notification pour avoir un visuel des retour.



Il apparait que la table product_notification qui précise le couple devait fonctionner avec une entrée product_id / customer_id/ date par envoi.

Or dans notre oscss préféré, la clef product_id / customer_id est unique, donc il est nécessaire de rajouter un champ count pour comptabiliser les envois.

Enfin, apres ca , le module product_notification de /admin/module assure un enregistrement sur la table newsletter qui est une erreur.

il faut donc remplacer cette enregsitrement , par celui sur la table des products_notification, en incremenant la valeur de count.
Remplacer par
Code: Tout sélectionner
      while ($mail = tep_db_fetch_array($mail_query)) {
        $mimemessage->send($mail['customers_firstname'] . ' ' . $mail['customers_lastname'], $mail['customers_email_address'], '', EMAIL_FROM, $this->title);
      }

      $newsletter_id = tep_db_prepare_input($newsletter_id);
      tep_db_query("update " . TABLE_NEWSLETTERS . " set date_sent = now(), status = '1' where newsletters_id = '" . tep_db_input($newsletter_id) . "'");

Code: Tout sélectionner
     while (list($key, $value) = each ($audience)) {
        $mimemessage->send($value['firstname'] . ' ' . $value['lastname'], $value['email_address'], '', EMAIL_FROM, $this->title);

  /* Enreg sql */
        tep_db_query("UPDATE " . TABLE_PRODUCTS_NOTIFICATIONS . " SET count = count+1  WHERE products_id='".$key."' AND  customers_id='" . tep_db_input($products_notifications_id) . "'  ");
      }

Et donc pour répondre à la première question, la newsletter est envoyé à tous les client.
Le products_notfication, uniquement a ceux qui ont souhaitez recevoir des informations sur le(s) produit(s) avec suivi par produit
Dernière édition par oscim le Ven 17 Juil 2009, 16:31, édité 1 fois.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar cynic- » Lun 20 Juil 2009, 12:19

"Et donc pour répondre à la première question, la newsletter est envoyé à tous les client. "
... tous les clients abonnés à la newsletter dirai-je même ?
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar oscim » Lun 20 Juil 2009, 15:11

Effectivement
"Et donc pour répondre à la première question, la newsletter est envoyé à tous les client. "
... tous les clients abonnés à la newsletter dirai-je même ?

Poru finir sur le products_notification, j'ai ajouté un fichier dans le "public"/modules pour prendre en charge l'inscription sur les produits, + petit modif dans le fichier product_info.

includes/modules/product_info.php
Code: Tout sélectionner
<?php
/*
  $Id: products_notifications, 1.0 17.07.2009 15:46:48 oscim Exp $
// kate: replace-trailing-space-save true; space-indent on; indent-width 4; mixedindent off; indent-mode cstyle; word-wrap-marker-color #41C2A4
+-----------------------------------------------------------------------+
|                  osCSS Open Source E-commerce                         |
+-----------------------------------------------------------------------+
| Copyright (c) 2005-2009  The osCSS developers                         |
|                                                                       |
| http://www.oscss.org                                                  |
|                                                                       |
| Portions Copyright (c) 2003-2009 osCommerce                           |
+-----------------------------------------------------------------------+
| This source file is subject to version 2.0 of the GPL license,        |
| available at the following url:                                       |
| http://www.oscss.org/license/2_0.txt.                                 |
+-----------------------------------------------------------------------+
*/
  require(DIR_WS_LANGUAGES . $language . '/modules/' . FILENAME_PRODUCTS_NOTIFICATIONS);



  if ($_GET['action'] =='process_pnot' ) {
      if (isset($_POST['pnot_for_product'])&& is_numeric($_POST['pnot_for_product'])) $pnot_for_product = tep_db_prepare_input($_POST['pnot_for_product']);
      else $pnot_for_product='0';


      if ($pnot_for_product=='1')
          tep_db_query("INSERT INTO " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id,customers_id,date_added) VALUES ('" . (int)$_GET['products_id'] . "', '" . (int)$customer_id . "',NOW() ) ");
      else
          tep_db_query("DELETE FROM " . TABLE_PRODUCTS_NOTIFICATIONS . " WHERE products_id='" . (int)$_GET['products_id'] . "' AND  customers_id='" . (int)$customer_id . "' LIMIT 1; ");
  }


  $customers_query = tep_db_query("SELECT * FROM " . TABLE_CUSTOMERS_INFO . " WHERE customers_info_id = '" . (int)$customer_id . "' AND global_product_notifications ='1' ");

  if (!tep_db_num_rows($customers_query)>0) $action_pnot='activ_pnot';
  else {
 $pnot_query = tep_db_query("SELECT * FROM " . TABLE_PRODUCTS_NOTIFICATIONS . " WHERE products_id='".$product_info['products_id']."' AND customers_id = '" . (int)$_SESSION['customer_id'] . "'  ");

 if (tep_db_num_rows($pnot_query)>0) $action_pnot='pnot_is_activ';
 else $action_pnot='pnot_is_flase';
  }

?>

<?php if ($action_pnot=='activ_pnot'): ?>
        <p><?php printf(ALERT_PNOT_NOT_ACTIV, tep_href_link(FILENAME_ACCOUNT_NEWSLETTERS, '', 'NONSSL')); ?></p>
<?php else: ?>

        <?php echo tep_draw_form('product_reviews_write', tep_href_link(FILENAME_PRODUCT_INFO, 'action=process_pnot&amp;products_id=' . $_GET['products_id']), 'post', 'onsubmit="return checkForm();"'); ?>
        <fieldset>
                <legend><?php echo TITLE_PRODUCT_NOTIFI; ?></legend>
    <?php if ($action_pnot=='pnot_is_activ'): ?>
            <p><?php echo tep_draw_checkbox_field('pnot_for_product', 'pnot_for_product', '0', 'checked') . ' ' . TEXT_PNOT_DESCATIVE_NOTIFI; ?> </p>
    <?php elseif ($action_pnot=='pnot_is_flase'): ?>
            <p><?php echo tep_draw_checkbox_field('pnot_for_product', 'pnot_for_product', '1') . ' ' . TEXT_PNOT_ACTIVE_NOTIFI; ?> </p>
    <?php elseif ($action_pnot=='pnot_exe'): ?>
    <?php endif; ?>
            <p><input class="submitBt" type="submit" value="<?php echo IMAGE_BUTTON_CONTINUE; ?>"  /></p>
           </fieldset>
        </form>
<?php endif; ?>

et aussi ajouté son appel dans le content/product_info.php:
Code: Tout sélectionner
    <?php if (ACTIVE_PRODUCTS_NOTIFICATION_PUBLIC=='1'):  ?>
    <div id="product_notification">
        <?php
              if (tep_session_is_registered('customer_id')) {
                if ( ($file_include=tep_choose_noyau_or_theme($template, 'products_notifications')) !=false)require($file_include);
              }
        ?>
    </div>
    <?php endif;  ?>

Noté que pour utiliser, il faut ajouter une var de configuration nommé ACTIVE_PRODUCTS_NOTIFICATION_PUBLIC, et qui permet d'activer le block ou pas.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar oscim » Ven 06 Nov 2009, 02:17

Tiens ...

Je me suis rendu compte que certain lement relatif a l'enregistrement sur la table product_notification etait présent dans les action de application_top...

Je ne les avais pas vu.

Il manque donc que les element de formulaire afin d'activer ou non la notification.

Pet être une boxe etait elle présente
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33


Retourner vers osCSS 1.2.1

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron