Author Topic: ListMail and OS Commerce Integration  (Read 7128 times)

davew

  • Posts: 2
    • View Profile
ListMail and OS Commerce Integration
« on: December 02, 2004, 01:59:47 am »
Hi,

Is there an integratation between ListMail and OS Commerce?  I'm looking to include people in the email list when they register on the site.  I'm not sure it's necessary for it to work the other way, but definitely if they sign up on the site they should make it on the email list.  This way, everything works fine and I can keep track of everyone.

If there isn't an integration Dean, is it on the roadmap?  It would also be a great way to market ListMail through the OS Commerce community and get you a lot more customers, which you do deserve.

Keep up the good work.  It's a fantastic piece of software, especially for the price.

David Walsh
TKD DVD
www.tkddvd.com

greg.russell5

  • Posts: 17
    • View Profile
ListMail and OS Commerce Integration
« Reply #1 on: March 23, 2005, 02:57:41 am »
This is an old thread, so may not be monitored but I believe I may have found a way to link these scripts togther.

In catalog/create_account.php, at around line 280 add this:

Code: [Select]

// Newsletter subscription begin
    if ($newsletter == '1') {
     
       $subject = 'signup';

      tep_mail('subscribe', 'signup@yoursite.com', $subject, '', $name, $email_address);
    }
// Newsletter subscription end


Worked for me, but I found that if the user already had an email in the database, there was no knowing or error given.  I also learnt by trial and error that you have to have"signup" in the subject line if you want to subscribe via blank email. The instructions for testing bounce.cgi are straightforward, as you have to add "TESTBOUNCE" in the subject line.


Hope that helps!!

Greg

davew

  • Posts: 2
    • View Profile
ListMail and OS Commerce Integration
« Reply #2 on: March 23, 2005, 04:56:04 am »
Thanks Greg, it is an old post but it's nice to know that someone has done something with it.

Thanks again,

David.

DW

  • Administrator
  • Posts: 3787
    • View Profile
    • https://legacy.listmailpro.com
ListMail and OS Commerce Integration
« Reply #3 on: March 23, 2005, 02:16:07 pm »
I do not recognize the suggested method.  I suspect you will have more success using LMinsert.pl or LMinsert.php.

Regards!
Dean Wiebe
ListMailPRO Author & Developer - Help | Support | Hosting

greg.russell5

  • Posts: 17
    • View Profile
ListMail and OS Commerce Integration
« Reply #4 on: March 23, 2005, 04:34:13 pm »
Hello Dean (again),

Seems to work for me just fine.  Both those two scripts you mentioned seem too complicated for me and I'm not sure how to integrate into my create_account.php page.  And all I'm after is that when the customer checks the newsletter box in the account signup process, that it trigger the signup.php in LM.

tep_ is the original coding for osCommerce, as the original name for it was The Exchange Project, so everything is coded that way.  I thinks that's right?

Anyway, works for me. PM me if you want more info on create_account.php.

Cheers,
Greg

greg.russell5

  • Posts: 17
    • View Profile
ListMail and OS Commerce Integration
« Reply #5 on: March 24, 2005, 11:53:58 am »
Hello Dean,

Well some more testing today and a small issue.  When I sign up, I now get 2 welcome emails.  One is good, takes me to the confirmation screen.  The other says:

Quote
Your email address was not found. You must confirm within 10 days or else re-subscribe.


How can I employ "signup-xtra.php" in this case?  

Also, getting back to LMinsert.php or LMinsert.pl (probably the first),  how would I incorporate it as a function in my create_account.php?  

Here's what mine looks like:
 
Code: [Select]
<?php/*  $Id: create_account.php,v 1.2 2005/01/18 06:25:30 Exp $  osCommerce, Open Source E-Commerce Solutions  http://www.oscommerce.com  Copyright (c) 2003 osCommerce  Released under the GNU General Public License*/  require('includes/application_top.php');// needs to be included earlier to set the success message in the messageStack  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CREATE_ACCOUNT);  $process = false;  if (isset($HTTP_POST_VARS['action']) && ($HTTP_POST_VARS['action'] == 'process')) {    $process = true;    if (ACCOUNT_GENDER == 'true') {      if (isset($HTTP_POST_VARS['gender'])) {        $gender = tep_db_prepare_input($HTTP_POST_VARS['gender']);      } else {        $gender = false;      }    }    $firstname = tep_db_prepare_input($HTTP_POST_VARS['firstname']);    $lastname = tep_db_prepare_input($HTTP_POST_VARS['lastname']);    if (ACCOUNT_DOB == 'true') $dob = tep_db_prepare_input($HTTP_POST_VARS['dob']);    $email_address = tep_db_prepare_input($HTTP_POST_VARS['email_address']);    if (ACCOUNT_COMPANY == 'true') $company = tep_db_prepare_input($HTTP_POST_VARS['company']);    $street_address = tep_db_prepare_input($HTTP_POST_VARS['street_address']);    if (ACCOUNT_SUBURB == 'true') $suburb = tep_db_prepare_input($HTTP_POST_VARS['suburb']);    $postcode = tep_db_prepare_input($HTTP_POST_VARS['postcode']);    $city = tep_db_prepare_input($HTTP_POST_VARS['city']);    if (ACCOUNT_STATE == 'true') {      $state = tep_db_prepare_input($HTTP_POST_VARS['state']);      if (isset($HTTP_POST_VARS['zone_id'])) {        $zone_id = tep_db_prepare_input($HTTP_POST_VARS['zone_id']);      } else {        $zone_id = false;      }    }    $country = tep_db_prepare_input($HTTP_POST_VARS['country']);    $telephone = tep_db_prepare_input($HTTP_POST_VARS['telephone']);    $fax = tep_db_prepare_input($HTTP_POST_VARS['fax']);    if (isset($HTTP_POST_VARS['newsletter'])) {      $newsletter = tep_db_prepare_input($HTTP_POST_VARS['newsletter']);    } else {      $newsletter = false;    }    $password = tep_db_prepare_input($HTTP_POST_VARS['password']);    $confirmation = tep_db_prepare_input($HTTP_POST_VARS['confirmation']);    $error = false;    if (ACCOUNT_GENDER == 'true') {      if ( ($gender != 'm') && ($gender != 'f') ) {        $error = true;        $messageStack->add('create_account', ENTRY_GENDER_ERROR);      }    }    if (strlen($firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) {      $error = true;      $messageStack->add('create_account', ENTRY_FIRST_NAME_ERROR);    }    if (strlen($lastname) < ENTRY_LAST_NAME_MIN_LENGTH) {      $error = true;      $messageStack->add('create_account', ENTRY_LAST_NAME_ERROR);    }    if (ACCOUNT_DOB == 'true') {      if (checkdate(substr(tep_date_raw($dob), 4, 2), substr(tep_date_raw($dob), 6, 2), substr(tep_date_raw($dob), 0, 4)) == false) {        $error = true;        $messageStack->add('create_account', ENTRY_DATE_OF_BIRTH_ERROR);      }    }    if (strlen($email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH) {      $error = true;      $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR);    } elseif (tep_validate_email($email_address) == false) {      $error = true;      $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);    } else {      $check_email_query = tep_db_query("select count(*) as total from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'");      $check_email = tep_db_fetch_array($check_email_query);      if ($check_email['total'] > 0) {        $error = true;        $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR_EXISTS);      }    }    if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) {      $error = true;      $messageStack->add('create_account', ENTRY_STREET_ADDRESS_ERROR);    }    if (strlen($postcode) < ENTRY_POSTCODE_MIN_LENGTH) {      $error = true;      $messageStack->add('create_account', ENTRY_POST_CODE_ERROR);    }    if (strlen($city) < ENTRY_CITY_MIN_LENGTH) {      $error = true;      $messageStack->add('create_account', ENTRY_CITY_ERROR);    }    if (is_numeric($country) == false) {      $error = true;      $messageStack->add('create_account', ENTRY_COUNTRY_ERROR);    }    if (ACCOUNT_STATE == 'true') {      $zone_id = 0;      $check_query = tep_db_query("select count(*) as total from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "'");      $check = tep_db_fetch_array($check_query);      $entry_state_has_zones = ($check['total'] > 0);      if ($entry_state_has_zones == true) {        $zone_query = tep_db_query("select distinct zone_id from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and (zone_name like '" . tep_db_input($state) . "%' or zone_code like '%" . tep_db_input($state) . "%')");        if (tep_db_num_rows($zone_query) == 1) {          $zone = tep_db_fetch_array($zone_query);          $zone_id = $zone['zone_id'];        } else {          $error = true;          $messageStack->add('create_account', ENTRY_STATE_ERROR_SELECT);        }      } else {        if (strlen($state) < ENTRY_STATE_MIN_LENGTH) {          $error = true;          $messageStack->add('create_account', ENTRY_STATE_ERROR);        }      }    }    if (strlen($telephone) < ENTRY_TELEPHONE_MIN_LENGTH) {      $error = true;      $messageStack->add('create_account', ENTRY_TELEPHONE_NUMBER_ERROR);    }    if (strlen($password) < ENTRY_PASSWORD_MIN_LENGTH) {      $error = true;      $messageStack->add('create_account', ENTRY_PASSWORD_ERROR);    } elseif ($password != $confirmation) {      $error = true;      $messageStack->add('create_account', ENTRY_PASSWORD_ERROR_NOT_MATCHING);    }    if ($error == false) {      $sql_data_array = array('customers_firstname' => $firstname,                              'customers_lastname' => $lastname,                              'customers_email_address' => $email_address,                              'customers_telephone' => $telephone,                              'customers_fax' => $fax,                              'customers_newsletter' => $newsletter,                              'customers_password' => tep_encrypt_password($password));      if (ACCOUNT_GENDER == 'true') $sql_data_array['customers_gender'] = $gender;      if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = tep_date_raw($dob);      tep_db_perform(TABLE_CUSTOMERS, $sql_data_array);      $customer_id = tep_db_insert_id();      $sql_data_array = array('customers_id' => $customer_id,                              'entry_firstname' => $firstname,                              'entry_lastname' => $lastname,                              'entry_street_address' => $street_address,                              'entry_postcode' => $postcode,                              'entry_city' => $city,                              'entry_country_id' => $country);      if (ACCOUNT_GENDER == 'true') $sql_data_array['entry_gender'] = $gender;      if (ACCOUNT_COMPANY == 'true') $sql_data_array['entry_company'] = $company;      if (ACCOUNT_SUBURB == 'true') $sql_data_array['entry_suburb'] = $suburb;      if (ACCOUNT_STATE == 'true') {        if ($zone_id > 0) {          $sql_data_array['entry_zone_id'] = $zone_id;          $sql_data_array['entry_state'] = '';        } else {          $sql_data_array['entry_zone_id'] = '0';          $sql_data_array['entry_state'] = $state;        }      }      tep_db_perform(TABLE_ADDRESS_BOOK, $sql_data_array);      $address_id = tep_db_insert_id();      tep_db_query("update " . TABLE_CUSTOMERS . " set customers_default_address_id = '" . (int)$address_id . "' where customers_id = '" . (int)$customer_id . "'");      tep_db_query("insert into " . TABLE_CUSTOMERS_INFO . " (customers_info_id, customers_info_number_of_logons, customers_info_date_account_created) values ('" . (int)$customer_id . "', '0', now())");      if (SESSION_RECREATE == 'True') {        tep_session_recreate();      }      $customer_first_name = $firstname;      $customer_default_address_id = $address_id;      $customer_country_id = $country;      $customer_zone_id = $zone_id;      tep_session_register('customer_id');      tep_session_register('customer_first_name');      tep_session_register('customer_default_address_id');      tep_session_register('customer_country_id');      tep_session_register('customer_zone_id');// restore cart contents      $cart->restore_contents();// build the message content      $name = $firstname . ' ' . $lastname;      if (ACCOUNT_GENDER == 'true') {         if ($gender == 'm') {           $email_text = sprintf(EMAIL_GREET_MR, $lastname);         } else {           $email_text = sprintf(EMAIL_GREET_MS, $lastname);         }      } else {        $email_text = sprintf(EMAIL_GREET_NONE, $firstname);      }      $email_text .= EMAIL_WELCOME . EMAIL_TEXT . EMAIL_CONTACT . EMAIL_WARNING;// ICW - CREDIT CLASS CODE BLOCK ADDED  ******************************************************* BEGIN  if (NEW_SIGNUP_GIFT_VOUCHER_AMOUNT > 0) {    $coupon_code = create_coupon_code();    $insert_query = tep_db_query("insert into " . TABLE_COUPONS . " (coupon_code, coupon_type, coupon_amount, date_created) values ('" . $coupon_code . "', 'G', '" . NEW_SIGNUP_GIFT_VOUCHER_AMOUNT . "', now())");    $insert_id = tep_db_insert_id($insert_query);    $insert_query = tep_db_query("insert into " . TABLE_COUPON_EMAIL_TRACK . " (coupon_id, customer_id_sent, sent_firstname, emailed_to, date_sent) values ('" . $insert_id ."', '0', 'Admin', '" . $email_address . "', now() )");    $email_text .= sprintf(EMAIL_GV_INCENTIVE_HEADER, $currencies->format(NEW_SIGNUP_GIFT_VOUCHER_AMOUNT)) . "\n\n" .                   sprintf(EMAIL_GV_REDEEM, $coupon_code) . "\n\n" .                   EMAIL_GV_LINK . tep_href_link(FILENAME_GV_REDEEM, 'gv_no=' . $coupon_code) .                   "\n\n";  }  if (NEW_SIGNUP_DISCOUNT_COUPON != '') {    $coupon_id = NEW_SIGNUP_DISCOUNT_COUPON;    $coupon_query = tep_db_query("select * from " . TABLE_COUPONS . " where coupon_id = '" . $coupon_id . "'");    $coupon_desc_query = tep_db_query("select * from " . TABLE_COUPONS_DESCRIPTION . " where coupon_id = '" . $coupon_id . "' and language_id = '" . languages_id . "'");    $coupon = tep_db_fetch_array($coupon_query);    $coupon_desc = tep_db_fetch_array($coupon_desc_query);    $insert_query = tep_db_query("insert into " . TABLE_COUPON_EMAIL_TRACK . " (coupon_id, customer_id_sent, sent_firstname, emailed_to, date_sent) values ('" . $coupon_id ."', '0', 'Admin', '" . $email_address . "', now() )");    $email_text .= EMAIL_COUPON_INCENTIVE_HEADER .  "\n\n" .                   $coupon_desc['coupon_description'] .                   sprintf(EMAIL_COUPON_REDEEM, $coupon['coupon_code']) . "\n\n" .                   "\n\n";  }    // ICW - CREDIT CLASS CODE BLOCK ADDED  ******************************************************* END      tep_mail($name, $email_address, EMAIL_SUBJECT, $email_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);  // BEGIN OUR ADDITION    if (CREATE_CUSTOMER_QB_IIF_FILE) {include(DIR_WS_INCLUDES .'qb_iif_customer.php');}  // end OUR ADDITION// Newsletter subscription begin    if ($newsletter == '1') {      	  $subject = 'signup';      tep_mail('subscribe', 'signup@mysite.com', $subject, '', $name, $email_address);    }// Newsletter subscription end      tep_redirect(tep_href_link(FILENAME_CREATE_ACCOUNT_SUCCESS, '', 'SSL'));    }  }  $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'));  $content = CONTENT_CREATE_ACCOUNT;  include(DIR_WS_INCLUDES . 'select_template.php'); // BTSv1.4  require(DIR_WS_INCLUDES . 'application_bottom.php');?>


Thanks again,
Greg

prodigitalplus

  • Posts: 2
    • View Profile
ListMail and OS Commerce Integration
« Reply #6 on: March 27, 2005, 01:15:06 pm »
I am interested in this also

lauriesmith

  • Posts: 3
    • View Profile
Re: ListMail and OS Commerce Integration
« Reply #7 on: May 29, 2005, 05:52:36 pm »
Quote from: "davew"
Hi,

Is there an integratation between ListMail and OS Commerce?  I'm looking to include people in the email list when they register on the site.  I'm not sure it's necessary for it to work the other way, but definitely if they sign up on the site they should make it on the email list.  This way, everything works fine and I can keep track of everyone.

If there isn't an integration Dean, is it on the roadmap?  It would also be a great way to market ListMail through the OS Commerce community and get you a lot more customers, which you do deserve.

Keep up the good work.  It's a fantastic piece of software, especially for the price.

David Walsh
TKD DVD
www.tkddvd.com


David,
After fighting with this all day, I have managed to integrate the signup process with create_account.  :shock:  It utilizes LMinsert. I have also created a signup box for either column. If you still need it, just let me know. Or anyone else for that matter. lol

I may post it on osC as is. I would like to see if I can get the signup confirmation page, signup success page, etc to work before I do that.

Laurie

