Products and Customers

Mark Johns's Avatar

Mark Johns

03 Jan, 2018 08:22 PM

I created a new product and saw that my previously built customer is not applicable to it (shows 0 customers).
Don't your products and customers have a "many-to-many" relationship? I mean, I'm hoping that I don't have to add customers for each new product. I would simply want to subscribe some existing customers to a new product/pricing-plan. Also, I would expect a single customer invoice to list all products they are subscribed to.


  1. Support Staff 1 Posted by Meghan Turner on 04 Jan, 2018 03:32 PM

    Meghan Turner's Avatar

    Hey Mark,

    As the top level in the Cheddar data hierarchy, product accounts are separate and distinct by design. Generally, your Cheddar product account can contain the billing structure and customers for your entire business entity. What we call a product in Cheddar doesn't necessarily equate to one of the products that your business is selling. You can create multiple pricing plans and tracked items within a single Cheddar product account to charge for the different products or services your business offers.

    Cheddar has a many-to-many relationship between product accounts and Cheddar users (each user of Cheddar can create or use multiple product accounts, each Cheddar product can have multiple users). Customers are unique to each product account. You can transfer some customer information between products using the import API if needed, but customers invoice history will remain in their original product and isn't combined with new products.

    However, there are some instances where you might want to have multiple Cheddar product accounts. There are two typical use cases:

    1. You charge in multiple currencies. Each product account has a single currency associated with it, so if you'd like to charge in USD and CAD, for example, you'd need a product account for each of those currency types.
    2. You're using Cheddar for multiple business entities that each have unique pricing structures, don't have much or any overlap between customers, and/or need to process payments through separate gateways or bank accounts.

    Based on your comment, it sounds like you may have a unique use case. If you tell me a little bit more about the pricing structure you need, I can make some recommendations about the best way to execute it in Cheddar.


  2. 2 Posted by Mark Johns on 04 Jan, 2018 04:23 PM

    Mark Johns's Avatar

    I hope I understand what you mean here. But if that’s the case, wouldn’t the “add-item-quantity” call have a place for specifying the pricing plan? In the doc I read, in the base URL, it accepts:
    code (for the customer)
    itemCode (for the tracked item)

    I don’t see a place to specify the pricing plan code though. Perhaps there is a planCode parameter that is not documented there?

    Here is a screenshot of your doc where I am reading this.


  3. Support Staff 3 Posted by Meghan Turner on 04 Jan, 2018 04:38 PM

    Meghan Turner's Avatar

    Customers can only be subscribed to 1 pricing plan at a time, so there's no need to specify the pricing plan code when you update an item. As long as you specify the params listed in the docs, the add item call will successfully update the customer's pending invoice (or return one of these error responses to indicate that the customer's current pricing plan doesn't include enough of that item).


  4. 4 Posted by Mark Johns on 04 Jan, 2018 04:52 PM

    Mark Johns's Avatar

    Ok. So you can call at 4:30 today?
    301 523 3590


  5. Support Staff 5 Posted by Meghan Turner on 04 Jan, 2018 04:53 PM

    Meghan Turner's Avatar

    Will do! Talk to you later.


Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:


Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac