v1.0Upgrading & New Pricing

Upgrading to FoxyCart v1.0+ will prompt you to select a new pricing plan. To read about why we have made this pricing change, please see our initial discussion and our followup with improvements.

This new pricing could result in a price reduction for the large majority of our users, as we now offer non-profit discounts, unlimited options (multiship, downloadable storage space, etc.), and an annual discount. If, however, you would like to remain on your current pricing please contact us and we may be able to extend legacy pricing for you.

Please view the upgrade notes in the wiki. If you have any issues with v1.0.0 please let us know.


System Wide

  • Added Twig syntax support for all templates. This feature is very advanced, and gives you complete control of your store’s output instead of just using ^^cart^^ and ^^checkout^^ in your templates (cart, checkout, receipt, and emails). More info.
  • Zip Code based tax rates are now supported in the United States. More info.
  • Greatly improved country and state/province autocompleter on the checkout. Includes country flags, and radically improved autosuggestion based on language and locales and partial matches. It also correctly sets the “state” field per country, so for Canada it will change to “Province”, UK has “County”, and etc.
  • Increased use of our CDN to improve pageload speeds on nearly all FoxyCart-generated pages.
  • Many new gateways, including FatZebra, Litle, PayGate, PayLine 3D Secure, SecureTrading, Durango, and others (all added to v0.7.2 as well).
  • A new place holder for a custom cart twig include ({{ custom_cart }}) was added to let you customize your cart across multiple templates.

New Gateways

API & XML Datafeed

  • The API filters for transaction_date_filter_begin and transaction_date_filter_end now correspond to the store timezone settings, not the server timezone.


  • It is now required to set a separate receipt template in the admin instead of just using a single checkout template for both.
  • The transaction date filters in the admin now correctly use the store timezone settings when filtering transactions for viewing or exporting.
  • Context-specific documentation is now throughout the admin on the left column.

Language Updates

  • Added: checkout_location_state, checkout_location_canton, checkout_location_county, checkout_location_province, checkout_update_shipping_message
  • Deprecated: checkout_update_shipping_pre_message, checkout_update_shipping_post_message

Improvements, Notes, & Bug Fixes


  • Subscriptions now properly charge the flat rate shipping costs with each transaction. Also, the shipping amounts can be modified using the edvanced edit in the admin or via the API.
  • You can now configure your store to not automatically charge past due amounts. Just go to the advanced settings page to turn this feature off (it’s on by default).
  • If a subscription was added to the cart prior to midnight and then the customer later checked out the next day, the subscription would calculate as a future subscription instead of charging the correct amount to the customer. This has been patched back to version 0.7.2.


  • New admin users created via the “add user” menu now received a better email with login details.
  • Removing the email address from the shipping section of the receipt when the billing and shipping addresses are the same since there isn’t really a separate shipping email address.
  • Fixed download links in emails resent via the admin to show the correct store domain (patched back to 0.7.2)
  • Added a “check all” option on the admin category page to check all the applicable tax options (patched back to 0.7.2).
  • Improved the admin “forgot password” functionality.
  • Fixed a bug in the checkout password reset functionality impacting email addressess with underscores (patched back to v0.6.0).
  • The store domain value is now forced to lower case (patched back to all versions).

Cart, Checkout, & Receipt

  • When a product quantity is 1 (and only 1), the “each” portion is no longer displayed in the cart. So no more “$10 ($10 each)”.
  • Adding multiship custom fields to the receipt.
  • If you use cart=checkout but there’s an error processing the cart request (such as an expired sub_token or product add error), instead of showing a blank page, we know show the cart template full screen with the error message.
  • Update to the standard CSS theme file to include “cancel subscription”, “update my subscription” and “update my account” buttons, depending on the checkout activity.
  • When a category percentage discount and a product percentage discount were used together, the discount was slightly off as it applied to the discounted product amount instead of the original product amount (patched back to 0.7.2).
  • Revisited receipts were not correctly including the hidden custom_fields in the cart json (patched back to 0.7.2).

Miscellaneous Changes

  • cc_type was not properly saving or being updated on the customer record after each transaction. This has been fixed and patched back to version 0.7.0.
  • Fixed the customer_save action to prevent accidental overwriting of existing customers. Patched back to v0.7.1.
  • Updated the transaction_template XSD file to include an optional shipping_total node along with optional shipto_costs with shipto_cost nodes each with id, shipto, shipping_cost.
  • When doing a subscription_list API call, if one of the subscriptions had a third_party_id from PayPal, each subscription returned after it would show the same data as that subscription. The issue has been fixed and patched back to version 0.7.0.
  • Addded a base_price node to the cart JSON that does not include discounts or product modifiers to the product.
  • Added a product category filter option in the admin and via the API for transactions and subscriptions. (Patched back to 0.7.2.)
  • For all default language strings, and were replaced with and .
  • Fix for a unique edge case where a $0 order with a coupon associated to only part of the order may return an applied tax of 0.0000000001
  • Fix for coupon price discounts that were not being constrained to the correct categories. Extended this fix to quantity based price discounts as well.
  • Fix for FedEx Ground showing up for international shipping when it shouldn’t. A new International Ground option was added for that case (patched back to all versions).
  • Fix for shipto addresses showing empty date_created and date_modified fields in the XML (patched back to all versions).
  • When doing an empty=true on the cart without first having a product in the cart, the selected locale for the store was not showing the currency symbol correctly. It was displaying 0.00 instead of $0.00 (patched back to 0.7.2).
  • Added Terminal ID to Orbital gateway. (Patched back to v0.7.2.)
  • When a category percentage discount and a product percentage discount were used together, the discount was slightly off as it applied to the discounted product amount instead of the original product amount (patched back to 072).
  • Revisited receipts were not correctly including the hidden custom_fields in the cart JSON (patched back to 0.7.2).
  • The coupon code used is now displayed in the cart along with the coupon name for all templates (cart, checkout, receipt and email)
  • Added a sub_token_filter option for the transaction_list api action.
  • Exporting transactions from the admin that include multiship data now properly exports the shipping address information for each line item.
  • When emptying the cart with a cart=empty, session variables with the “h:” prefix are now cleared out as well.
  • Due to a change to an associative array for the countries javascript object (FC.locations), custom scripts using an iterator based loop (like ‘for (var i = 0; i < countries.length; i++) { }') to navigate the countries will no longer work. Instead you can reference the country you are looking for directly by its ISO 3166-1 alpha-2 code like 'US', 'GB' etc. If you need to loop over all of the countries, you can do that using a key-value loop like 'for (var code in countries) { }'. The structure went from [{...},{...},{...},...] to ["AZ": {...}, "AU": {...}, ...].
  • FedEx live rates using registered accounts were returning the wrong rate information at times. We've fixed this in 1.0 so your account rates should now display correctly.