Products are a catalog level object used in two ways. The primary way is as a building block for products in a plan (plan products) which then become products in a subscription (subscription products). They can represent one-time charges, physical goods, or recurring services. Importantly, they can also be given a GL (General Ledger) code to categorize their revenue and allow for reporting under common labels.
The second way products are used is as the basis for purchases. If a product is set to be available for purchase, pricing information can be provided for the product to be purchased outside of the usual plan/subscription model.
Product Object Fields
Property | Type | Description |
---|---|---|
code | String | The product code defined through the UI. Fusebill enforces uniqueness for this value. [Max length: 1000 characters] |
name | String | The name of the product. [Max Length: 100 characters] |
description | String | The description of the product. [Max length: 1000 characters] |
productType | Enum:{RecurringService, PhysicalGood, OneTimeCharge} | physical goods and one-time charges do not recharge after the first charge |
status | Enum: {Active, Retired} | Only active products can be purchased or added to plans |
taxExempt | Boolean | If true, this product is exempt from taxes. Applies to both direct purchases and plan inclusions. |
orderToCashCycle | Object. Defined below | An object describing pricing and earning details for product if purchasable |
availableForPurchase | Boolean | Controls whether this product can be purchased outside of a plan. |
isTrackingItems | Boolean | Controls whether purchases of this product are tracked items or not. This is for purchases outside of a plan. |
quantity | Decimal | The default quantity for when this product is purchased outside of a plan. |
avalaraItemCode | String | The Avalara item code for this product |
avalaraTaxCode | String | The Avalara tax code for this product |
glCode | String | The general ledger code for this product. [Max Length: 255 characters] |
productCustomFields | Object. See Catalog: Custom Fields Object for details | The only difference is that the custom field has a defaultValue instead of a Value |
deletable | Boolean | A product can only be deleted if there are no purchases or plan products using it. Otherwise it must be retired. |
salesforceId | String | The ID of the product in Salesforce. This field is only populated if you are using the Fusebill Salesforce plugin. |
netsuiteItemId | String | The NetSuite Item this product maps to. For the NetSuite plugin. |
id | Integer | The Fusebill generated ID uniquely identifying this product object [Read Only] |
uri | String | The full string path to this resource [Read Only] |
Order To Cash Cycle Fields
Property | Type | Description |
---|---|---|
earningInterval | Enum: {Monthly, Yearly} | Indicates whether the custom earning period (if a custom earning period is being used) is measured in years or months when this product is purchased outside of a plan |
earningNumberOfIntervals | Integer | The number of earningInterval s that constitute the period this purchase earns over when this product is purchased outside of a plan |
earningTimingInterval | Enum:{Daily, Monthly, Yearly, Interval, DoesNotEarn, EarnImmediately} | Indicates how to divide the custom period if a custom period is being used, indicates the purchase does not earn, or indicates that the purchase earns immediately. This is for when this product is purchased outside of a plan |
earningTimingType | Enum:{StartOfInterval, EndOfInterval, DoesNotEarn} | Indicates where in the interval the earning occurs, if custom earning periods are being used. This is for when this product is purchased outside of a plan |
pricingModel | Object. Defined below | Defined pricing for this product when purchased outside of a plan |
Pricing Model Fields
Property | Type | Description |
---|---|---|
pricingModelType | Enum: {Standard, Tiered, Stairstep, Volume} | Dictates how the price is calculated using the quantity. This is for the purchase object created when this product is purchased outside a plan |
quantityRanges | List of Objects. Defined below. | A collection of ranges that control the price of the purchase based on its quantity field. |
Quantity Ranges Fields
Property | Type | Description |
---|---|---|
min | Decimal | The lower bound for the value of quantity . If the purchase of this product has a quantity in this quantity range, the price in prices matching the customer's currency is used. |
max | Decimal | The upper bound for the value of quantity .If the purchase of this product has a quantity in this quantity range, the price in prices matching the customer's currency is used. NULL means infinity |
prices | List of Objects. Defined below. | A list of prices based on each configured currency. |
Prices fields
Property | Type | Description |
---|---|---|
amount | Decimal | The price in units of the currency . |
currency | String | The 3 character ISO code of the currency this price is measured in. |