Partner Products

Partner products represent the product catalog for a specific partner (client). Each product has a unique code used for consignment imports and inventory tracking.

Endpoints Overview

Method Endpoint Description
GET /v1/partners/{partnerId}/products Get partner products page
GET /v1/partners/{partnerId}/products/{partnerProductId} Get product details
POST /v1/partners/{partnerId}/products/convert-units Calculate unit conversions

Get Partner Products Page

Retrieve a paginated list of products for a partner.

Endpoint: GET /v1/partners/{partnerId}/products

Path Parameters

Parameter Type Required Description
partnerId uuid Yes The partner ID

Query Parameters

Parameter Type Required Description
PageIndex integer No Page number (default: 1)
PageSize integer No Items per page (default: 25, max: 500)
SearchText string No Filter by product code, name, or barcode
ProductStatus integer No Filter by product status

Product Status Values

Value Status Description
1 Active Active product
2 Inactive Inactive product

Request Example

curl -X GET "https://api.consignlyhq.com/v1/partners/550e8400-e29b-41d4-a716-446655442000/products?PageIndex=1&PageSize=50&Status=1" \
  -H "Authorization: Bearer ACCESS_TOKEN"

Response Example

{
  "index": 1,
  "total": 150,
  "products": [
    {
      "id": "550e8400-e29b-41d4-a716-446655443000",
      "code": "PROD-A",
      "name": "Product A - Premium Grade",
      "lengthMM": 300,
      "heightMM": 150,
      "widthMM": 200,
      "isVolumeAutoCalculated": true,
      "volumeM3": 0.009,
      "weightKG": 5.5,
      "isSerialRequired": false,
      "serialTrackingMode": 1,
      "productGroupId": "550e8400-e29b-41d4-a716-446655443050",
      "productGroupName": "General Products",
      "productUnitTypeId": "550e8400-e29b-41d4-a716-446655443060",
      "productUnitTypeName": "Each",
      "isDangerousGood": false,
      "dgProperShippingName": null,
      "dgTechnicalName": null,
      "dgPackagingGroup": null,
      "dgHazchemEac": null,
      "dgUnNumber": null,
      "dgFlashpointDegC": null,
      "dgMarinePollutant": null,
      "dgPhLevel": null,
      "barcode": "9421234567890",
      "gtin": null
    },
    {
      "id": "550e8400-e29b-41d4-a716-446655443001",
      "code": "PROD-B",
      "name": "Product B - Standard",
      "lengthMM": null,
      "heightMM": null,
      "widthMM": null,
      "isVolumeAutoCalculated": false,
      "volumeM3": 0.025,
      "weightKG": 2.0,
      "isSerialRequired": true,
      "serialTrackingMode": 2,
      "productGroupId": "550e8400-e29b-41d4-a716-446655443050",
      "productGroupName": "General Products",
      "productUnitTypeId": null,
      "productUnitTypeName": null,
      "isDangerousGood": false,
      "dgProperShippingName": null,
      "dgTechnicalName": null,
      "dgPackagingGroup": null,
      "dgHazchemEac": null,
      "dgUnNumber": null,
      "dgFlashpointDegC": null,
      "dgMarinePollutant": null,
      "dgPhLevel": null,
      "barcode": "9421234567891",
      "gtin": "09421234567891"
    }
  ]
}

Response Fields

Field Type Description
id uuid Product ID
code string Product code
name string Product name
lengthMM integer Length in mm
heightMM integer Height in mm
widthMM integer Width in mm
isVolumeAutoCalculated boolean Whether volume is auto-calculated from dimensions
volumeM3 number Volume in m³
weightKG number Weight in kg
isSerialRequired boolean Whether serial tracking is required
serialTrackingMode integer Serial tracking mode (see values below)
productGroupId uuid Product group ID
productGroupName string Product group name
productUnitTypeId uuid Product unit type ID
productUnitTypeName string Product unit type name
isDangerousGood boolean Whether product is dangerous goods
dgProperShippingName string DG proper shipping name
dgTechnicalName string DG technical name
dgPackagingGroup integer DG packaging group
dgHazchemEac string Hazchem Emergency Action Code
dgUnNumber string DG UN number
dgFlashpointDegC string DG flashpoint in °C
dgMarinePollutant boolean Whether DG is marine pollutant
dgPhLevel number DG pH level
barcode string Product barcode
gtin string Product GTIN

