Skip to main content
PATCH
/
api
/
plans
/
{type}
/
{id}
/
items
curl --request PATCH \
  --url https://app.solya.app/api/plans/{type}/{id}/items \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "changes": {
    "var-uuid-adidas-jogger": {
      "size-uuid-l": 6,
      "size-uuid-m": 12
    }
  },
  "planType": "RESTOCK",
  "reason": "Revised order quantities",
  "shopId": "shop-uuid-paris-01"
}
'
{
  "updated": 1
}

Authorizations

Authorization
string
header
required

User session token issued by NextAuth. For human users accessing Solya via the web application.

Path Parameters

type
enum<string>
required

Plan type. One of: RESTOCK, REBALANCE, MARKDOWN, SUPPLIER_RETURN, SUPPLIER_EXCHANGE, PRE_SEASON

Available options:
RESTOCK,
REBALANCE,
MARKDOWN,
SUPPLIER_RETURN,
SUPPLIER_EXCHANGE,
PRE_SEASON
id
string<uuid>
required

Unique identifier of the plan (UUID)

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Query Parameters

page
integer

Page number (1-based)

Required range: x <= 9007199254740991
pageSize
integer

Items per page

Required range: x <= 9007199254740991

Free-text search across variant/product/size labels

side
enum<string>

Filter by exchange side (RETURN or RECEIVE); only applicable for SUPPLIER_EXCHANGE

Available options:
RETURN,
RECEIVE

Body

application/json
changes
object
required

Map of variantId → sizeId → new quantity. Example: {"var-uuid": {"size-uuid": 10}}. Setting a quantity to 0 removes the item for that variant/size/shop combination.

planType
enum<string>
required

Must be RESTOCK to match the plan type in the URL

Available options:
RESTOCK
shopId
string
required

Shop ID owning the items to update (used to scope the update)

Minimum string length: 1
reason
string

Human-readable reason for this change; written to the audit log

Maximum string length: 500

Response

Successful response

data
object
required
success
enum<boolean>
required
Available options:
true