Fulify API: control sync per product, pick a key by what it's for, and create variants
Three things integrators have asked for: deciding from your own system what reaches your channels and Linnworks, simpler key permissions, and creating variants rather than only updating them.
Control sync per product with sync:write
A new scope, sync:write (shown as Control sync in the app), lets POST /v1/products set three fields per product:
isActive— the product's master Sync switch.syncEnabled— Channel Sync.destinations— for example{"linnworks": true}to opt a product into Linnworks.
All three take strict booleans. A request that includes any of them without the scope is refused as a whole with 403, so nothing is half-applied.
The response reports what will actually be sent to Linnworks, and only switching a product from off to on queues it for Linnworks.
Keys are created from presets
When you create a key in Settings → API Keys, you now choose what it's for:
- Read only — look, never change. For reports, audits and checking data against another system.
- Edit catalogue — read and change products and size charts. It can't switch sync on, so nothing reaches a live system.
- Full integration — everything, including turning Channel Sync and Linnworks on or off. For an ERP or order management system that decides what goes where.
- Custom — pick individual permissions.
New keys start as Read only. GET /v1/me now includes the key's access.
Create variants with POST /v1/products
A variant SKU that doesn't match an existing variant used to be reported as unmatched. If you send it with options, it's now created. Any option values it needs that don't exist yet are created too and listed in createdOptionValues.
A variant with a blank price gets the product's base price on Shopify, instead of being created at 0.00.
Duplicate SKUs are refused, not guessed
- If a variant SKU in your request matches more than one variant on the product, it's returned in
unmatched[]with the reason "matches more than one variant", rather than one of them being picked. - A new variant whose SKU already belongs to another product is refused.