Get Partner Product Details

Retrieve detailed information for a specific product.

Endpoint: GET /v1/partners/{partnerId}/products/{partnerProductId}

Path Parameters

Parameter Type Required Description
partnerId uuid Yes The partner ID
partnerProductId uuid Yes The product ID

Request Example

curl -X GET "https://api.consignlyhq.com/v1/partners/550e8400-e29b-41d4-a716-446655442000/products/550e8400-e29b-41d4-a716-446655443000" \
  -H "Authorization: Bearer ACCESS_TOKEN"

Response Example

{
  "id": "550e8400-e29b-41d4-a716-446655443000",
  "status": 1,
  "name": "Product A - Premium Grade",
  "code": "PROD-A",
  "unitType": {
    "id": "550e8400-e29b-41d4-a716-446655443060",
    "name": "Each",
    "status": 1
  },
  "lengthMM": 300,
  "heightMM": 150,
  "widthMM": 200,
  "isVolumeAutoCalculated": true,
  "volumeM3": 0.009,
  "weightKG": 5.5,
  "barcode": "9421234567890",
  "gtin": null,
  "productGroup": {
    "id": "550e8400-e29b-41d4-a716-446655443050",
    "name": "General Products"
  },
  "productUnitType": {
    "id": "550e8400-e29b-41d4-a716-446655443060",
    "name": "Each",
    "status": 1
  },
  "isSerialRequired": false,
  "serialTrackingMode": 1,
  "receiveInstructions": "Check for damage on arrival",
  "pickInstructions": "Handle with care - fragile",
  "batchUsage": 2,
  "bestBeforeDateUsage": 2,
  "expiryUsage": 3,
  "packagingDateUsage": 1,
  "productionDateUsage": 1,
  "sellByDateUsage": 1,
  "isDangerousGood": true,
  "dgProperShippingName": "Flammable liquid, n.o.s.",
  "dgTechnicalName": "Ethanol solution",
  "dgPackagingGroup": 2,
  "dgUnNumber": "1234",
  "dgHazchemEac": "2SE",
  "dgFlashpointDegC": "23",
  "dgMarinePollutant": false,
  "dgPhLevel": null,
  "dgHazardClasses": [
    {
      "dgStandard": 1,
      "dgHazardClass": {
        "id": "550e8400-e29b-41d4-a716-446655449202",
        "name": "Flammable Liquids",
        "dgStandard": 1
      },
      "dgHazardCategory": {
        "id": "550e8400-e29b-41d4-a716-446655449210",
        "name": "Flammable Liquids Cat. 2"
      }
    }
  ],
  "unitConversions": [
    {
      "inputMetricType": 1,
      "inputUnitType": {
        "id": "550e8400-e29b-41d4-a716-446655443060",
        "name": "Each",
        "status": 1
      },
      "outputMetricType": 2,
      "outputUnitType": {
        "id": "550e8400-e29b-41d4-a716-446655443061",
        "name": "Carton",
        "status": 1
      },
      "conversionRate": 12.0,
      "itemConversionRate": 12.0,
      "barcode": null,
      "gtin": null
    }
  ]
}

Detail Response Fields

In addition to the page response fields, the detail response includes:

Field Type Description
status integer Product status (see values above)
unitType object Unit type (id, name, status)
isVolumeAutoCalculated boolean Whether volume is auto-calculated from dimensions
productGroup object Product group (id, name)
productUnitType object Product unit type (id, name, status)
receiveInstructions string Instructions for receiving
pickInstructions string Instructions for picking
batchUsage integer Batch attribute usage (see Attribute Usage below)
bestBeforeDateUsage integer Best before date usage
expiryUsage integer Expiry date usage
packagingDateUsage integer Packaging date usage
productionDateUsage integer Production date usage
sellByDateUsage integer Sell by date usage
unitConversions array Unit conversion definitions

