Products are the backbone of the app.
Creating them ensures:
Orders import correctly and route to the right warehouse and service level.
Inventory stays in sync across channels and locations.
Pricing, tax, and compliance data flow to downstream systems and documents.
Variants and bundles behave predictably during pick, pack, and ship.
You can create products in three ways, depending on your volume and workflow:
Form (fast, single items): Add one product at a time using the Create Product form—ideal for new launches, private‑label items, bundles, or test SKUs.
API/JSON (automated/bulk): Create products programmatically with the Pipe17 API—best for scripted loads from ERPs, PIMs, or custom apps (up to 10 per call).
Integration‑based (catalog managed in channels): When you connect selling channels (for example, Shopify or Amazon), the app automatically imports and updates products from the source system.
Method 1: Creating Products with Forms
Go to Products → All Products and select Create → Create Product.
Complete the fields described below.
Select Save.
Field |
Why it matters / when to use |
Example / format |
|---|---|---|
SKU |
Unique identifier used for orders, inventory, and integrations. Must be unique across your catalog. |
|
Name |
Customer‑friendly name used in UIs and documents. |
|
Types |
Defines how the product behaves in the app and across integrations. Options: Simple (standalone), Parent (groups variants), Child (a specific variant), Bundle (composed of other products). |
|
Status |
Controls availability. Active = eligible for workflows and channel sync (subject to channel options). Inactive = draft/not synced. |
|
Description |
Internal or customer‑facing description for clarity and operations. |
Free text |
External Product ID |
ID from an external system (for example, selling channel or ERP) for record mapping. |
Channel/ERP product ID |
Parent External Product ID |
External ID of the parent product when creating a variant to link the relationship. |
Parent product’s external ID |
External Product Created Date / External Product Updated Date |
Optional timestamps from the source system for auditing and sync troubleshooting. |
ISO‑8601, for example |
Tags |
Keywords used for grouping, reporting, and automation. |
|
Part ID |
Manufacturer or internal part number for purchasing and reference. |
Supplier part number |
UPC |
Barcode value used for scanning, compliance, and channel requirements. |
|
Vendor |
Supplier name used for purchasing and reporting. |
|
For a minimal setup, provide SKU and Name. Add other attributes as required by your operations, channels, or shipping needs.
Method 2: Creating Products via JSON
Create products programmatically by sending JSON payloads to the Pipe17 API.
Go to Products → All Products and select Create → Create Product from JSON.
Paste the code based on the example below.
Select Save.
Essentials
Authentication: Use your API key or OAuth credentials.
Batch size: Up to 10 products per API call.
Schema: Follow the Pipe17 product schema.
Minimal Example
[
{
"name": "Classic T-Shirt – Black, Small",
"sku": "TSHIRT-BLK-S",
"status": "active",
"types": ["simple"]
}
]
Full Example (Schema Illustration)
[
{
"name": "string",
"sku": "string",
"bundleItems": [
{
"quantity": 0,
"sku": "string",
"updatedAt": "2019-08-24T14:15:22Z",
"updatedBy": "string"
}
],
"cost": 0,
"costCurrency": "string",
"countryOfOrigin": "string",
"customFields": [
{ "name": "string", "value": "string" }
],
"description": "string",
"dimensionsUnit": "cm",
"extProductApiId": "string",
"extProductCreatedAt": "2019-08-24T14:15:22Z",
"extProductId": "string",
"extProductUpdatedAt": "2019-08-24T14:15:22Z",
"harmonizedCode": "string",
"height": 0,
"hideInStore": true,
"imageURLs": ["string"],
"internal": {"property1": {}, "property2": {}},
"international": {"currency": "string", "declaredValue": 0, "description": "string"},
"inventoryNotTracked": true,
"length": 0,
"options": ["digital"],
"packingInstructions": "string",
"parentExtProductId": "string",
"partId": "string",
"prices": [ { "currency": "string", "name": "string", "value": 0 } ],
"published": [
{
"integrationId": "string",
"bufferInventory": 0,
"customFields": [ { "name": "string", "value": "string" } ],
"extProductId": "string",
"inventoryNotTracked": true,
"name": "string",
"sku": "string",
"status": "tobepublished",
"updatedAt": "2019-08-24T14:15:22Z",
"updatedBy": "string"
}
],
"sourceDoc": {"content": "string", "contentType": "string"},
"status": "active",
"tags": ["string"],
"taxable": true,
"types": ["simple"],
"upc": "string",
"variantOptions": [ { "name": "string", "value": "string" } ],
"vendor": "string",
"weight": 0,
"weightUnit": "lb",
"width": 0
}
]
Method 3: Integration‑Based Product Creation
When you connect a selling channel (for example, Shopify or Amazon), the app automatically pulls product data inbound to create or update your catalog. The same products can then be synced outbound to fulfillment or ERP systems.
Integration Behavior and Precedence
Source identification: Products keep their source identity (for example, Shopify) in the app.
Master catalog: The app maintains a unified catalog regardless of source.
-
Update precedence:
For products sourced from an integration, the integration is the system of record for fields it manages.
For products created manually or via API, your manual/API updates are the system of record.
Mixed scenarios: a manually created product can later be claimed by an integration if the SKU matches.
-
Conflict handling:
SKU values must be unique; duplicates are rejected.
Channel SKU mapping lets you use different SKUs per integration.
You can disable a product for selected channels.
Common Use Cases for Manual Creation
Business operations
Add products ahead of a launch.
Create private‑label or not‑yet‑listed items.
Configure bundles and kits.
Add test products to validate workflows.
Data management
Standardize product data across channels.
Make bulk updates (CSV) and normalize attributes.
Set channel‑specific SKUs, pricing, or buffers.
Manage parent/child relationships for variants.
Integration setup
Build a master catalog before connecting channels.
Migrate data from legacy systems.
Test custom integrations and mappings via API.
Troubleshooting
Issue |
How to resolve |
“SKU already exists” |
The SKU must be unique. Use a different SKU or remap the channel SKU. |
Can’t save from the form |
Provide at least SKU and Name. Check for required fields in your workflow. |
Incorrect date format |
Use ISO‑8601 timestamps (for example, |
Variant not linking to parent |
For child products, set Parent External Product ID or define the relationship via API. |
Bundle creation fails |
Ensure all component SKUs already exist and quantities are positive. |
API authentication error |
Verify API key or OAuth credentials and required scopes. |
Payload too large or too many items |
Send a maximum of 10 products per API call. |
Unexpected updates from a channel |
The integration may be the system of record. Adjust channel options or change the update source. |
Important Considerations
API limitations: Maximum 10 products per request; use proper authentication; follow the product schema.
Integration harmony: Manual and integration‑sourced products coexist. Channel options give you granular control per integration.
Flexible order of operations: You can create products manually first and connect integrations later, or connect integrations first and then add products—your catalog remains unified.
Need Help?
If you need additional assistance:
Use Ask Pippen, our AI agent, located at the top of the app page.
Submit a support request with as much relevant detail as possible. Learn how to submit a request.
For urgent issues, email us directly at support@pipe17.com.
We're here to help you succeed with your operations.
Comments
0 comments