Creates a new product with its variants. Uses upsert logic - will update if product SKU already exists. Products can have multiple variants representing different conditions/grades, each with their own pricing tiers for different contract lengths.
Documentation Index
Fetch the complete documentation index at: https://docs.flexportal.io/llms.txt
Use this file to discover all available pages before exploring further.
productSku already exists, it will be updated instead of creating a duplicate.| Field | Required | Description |
|---|---|---|
productSku | Yes | Unique product identifier (parent SKU) |
name | Yes | Display name |
specification | Yes | Product specification/description |
category | Yes | Product category (e.g., “Laptops”, “Phones”) |
brand | Yes | Brand/manufacturer |
description | No | Detailed product description |
images | No | Array of product image URLs |
variants | Yes | Array of variant configurations |
| Field | Required | Description |
|---|---|---|
variantSku | Yes | Unique variant SKU (used in orders) |
variantName | Yes | Variant name/specification |
grade | Yes | Condition: A, B, C, D, or E |
colorName | No | Color option |
listPrice | No | MSRP/retail price |
acquisitionCost | No | Your cost to acquire |
pricing | Yes | Array of pricing tiers (see below) |
pricing array:
| Field | Required | Description |
|---|---|---|
contractLength | Yes | Contract duration in months (e.g., 12, 24, 36) |
monthlyPrice | Yes | Monthly subscription price |
setupFee | No | One-time setup fee |
discount | No | Discount object with type (“percentage” or “fixed”) and value |
productSku:
| Error Code | Cause | Solution |
|---|---|---|
VALIDATION_ERROR | Missing required fields | Check details array for specific errors |
DUPLICATE_SKU | Variant SKU already exists on different product | Use unique SKUs per variant |
INVALID_PRICING | Pricing array is invalid | Each tier needs contractLength (integer) and monthlyPrice (number) |
API key obtained from FlexPortal dashboard
Your tenant identifier
111111