Product Types
Chariow supports several product types:| Type | Description |
|---|---|
downloadable | Digital files that customers can download after purchase |
course | Online courses with structured chapters and lessons |
license | Software licenses with activation and validation management |
service | Digital services, consultations, or custom work |
bundle | A collection of multiple products sold together at a discounted price |
Product Categories
Products are organised into the following categories:| Category | Value |
|---|---|
| Creative Arts | creative_arts |
| Technology | technology |
| Business and Finance | business_and_finance |
| Personal Development | personal_development |
| Education and Learning | education_and_learning |
| Entertainment | entertainment |
| Health and Wellness | health_and_wellness |
| Literature and Publishing | literature_and_publishing |
| Media and Communication | media_and_communication |
| Miscellaneous | miscellaneous |
Product States
Products can be in different states:- Draft - Not visible to customers, still being edited
- Published - Available for purchase on your store
- Archived - No longer available but kept for records
The Public API only returns published products. Draft and archived products are not accessible via the API.
Listing Products
Retrieve all published products for your store with optional filtering:Query Parameters
| Parameter | Type | Description |
|---|---|---|
per_page | integer | Number of products per page (default: 10, max: 100) |
cursor | string | Pagination cursor from previous response |
search | string | Search by product name or slug |
category | string | Filter by category (e.g., technology, education_and_learning) |
type | string | Filter by type (e.g., course, license, bundle) |
Pagination
The API uses cursor-based pagination for efficient data retrieval:Example Response
Getting a Single Product
Retrieve detailed information about a specific product by its public ID or slug:Product Details
The single product endpoint returns comprehensive information including:- Pricing: Current price, base price, sale price (if applicable), and discount percentage
- Images: Thumbnail and cover images
- Ratings: Average rating and number of reviews
- Sales: Sales count (if not hidden)
- Quantity: Stock information (if product has limited quantity)
- Bundle: Savings information for bundle products
- Custom Fields: Additional product fields (when loaded)
- SEO: SEO metadata (when loaded)
Pricing Types
Products can have different pricing models:One-Time Payment
One-Time Payment
A fixed price that customers pay once to access the product. This is the most common pricing type.
Pay What You Want
Pay What You Want
Customers choose how much to pay, with an optional minimum and suggested price. Useful for donations, tip-ware, or customer-driven pricing.
Free
Free
Products available at no cost, often used for lead generation, freebies, or sample content.
Sale Pricing
Sale Pricing
Products can have temporary sale prices with an expiration date. The
current_price reflects the active price.Product Bundles
Bundles combine multiple products at a discounted price. When retrieving a bundle product, you’ll receive information about the total bundle value and savings:The
bundle.value shows the total value if all products were purchased separately, whilst the pricing.current_price shows the discounted bundle price. The bundle.savings shows how much customers save by purchasing the bundle.Working with Product Data
Filtering Products
You can combine multiple filters to refine your product queries:Understanding Ratings
Products include rating information with the average score and total count:- average: Rating from 0 to 5
- count: Total number of ratings received
Stock Quantity
For products with limited stock, thequantity field provides detailed information:
quantity: null.
Price Formatting
All price objects include three fields for flexible display:- amount: Decimal number (e.g.,
99.00) - currency: ISO currency code (e.g.,
USD,EUR,GBP) - formatted: Ready-to-display string (e.g.,
$99.00,£99.00,€99.00)
Common Use Cases
Building a Product Catalogue
Displaying Sale Products
Finding Popular Products
Best Practices
Use Cursor Pagination
Use Cursor Pagination
Always use cursor-based pagination instead of fetching all products at once. This ensures efficient data retrieval and prevents timeouts.
Cache Product Data
Cache Product Data
Product data doesn’t change frequently. Consider caching products locally and refreshing periodically to reduce API calls.
Handle Missing Images
Handle Missing Images
Not all products have thumbnail or cover images. Always check for
null values before displaying images.Display Formatted Prices
Display Formatted Prices
Use the
formatted field from price objects for display purposes. This ensures proper currency formatting and symbols.Check Sale Expiration
Check Sale Expiration
When displaying sale prices, verify that
on_sale_until is in the future to avoid showing expired sales.