FoxyCart's email receipts include almost everything in the web receipt, as well as any additional text you have configured in your receipt template(s). (You can see an example receipt to the right.) The major difference between the web receipt and the email receipts is that email receipts have specific sections that are only included in certain situations. We recommend you go to your FoxyCart admin, hit the “email” menu item, and review the code there are you follow along. A portion of the cheat sheet is included at the bottom of this page with details of the placeholders used.
A “transaction email receipt” is what you'd probably consider to be a “normal” receipt. It's the main content section of a typical receipt, and will generally include the cart contents (via the ^^cart^^
placeholder) and transaction information (customer name, email, address, shipping info, etc., via the ^^receipt^^
placeholder).
Important to note is that the ^^cart^^
placeholder will include a block of text (customizable in your store's language section) with subscription-specific links if a subscription is present in the cart. By default, these links will allow your customers to update their payment information or cancel their subscriptions straight from the email receipts they're already receiving. If you're doing recurring billing through FoxyCart we strongly recommend taking a look at that text, and running a few test orders.
The transaction email receipt will include everything that's part of the web-based receipt that is displayed to the customer after a successful transaction (in their web browser).
Breaking up is hard to do, so FoxyCart allows for a customizable section to be included if (and only if) the email receipt is for a subscription cancellation. This will help you make it clear to the customer that their subscription has been set to cancel. These are sent only after a subscription has been successfully canceled through the checkout process. These emails will not send if a subscription is set to end or set to be inactive via the API.
When a customer updates their information with the ''updateinfo'' flag, this section is included in the email receipt. In this case you likely will not want to include the ^^cart^^
placeholder, instead opting to describe that their information has been updated, if they have any questions to get in touch with customer service, or etc.
The customer. If you have a “receipt email subject” configured in your store's “email” section, the customer will receive an email receipt for any transaction run on their account, including every time their account is billed for any recurring billing they have.
The store. If you have the “BCC store email address” checkbox checked in your store's “email” section, the store email address (as configured in your store settings) will receive a BCC copy of the email address. Note that this is a straight BCC copy, and looks identical to the customer's email receipt. If you're testing with an email address that goes to the same place as the store's email, you likely will only see one email receipt, since many mail servers would discard the extra copy as a duplicate.
Other addresses. If you'd like to send receipts to more than one person at your organization, just add additional emails to the “store email(s)” field in the “store settings” page in the admin. Separate emails by commas. You can also see the category specific email receipts section below for info on sending to other email addresses.
The default HTML email receipt template is visible at the right, but you can fully customize your email receipt much like you'd do with any other template on your store. The big difference is that email formatting is stuck in the 1990s, so you'll want to brush up on HTML email formatting. CampaignMonitor has fantastic templates and resources for CSS support in HTML emails that we highly recommend.
Also, please vote for this feature request, which will allow more intelligent use of inline CSS for your email receipts.
FoxyCart allows additional emails to be configured per category. The first option is to enable an additional customer email, which could be useful if a specific product category required extra information like conference registration information, special shipping or pickup information, or a request for additional information. The section option is for an additional admin email to be sent, which could be useful if sales of certain products need to notify specific departments within an organization.
Also, please vote for this improvement to category-specific emails if you feel that'd help you better use them.
Email receipts are sent only in the following two situations:
If you didn't receive an email receipt that you think you should have, please follow the steps below to ensure we've ruled out the common causes before you contact support.
By default, FoxyCart sends emails according to OpenSPF best practices, and also uses both DomainKeys and DKIM to ensure mail sent from our systems are verified at the strictest level. Because of the approach we've taken to SPF, there are no SPF records you need to add to your domain's DNS.
That said, this default approach does use an @foxycart.com address in the Sender
header, which can cause Microsoft mail clients like Outlook and Hotmail to display mail as sent “on behalf of” when viewing the message details. It looks like this:
This behavior is incorrrect, but Microsoft has done it for years and from all appearances they have no desire to change it. Google also recently started doing something somewhat similar (though more “correct” and in a more intelligent manner) by adding a “via” heading.
So because of all this we strongly suggest going to your “advanced” section in your FoxyCart admin and enabling the “enable email DNS” checkbox. This checkbox tells FoxyCart not to use the Sender
header, thereby eliminating this behavior from Microsoft mail clients.
However, because the Sender header is important for deliverability (ie. getting the email into the inbox and not the spam folder) when FoxyCart is “spoofing” your store's domain, if you enable this behavior you should also add FoxyCart to your domain's SPF record. If you already have an SPF record, simply add the following to it:
include:_spf.foxycart.com
If you don't already have an SPF record, you'll need to create one. While the details of creating an SPF record go beyond what we can provide here, you can generally pretty easily ask your host for help, or Google for records to use. For example:
_spf.foxycart.com
in the “Outsourced Domains” section in step 3.
In addition to SPF, you'll also need to add a quick TXT
record to ensure the DKIM validation passes. This is a bit easier, as you'll just have to add the following as a TXT
record to any domains that FoxyCart is sending mail from. So if your store is sending email from orders@example.net
, you'd add this:
k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPtW5iwpXVPiH5FzJ7Nrl8USzuY9zqqzjE0D1r04xDN6qwziDnmgcFNNfMewVKN2D1O+2J9N14hRprzByFwfQW76yojh54Xu3uSbQ3JP0A7k8o8GutRF8zbFUA8n0ZH2y0cIEjMliXY4W4LwPA7m4q0ObmvSjhd63O9d8z1XkUBwIDAQAB
to smtpapi._domainkey.example.net
.
Replace the example.net
with your domain.
If you are setting these manually and not using a web-based control panel you may need to wrap them in quotes.
Again, it is very important that you complete these steps in order to prevent your FoxyCart-generated receipt emails from ending up in your customers' spam folders.
All of the following placeholders have separate outputs for HTML and text based emails. Some of what these placeholders output can be modified in the “language” section of your FoxyCart admin.
^^receipt^^
^^checkout^^
may also be used, and behaves identically.^^cart^^
^^order_id^^
^^receipt_url^^
^^store_domain^^
^^store_name^^
^^store_logo^^
^^order_begin^^
^^order_end^^
update_info
or sub_cancel
(subscription cancellation).^^subscription_cancel_begin^^
^^subscription_cancel_end^^
sub_cancel=true
).^^subscription_modification_begin^^
^^subscription_modification_end^^
sub_token
is used in a manually processed transaction.^^sub_token_url^^
sub_token
URL.^^updateinfo_begin^^
^^updateinfo_end^^
update_info
request (and not a normal transaction or a subscription cancellation).