1. Catalog
  2. Update SKUs
PUT
/skus
curl --request PUT \
     --url https://sandbox.masonhub.co/dragonfly-cosmetics-demo/api/v1/skus \
     --header 'Authorization: Bearer <token>' \
     --header 'Content-Type: application/json' \
     --data '{
  "customer_identifier": "<string>",
  "customer_bar_code": "<string>",
  "vendor_style": "<string>",
  "brand_name": "<string>",
  "product_name": "<string>",
  "product_category": "<string>",
  "dim_weight": 123.45,
  "dim_length": 123.45,
  "dim_width": 123.45,
  "dim_height": 123.45,
  "vendor_bar_code": "<string>",
  "bar_codes": "<value>",
  "product_sub_category": "<string>",
  "product_description": "<string>",
  "dim_volume": 123.45,
  "unit_cost": 123.45,
  "price": 123.45,
  "pick_style": "<string>",
  "special_instructions": "<string>",
  "is_kit": true,
  "kit_skus": []
}'

Update one or more existing SKUs in the MasonHub catalog. This endpoint uses the customer_identifier to locate and update SKUs.

Full Replacement: Always send the entire SKU object in the request body. Whatever you send will completely replace the existing SKU data in MasonHub’s systems. We have elected not to use the PATCH verb to avoid complicating your integrations with us.

​
Request Body

The request body accepts an array of SKU objects with the same schema as the Create SKUs endpoint. The customer_identifier field is used to match existing SKUs.

​
Required Fields

customer_identifier
required
string

Unique customer SKU identifier. Used to locate the existing SKU to update.

customer_bar_code
required
string

Primary customer-assigned barcode for warehouse scanning.

vendor_style
required
string

Vendor style code. Must be 1-40 characters.

brand_name
required
string

Brand name for the product.

product_name
required
string

Product name/title.

product_category
required
string

Product category classification.

dim_weight
required
number

Weight in pounds.

dim_length
required
number

Length in inches.

dim_width
required
number

Width in inches.

dim_height
required
number

Height in inches.

​
Optional Fields

vendor_bar_code
string

Vendor’s original barcode.

bar_codes
string[]

Additional barcodes for the SKU.

product_sub_category
string

Product subcategory for finer classification.

product_description
string

Detailed product description.

dim_volume
number

Volume in cubic inches.

unit_cost
number

Unit cost for the SKU.

price
number

Retail price for the SKU.

pick_style
string

Pick strategy: FIFO, FEFO, or LIFO.

special_instructions
string

Special handling instructions for warehouse operations.

is_kit
boolean

Whether this SKU is a kit.

kit_skus
array

Array of component SKUs for kits.

curl -X PUT "https://app.masonhub.co/{account}/api/v1/skus" \
  -H "Authorization: Bearer your_jwt_token" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "customer_identifier": "pants4523",
      "customer_bar_code": "2345687902",
      "vendor_bar_code": "39485627389",
      "bar_codes": ["85962198623", "3459189485324"],
      "vendor_style": "FP-pants",
      "brand_name": "Freddie'\''s Pants",
      "product_name": "Fancy Pants",
      "product_category": "Apparel",
      "product_sub_category": "pants",
      "product_description": "Very fancy pants with stripes - Updated Edition",
      "dim_weight": 0.75,
      "dim_length": 4,
      "dim_width": 2.2,
      "dim_height": 0.5,
      "unit_cost": 85,
      "price": 180
    }
  ]'
{
  "records_submitted": 1,
  "records_processed": 1,
  "records_failed": 0,
  "records_succeeded": 1,
  "results": [
    {
      "system_id": "550e8400-e29b-41d4-a716-446655440000",
      "customer_identifier": "pants4523",
      "status": "success"
    }
  ]
}

​
Update Best Practices

1

Fetch Current SKU

First retrieve the current SKU data using GET /skus?cid=your_sku_id

2

Modify Fields

Update only the fields you want to change in your local copy

3

Send Complete Object

Send the entire modified SKU object in the PUT request

4

Verify Response

Check the response to confirm the update was successful

Why Full Replacement? This approach ensures data consistency and prevents partial updates that could leave SKUs in an inconsistent state. It also simplifies error handling and rollback scenarios.

​
Common Update Scenarios

​
Batch Updates

You can update multiple SKUs in a single request:

[
  {
    "customer_identifier": "pants4523",
    // ... complete SKU object ...
  },
  {
    "customer_identifier": "shirts450293",
    // ... complete SKU object ...
  }
]

The response will include the status of each individual update in the results array.