Dangerous Goods Fields

Field Type Description
isDangerousGood boolean Whether product is dangerous goods
dgProperShippingName string Proper shipping name
dgTechnicalName string Technical name
dgPackagingGroup integer Packaging group (I=1, II=2, III=3)
dgUnNumber string UN number
dgHazchemEac string Hazchem Emergency Action Code
dgFlashpointDegC string Flashpoint in °C
dgMarinePollutant boolean Whether product is marine pollutant
dgPhLevel number pH level
dgHazardClasses array Hazard classifications (see below)

DG Hazard Class Object

Field Type Description
dgStandard integer DG standard (see values below)
dgHazardClass object Hazard class (id, name, dgStandard)
dgHazardCategory object Hazard category (id, name)

Attribute Usage Values

Value Usage
1 Hidden
2 Optional
3 Required

DG Standard Values

Value Standard
1 NewZealand_Ghs7
2 Australia_Ghs7
3 NewZealand_Dg2005
4 Australia_AdgCode

Serial Tracking Modes

Value Mode Description
1 None No serial tracking
2 FullCapture Serial captured at receive and dispatch
3 ReleaseCapture Serial captured at dispatch only

Stock Rotation Methods

Stock rotation determines the order in which inventory is picked:

Value Method Description
0 None No specific rotation method
1 Batch Rotate by batch
2 ExpiryAscending Earliest expiry first (FEFO)
3 ExpiryDescending Latest expiry first
4 ProductionDateAscending Oldest production date first
5 ProductionDateDescending Newest production date first
6 BestBeforeDateAscending Earliest best-before date first
7 BestBeforeDateDescending Latest best-before date first
8 SellByDateAscending Earliest sell-by date first
9 SellByDateDescending Latest sell-by date first
10 PackagingDateAscending Oldest packaging date first
11 PackagingDateDescending Newest packaging date first
12 ReceivedDateAscending Oldest received date first (FIFO)
13 ReceivedDateDescending Newest received date first (LIFO)

Stock Depletion Methods

Value Method Description
1 FIFO First In, First Out
2 LIFO Last In, First Out

Convert Units

Calculate unit conversions for partner products. Given an input quantity and metric type, returns the equivalent values across all configured unit conversions.

Endpoint: POST /v1/partners/{partnerId}/products/convert-units

Path Parameters

Parameter Type Required Description
partnerId uuid Yes The partner ID

Request Body

{
  "conversions": [
    {
      "id": "550e8400-e29b-41d4-a716-446655443000",
      "inputMetricType": 1,
      "inputQuantity": 100,
      "inputUnitTypeId": "550e8400-e29b-41d4-a716-446655443060",
      "metricResolution": 1
    }
  ]
}

Request Body Fields

Field Type Required Description
conversions array Yes Array of conversion requests
conversions[].id uuid No Partner product ID
conversions[].code string No Partner product code (alternative to ID)
conversions[].inputMetricType integer Yes Input metric type
conversions[].inputQuantity number Yes Input quantity to convert
conversions[].inputUnitTypeId uuid No Input unit type ID
conversions[].metricResolution integer No Metric resolution

Request Example

curl -X POST "https://api.consignlyhq.com/v1/partners/550e8400-e29b-41d4-a716-446655442000/products/convert-units" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "conversions": [
      {
        "id": "550e8400-e29b-41d4-a716-446655443000",
        "inputMetricType": 1,
        "inputQuantity": 100
      }
    ]
  }'

Response Example

Status: 200 OK

{
  "results": [
    {
      "id": "550e8400-e29b-41d4-a716-446655443000",
      "code": "PROD-A",
      "inputQuantity": 100,
      "metrics": [...]
    }
  ]
}

Response Fields

Field Type Description
results array Array of conversion results
results[].id uuid Partner product ID
results[].code string Partner product code
results[].inputQuantity number Original input quantity
results[].metrics array Converted unit metrics

Using Product Codes

Product codes are used in consignment imports:

{
  "products": [
    {
      "productCode": "PROD-A",
      "items": [{ "quantity": 100 }],
      "batch": "BATCH-001"
    }
  ]
}