IMPORTANT: This integration uses an API version that is no longer supported. To connect Foxy to your Constant Contact lists, get in touch with us to make use of our Zapier integration.
Please note: The code on this page is submitted by members of the FoxyCart community, and may not verified by FoxyCart.com LLC in any way, shape, or form. Please double check the code before installing. If you need help with it please post in our forum, but if we cannot offer assistance (due to unfamiliarity with this particular system or language) we apologize in advance.
Constant Contact… everyone's got it, it's the standard, so why not plug your FoxyCart into it for some hands-off customer subscription power?
This script uses the FoxyCart XML datafeed to automatically add customers to one of your Constant Contact mailing lists, if the the customer checks the opt-in checkbox during checkout. (The opt-in could easily be changed to an opt-out, but isn't generally recommended.)
fc-constantcontact.php
Included for good measure are a PHP4-compatible XML parser, RC4 decryption library, and test harness.
// ... $ConstantContact_Auth = array( 'user' => 'username', // Replace "username" with your Constant Contact username 'pass' => 'password' // Replace "password" with your Constant Contact password ); $ListName = 'My Awesome List!'; // The exact name of your list in Constant Contact. /** * Use a custom field during checkout? If true, check for the presence of $Custom_Field below. * If false, always subscribe the customer. Use wisely. */ $Use_Custom_Field = true; $Custom_Field = 'Subscribe'; // Name of the custom "Opt In" field during checkout. $Custom_Field_Value = 'yes'; // The value of the custom field that indicates the customer's agreement. $key = 'CHANGE THIS TEXT to your own datafeed api key'; // Make up something random and 30+ characters. This is the encryption key that your XML is encrypted using, and you'll use it below as well. // ...
fc-constantcontact.php
(e.g. http://your.domain.dom/path/to/fc-constantcontact.php
) that you uploaded as described above.fc-constantcontact.php
into test.xmldatafeed.php
, then open http://your.domain.dom/path/to/test.xmldatafeed.php
in your browser. You should get a page that contains only the word foxy
in reply. If you get something else, double-check your datafeed keys in both files and, if all else fails, pop on by the forums. If your store is on FoxyCart 2.0 or newer, a new template configuration option will automatically insert a newsletter subscribe checkbox as part of the checkout form. To enable that, simply navigate to your store's FoxyCart administration, and on the “configuration” page, enable the “Allow users to sign up for your newsletter” option.
Within the fc-constantcontact.php
file - you'll need to update the $Custom_Field
variable to be set to newsletter_subscribe
, and the $Custom_Field_Value
to 1
like this:
$Custom_Field = 'newsletter_subscribe'; // Name of the custom "Opt In" field during checkout. $Custom_Field_Value = '1'; // The value of the custom field that indicates the customer's agreement.
Now you have a datafeed receiver all set up on your server, so it's time to let your customers opt in to your mailing list. To do that, we need to add a Custom Field to your checkout template, so that your customer sees a “Subscribe” checkbox alongside their cart contents. There are a lot of cool things possible custom fields; find out more at the wiki page on Custom Fields. Today we're only going to add a single checkbox to the checkout template. Open the template up in your editor (if it's hosted on your server) or edit it directly from the FoxyCart admin interface, and add the following block of code anywhere in the template:
^^custom_begin^^ <h2>Newsletter</h2> <fieldset id="fc_custom_fields"> <legend>Newsletter</legend> <div class="fc_inner"> <div> <h4>Subscribe</h4> <input type="checkbox" name="Subscribe" id="Subscribe" value="yes" checked="checked" /> <label for="Subscribe">Leave this box checked to receive occasional updates about our products. We will not share your email address, and you can unsubscribe at any time.</label> </div> </div><!-- .fc_inner --> </fieldset><!-- #fc_custom_fields --> ^^custom_end^^
You can put the code at the end of the file, or at the beginning – it doesn't matter. FoxyCart will move the <fieldset>
into the checkout form when it loads your checkout page, so it can even be after the </body>
and </html>
tags. Replace “Newsletter” and “occasional updates about our products” with whatever's appropriate for your mailing list.
Save your changes to the checkout template in the FoxyCart admin. Test by adding a product to your cart and going to checkout – you should have a shiny new “Subscribe” checkbox, all primed and ready for your customers to use.
Download the Very Latest from the constantfoxy github repository. Alternatively, download right from the Foxy wiki.