This is an old revision of the document!


FoxyCart Developer Partner Guidelines for 3rd Party Integrations

We set out to empower web professionals with an e-commerce platform that would work with them and their existing tools, rather than try to make them fit into our box. Because of this, FoxyCart isn't turn-key and intentionally doesn't do a lot of things. That said, it's important that the average web professional not go reinventing the wheel to integrate FoxyCart into their CMS of choice, so we appreciate any third-party integration bringing FoxyCart support to a new user group.

In order to make third-party integrations as successful as possible, while simultaneously striving for user satisfaction and transparency of expectations, we have created the following guidelines for third-party integration developers.

Please give this page a read if you're already supporting, or are considering releasing and supporting, anything that uses FoxyCart to power e-commerce with another system you intend to release to the public. We'd rather set clear expectations up front than have you spend months building something only to learn that our company's culture is fundamentally incompatible with yours.

Communication with FoxyCart (We're Here to Help!)

We value all feedback we receive from our users, but we especially value feedback from our integration partners. We will do everything we can to clearly communicate our current and future plans with you, and we appreciate you keeping us in the loop as well. If you have a big new release or feature coming, let us know! We'll blog about it or otherwise promote it if we are able.

Similarly, if you have constructive criticism, tell us. We're generally very blunt on our end, so you don't have to sugarcoat your words. We try not to assume that all our developer partners appreciate that same level of frankness, but if we see an area that could be improved in your product, service, or business process please don't be offended if we bring it up.

Our goal here is to help make your life as easy as possible with your integration. If you're running into a problem, let us know. If you think something could be done better, we'd love to hear. The odds are good that we have it on our roadmap already, or that we can help you improve your approach to avoid a particular problem. We don't want to tell you what to do, but we do want to be as available as possible for any questions you have.

Naming your FoxyCart Integration

Why This Is Important to Us

Let's take a make believe CMS named FooCMS. The natural inclination is to name an integration something like Foo+FoxyCart or FoxyFoo or something like that that actually uses “FoxyCart”, “Foxy”, or a derivative of the FoxyCart name.

This presents at least two causes for concern:

  1. The use of the “Foxy*” in the name implies (to many) that it may be an official integration created by FoxyCart.com LLC.
  2. It can confuse expectations with regard to support, maintenance, updates, bugs, etc. If the integration is confused with FoxyCart itself then people can easily get frustrated by being bounced around support forums, wondering why they need both FoxyCart and the 3rd-party code, wondering why we can't answer questions or fix bugs in an integration, etc.

However, disallowing the use of our trademark and discouraging the use of “Foxy” or homonyms presents very real problems as well:

  1. It makes it more difficult for integrations to take advantage of FoxyCart's brand recognition, which will (likely significantly) hurt adoption.
  2. It forces integrations to come up with a unique name, which at least conceptually decouples the integration from being built expressly for FoxyCart. (ie. FoxyFoo wouldn't make sense to add support for non-FC options like PayPal Standard, PayPal Express Checkout, Google Checkout, or etc., but “FooBarCart” could more naturally proceed in that direction.) While our goal with FoxyCart is to encourage people to choose the best option for them even if it's not FoxyCart, it is problematic for us if a 3rd party builds an integration using FoxyCart's brand and reputation and userbase then supplants FoxyCart. (We're being very open and honest here. Hopefully it doesn't sounds like we're greedy bastards.)

We've worked very hard building our brand and our reputation, so we take it very seriously. At the same time, we really want to help anybody building a 3rd party integration to succeed (and profit, via our developer affiliate program).

The Requirements for Naming Your FoxyCart Integration

To address the concerns above in a way that we believe is a win-win for everybody, we have some restrictions and requirements for integrations built with FoxyCart support. We believe that these guidelines will help your integration take advantage of our brand while minimizing potential confusion for users.

There are two separate scenarios when discussing an integration:

  1. An integration that is built exclusively for FoxyCart, requires a FoxyCart store to function, and does not (both currently and in the future) support any other e-commerce platform. We will call these “exclusive” integrations.
  2. An integration or service that integrates with FoxyCart, but may also integrate with other payment or e-commerce systems. We will call these “non-exclusive” integrations.

Exclusive Integrations

For exclusive integrations, the use of the following is acceptable with approval from FoxyCart and provided that the integration remains exclusive.

  • “FoxyCart”;
  • “Foxy”1);
  • “Fox”;
  • any words, letters, alternate spellings, or abbreviations similar to the above; and
  • any homonyms of the above

For example, if an integration is named “FooCMS + FoxyCart”, it cannot function without a valid FoxyCart store account (such as if it could use PayPal Standard or Google Checkout without FoxyCart).

It is important to note that if “FoxyCart” is used in an integration name it cannot be trademarked, as “FoxyCart” is a registered trademark of FoxyCart.com LLC.

Non-Exclusive Integrations

For non-exclusive integrations, the use of “FoxyCart” or any of the above bullet points is not allowed, as it will very likely confuse users of both your system and ours. Non-exclusive integrations can use the FoxyCart name in listing supported systems, but cannot use the FoxyCart name in the name of the integration itself.

If the integration has separate modules or other elements through which the FoxyCart support is added, they must be clearly labeled as “FoxyCart” (and not any abbreviations or other modifications). For example, if “ProductFoo” has a module to add FoxyCart support, it should be called “FoxyCart for ProductFoo”, and not “FoxyFoo”.

Clarifying the Relationship with FoxyCart

For both exclusive and non-exclusive integrations we require the following (unless an exception is approved):

  • A link to FoxyCart in the footer of any pages discussing FoxyCart, including the phrase “FoxyCart is a trademark of FoxyCart.com LLC.” We recommend linking the word “FoxyCart” to http://www.foxycart.com/
  • A paragraph in the “About” section of the integration clearly stating that FoxyCart is a separate system. We are open to how this is presented, but the goal is to prevent confusion between where FoxyCart ends and your integration begins. We recommend the phrase “integrates with FoxyCart” or something similar be used to clarify the relationship to FoxyCart.

Please get in touch if you have any questions about this.

Customer Service, Support, and Expectations

We at FoxyCart strive to go above and beyond in our customer service. Our primary goal is to serve our users, as we believe that that is the best way to develop fanatical users that will reciprocate by providing honest feedback and criticism, as well as tell their colleagues about FoxyCart. This word of mouth is how FoxyCart has grown, and as such we are very protective over our reputation and brand.

We expect all third-party developer partners to adhere to a basic level of customer service guidelines:

  • Set clear expectations up front. If you provide phone support, the phones shouldn't be unanswered. If you provide email support, you shouldn't have users complaining about getting in touch with you. If you only provide forum support, make sure that's clearly communicated and that the forums are manned by an official team member or member of the community who can answer questions. If no support is provided make it extremely clear so you don't get angry users talking trash about not only your code but also about FoxyCart.
  • The user isn't always right, but neither are you. We know how funny (read “frustrating”) it can be sometimes, but if you stick it out you'll often find that even in the most incoherent rant there's a gem of truth that you can use to improve your product or service.

Again, if we're in bed together, it's critical to us that you treat your users well. We strive to go above and beyond with our users, and we will wholeheartedly recommend a service that we hear good things about.

The flipside is that we will not recommend a service that we hear bad things about, even if it goes against our financial self-interest to do so. We'd rather turn a user away before they get started than risk having upset and vocal users talking about their bad experience.

Exclusivity, Recommendations, and Expectations

FoxyCart is, by design, only a piece of any full e-commerce site build. This allows us to focus on what we do best while allowing you to use the tools you prefer. This also leads to many people reinventing the wheel to suit their own particular purposes. Because FoxyCart was designed from the ground up to be integrated with 3rd party systems, there is a strong possibility that somebody else is working on a FoxyCart integration with your CMS of choice, and we have already seen two separate web development teams settle on the same name for their integrations.

Because of this potential for conflict, and because we were built to integrate in the first place, we at FoxyCart do not make exclusive arrangements. Any developer is free to create an integration using FoxyCart's publicly available services.

Similarly, we at FoxyCart will recommend multiple options to our users based on what they ask for and what we understand about the available integrations. We also often recommend alternatives to FoxyCart entirely if the user is asking for things that FoxyCart just isn't suited for (like a complete turnkey solution, a multi-currency store, etc.). This is nothing personal; rather, it's an effort to always provide potential users with the most honest and helpful response we can, even if this means the user isn't right for FoxyCart at the end of the day.

If you believe that exclusivity is required for your business model please get in touch with us to discuss it. There may be other options worth discussing (such as whitelabeling and volume pricing, which is in our plans for a future release), and we want to fully understand your needs.

FoxyCart Functionality and Features

As we continue to innovate and upgrade FoxyCart, your integration will need to be updated to take advantage of those new features. While synchronizing development schedules is likely impossible, we will try to alert all of our integration partners about new features and functionality before they are officially launched. We also try to provide early beta access to new versions prior to release (and sometimes prior to public beta), and generally will keep a release in beta for at least a month to allow for your testing and feedback.

Your integration should wherever possible use FoxyCart-native functionality rather than creating similar functionality independent of FoxyCart. For example, since FoxyCart supports functionality like quantity discounts, coupon codes, HMAC price validation, UPS/FedEx/USPS live shipping rates, 3dsecure, PayPal Express Checkout, product thumbnail images in the cart, downloadable products, extensible JSONP callbacks, and etc., your integration should utilize the native FoxyCart functionality rather than creating your own.

This will prevent confusion stemming from two different (possibly conflicting or feature-incompatible) ways to accomplish the same goal, and will allow you to use the FoxyCart documentation in your own documentation if necessary.

If you have a compelling need to not use FoxyCart's native functionality, please discuss your requirements with us so we can understand the limitations and work together on a more flexible solution.

In Closing... Have Fun!

We know that this is a long and heavy document, but our goal is to make sure all the issues are discussed up front. Again, our goal is to have as clear and constant communication with you as possible to ensure success for your integration. If you have any questions at all please don't hesitate to get in touch with us. We're here to help, and we are excited about every advanced integration that comes through our inboxes.

We want to be friends, and we want to learn from your approach while helping you meet the needs of your own users.

Thanks. Brett and Luke Co-Founders, FoxyCart.com

1)
While we cannot legally prevent the use of “Foxy” in 3rd party integration naming, we will not allow improperly named integrations into our partner program nor will we publicize or advertise for them. We aren't trying to be jerks, but we have a legal responsibility to protect our brand and registered trademark.

Site Tools