greg.russell5

  • Posts: 17
    • View Profile
ListMail and OS Commerce Integration
« Reply #8 on: May 30, 2005, 06:28:37 am »
Hi Laurie,

I would like the code, if possible.  I recently upgraded the newsletter module in osCommerce to the multiple newsletter mod and would like to make it work again.

PM has been disabled here in the forum.

Thanks,
Greg

toma

  • Posts: 20
    • View Profile
ListMail and OS Commerce Integration
« Reply #9 on: June 07, 2005, 09:49:41 pm »
I'd like the info too!
:)
Tom

greg.russell5

  • Posts: 17
    • View Profile
ListMail and OS Commerce Integration
« Reply #10 on: June 08, 2005, 03:05:04 am »
I'm hoping that lauriesmith will get back soon!

Cheers,
Greg  :D

DW

  • Administrator
  • Posts: 3787
    • View Profile
    • https://legacy.listmailpro.com
ListMail and OS Commerce Integration
« Reply #11 on: September 28, 2006, 01:30:31 am »
I suspect this may be easier with the new simpler insertion script:

http://listmailpro.com/forum/index.php?topic=1160.0

Some more discussion on osCommerce integration will develop in the coming days in this new thread:

http://listmailpro.com/forum/index.php?topic=1486.0
Dean Wiebe
ListMailPRO Author & Developer - Help | Support | Hosting