POST v1/Product/SaveBoMComponents/{id}

This method saves a collection of component products against a particular product (turning it into a Bill of Materials or BoM product) - adding, updating or removing where appropriate. The parent product must not have any stock associated with it (as it will be turned into a non-inventory tracked product where the availability is calculated from the underlying stock levels of the children component products).

Request Information

URI Parameters

Name Description Type Additional information
id

The unique identifier of the product

integer

Optional

Body Parameters

The collection of child product to insert/update/delete into the BoM catalogue

Collection of ProductBoMComponent

Name Description Type
BoMComponentProductID

The internal identifier for this component product for e.g. 3479979772705247895

integer
BoMComponentProductCode

The external SKU for this component product is for e.g. PR-43254

string
BoMComponentQuantity

The quantity of the component product that goes into making the BoM product

decimal number
BoMComponentATS

The quantity of the component product that goes into making the BoM product

decimal number
BoMComponentWarehouseStock

The quantity of the component product that goes into making the BoM product

decimal number

Request Formats

application/json

Sample:

[
  {
    "BoMComponentProductID": 1,
    "BoMComponentProductCode": "sample string 1",
    "BoMComponentQuantity": 1.0,
    "BoMComponentATS": 1.0,
    "BoMComponentWarehouseStock": 1.0
  },
  {
    "BoMComponentProductID": 1,
    "BoMComponentProductCode": "sample string 1",
    "BoMComponentQuantity": 1.0,
    "BoMComponentATS": 1.0,
    "BoMComponentWarehouseStock": 1.0
  }
]

Response Information

Resource Description

The product data from the Tradevine database

Product

Name Description Type
ProductID

The unique internal identifier of each product in Tradevine e.g. 3451582911247567682

integer
OrganisationID

The internal identifier of this organisation in Tradevine e.g. 3451460443781171981

integer
Code

The product code e.g. PR432

string
Name

The product name e.g. ABE Chemical Fire Extinguisher

string
Description

The long description of the product

string
AlternateCode

The alternate product code if used e.g. ACME_CHEM_9860

string
EnableInventory

Whether this product is inventory-tracked or not i.e. true or false

boolean
IsBoM

This is a product level flag which says if this product if a Bill Of Materials (BoM) container products

boolean
IsBoMComponent

This is a product level flag which says if this product if a component of one or more Bill Of Materials (BoM) container products

boolean
UnitOfMeasure

The unit of measure the product is sold in e.g. each, box or crate

string
Barcode

The product barcode or GTIN or ISBN

string
InternalNotes

Internal (private) notes

string
ExternalNotes

External (public) notes

string
ProductCategoryID

The internal Tradevine product category identifier

integer
Weight

The product weight (either gram or ounce - depending on measurement system defined in the organisation settings)

decimal number
Length

The product length (either millimetre or inch - depending on measurement system defined in the organisation settings)

decimal number
Width

The product width (either millimetre or inch - depending on measurement system defined in the organisation settings)

decimal number
Height

The product height (either millimetre or inch - depending on measurement system defined in the organisation settings)

decimal number
Currency

The product currency lookup value

integer
TaxClassID

The internal Tradevine identifier for the tax type of this organisation. This is used as the product's default tax type/rate

integer
IsArchived

This is a product level flag which determines if it appears by default in your products list (archived products also don't auto-list in Trade Me or appear in Shopify)

boolean
TaxCode

The tax type description for this tax type for this organisation e.g. GST. This is used as the product's default tax type/rate

string
QuantityAvailableToSell

The current Available To Sell value for this product - this is the SOH minus any allocations for sales orders, open listings, open FPOs etc.

decimal number
QuantityAvailableForShipmentAllocation

The level of free inventory available for creating new shipments

decimal number
QuantityAvailableToShip

The current Available To Ship value for this product - this is the SOH minus any allocations for printed shipments not yet confirmed

decimal number
CostPrice

This is the cost price (excluding tax) for the product. For an inventory-tracked product this will be the weighted average cost of all transactions. For non-inventory tracked products this will be whatever cost-price is configured against the product

decimal number
TradeMeListings

The level of inventory currently on open Trade Me listings

decimal number
TradeMeOffers

The level of inventory currently on open Trade Me FPOs

decimal number
SoftAllocated

The level of inventory currently on all open sales orders

decimal number
MediumAllocated

The level of inventory currently on non-pending sales orders

decimal number
HardAllocated

The level of inventory currently on printed shipments

decimal number
SoftPurchase

The level of inventory currently on all open purchase orders (draft included)

decimal number
HardPurchase

The level of inventory currently on all open, confirmed purchase orders

decimal number
BoMSoftAllocated

The level of inventory currently on any sales orders containing BoM products that contain this product as a component

decimal number
BoMTradeMeListings

The level of inventory currently on any Trade Me listings for BoM products that contain this product as a component

decimal number
BoMTradeMeOffers

The level of inventory currently on any Trade Me FPOs for BoM products that contain this product as a component

decimal number
SellPriceIncTax

This is the default selling price (excluding tax) for the product

decimal number
SellPriceExTax

This is the default selling price (including tax) for the product

decimal number
MinimumStockQuantity

For inventory-tracked products, this is the ATS level that will trigger re-order alerts

decimal number
OverrideSalesGLAccountCode

For products that are not inventory-tracked and where Xero integration is on, this is the general ledger account code that will be used for sales i.e. accounts receivable invoices

string
OverrideSalesGLAccountName

For products that are not inventory-tracked and where Xero integration is on, this is the general ledger account name that will be used for sales i.e. accounts receivable invoices

string
OverridePurchaseGLAccountCode

For products that are not inventory-tracked and where Xero integration is on, this is the general ledger account code that will be used for purchases i.e. accounts payable invoices

string
OverridePurchaseGLAccountName

For products that are not inventory-tracked and where Xero integration is on, this is the general ledger account name that will be used for purchases i.e. accounts payable invoices

string
PhotoIdentifier

This field is used in product CSV import file to link products to photo names that will be subsequently uploaded (via file or downloaded from Trade Me or an external web-site) e.g. 'FireEx1.jpg;FireExt2.jpg'

string
IsManualOrderApprovalNeeded

This is a product level flag which indicates that sales orders that contain this product should require manual approval before transitioning from Pending to Awaiting Shipment

boolean
CreatedDate

The date and time (in UTC) that the product was created

date
CreatedBy

The internal Tradevine ID of the user that created the product

integer
ModifiedDate

The date and time (in UTC) that the product was last modified

date
ModifiedBy

The internal Tradevine ID of the user that last modified the product

integer
IsBoMWeightAutocalculated

This is a product level flag which can be set on BoM products and have its weight calculated based on its components and auto-updated whenever the weight of any components change

boolean
Brand

The brand name of the product e.g. Sony

string
ManufacturerCode

The manufacturer's code for the product

string
Photos

The list of photos of the product

Collection of Photo
PerWarehouseInventory

The list of inventory records for each warehouse of the product

Collection of PerWarehouseInventory
ProductSuppliers

The list of remote product details for each supplier of the product

Collection of ProductSupplier
BoMComponents

The list of BoM components that make up this BoM parent if IsBoM is true

Collection of ProductBoMComponent
QuantityInStock

The current Stock on Hand (SOH) value for this product if it is inventory tracked e.g. 10 if I physically hold 10 at the moment

decimal number
QuantityReorderBalance

The value of stock incoming and outgoing that gets compared to the ReorderPoint to trigger new purchases

decimal number
Labels

The list of labels applied to the product

Collection of string

Response Formats

application/json

Sample:

{
  "ProductID": 3451582911247567682,
  "OrganisationID": 3479979772659009354,
  "Code": "MSP-152",
  "Name": "Baking Powder 1kg",
  "Description": "Baking Powder 1kg - for all your cooking needs. Widely usable in all baking recipes",
  "AlternateCode": "EDMNDS4535",
  "EnableInventory": true,
  "IsBoM": false,
  "IsBoMComponent": false,
  "UnitOfMeasure": "Each",
  "Barcode": "68568957899",
  "InternalNotes": "Private note so say this powder leads to dense cakes that often result in indigestion",
  "ExternalNotes": "Public note so say this powder is sure to leave your sponge nice and fluffy",
  "ProductCategoryID": 3479979772660940830,
  "Weight": 1000.0,
  "Length": 140.0,
  "Width": 80.0,
  "Height": 60.0,
  "Currency": 10109,
  "TaxClassID": 3479979772669744181,
  "IsArchived": false,
  "TaxCode": "GST",
  "QuantityAvailableToSell": 78.0,
  "QuantityAvailableForShipmentAllocation": null,
  "QuantityAvailableToShip": 90.0,
  "CostPrice": 90.0,
  "TradeMeListings": null,
  "TradeMeOffers": null,
  "SoftAllocated": null,
  "MediumAllocated": null,
  "HardAllocated": null,
  "SoftPurchase": null,
  "HardPurchase": null,
  "BoMSoftAllocated": null,
  "BoMTradeMeListings": null,
  "BoMTradeMeOffers": null,
  "SellPriceIncTax": 114.89,
  "SellPriceExTax": 99.9,
  "MinimumStockQuantity": 10.0,
  "OverrideSalesGLAccountCode": null,
  "OverrideSalesGLAccountName": null,
  "OverridePurchaseGLAccountCode": null,
  "OverridePurchaseGLAccountName": null,
  "PhotoIdentifier": null,
  "IsManualOrderApprovalNeeded": false,
  "CreatedDate": "2012-08-07T11:42:52Z",
  "CreatedBy": 3479979772662022396,
  "ModifiedDate": "2013-03-02T00:04:52Z",
  "ModifiedBy": 3479979772662022396,
  "IsBoMWeightAutocalculated": null,
  "Brand": null,
  "ManufacturerCode": null,
  "Photos": [
    {
      "PhotoID": null,
      "OrganisationID": null,
      "FileName": null,
      "ContentsBase64": null,
      "TradevineUrl": "https://nz.tradevine.com/my-account-name/ProductPhoto/GetPhoto?photoID=3602768739505780893",
      "PublicUrl": "https://nz.tradevine.com/BlobStorage/GetFullPhoto?photoID=3602768739505780893&organisationID=3479979772659009354",
      "PublicThumbnailUrl": "https://nz.tradevine.com/BlobStorage/GetPhotoThumbnail?photoID=3602768739505780893&organisationID=3479979772659009354&size=100",
      "CreatedDate": null,
      "CreatedBy": null,
      "ModifiedDate": null,
      "ModifiedBy": null
    }
  ],
  "PerWarehouseInventory": [
    {
      "QuantityInStockSnapshot": 312.0,
      "AverageFIFOCost": 85.0,
      "TotalInventoryValueSnapshot": null,
      "WarehouseID": 3479979772662022613,
      "WarehouseCode": "WH1",
      "ProductID": null,
      "Code": null,
      "Name": null,
      "QuantityAvailableToSell": null,
      "QuantityAvailableForShipmentAllocation": null,
      "QuantityAvailableToShip": null,
      "QuantityReorderBalance": null,
      "TradeMeListings": null,
      "TradeMeOffers": null,
      "SoftAllocated": null,
      "MediumAllocated": null,
      "HardAllocated": null,
      "SoftPurchase": null,
      "HardPurchase": null,
      "BoMSoftAllocated": null,
      "BoMTradeMeListings": null,
      "BoMTradeMeOffers": null
    }
  ],
  "ProductSuppliers": [
    {
      "ProductSupplierID": 33546957475474,
      "SupplierID": 3487940363376548,
      "SupplierCode": "SU-231",
      "SupplierName": "ACME Enterpises Ltd",
      "SupplierProductCode": "ACME-79867-233",
      "Price": 90.0,
      "IsPriceIncTax": false,
      "IsPreferredSupplier": true,
      "DefaultPurchaseOrderQuantity": 100.0,
      "CreatedDate": "2012-08-07T11:42:52Z",
      "CreatedBy": 3479979772662022396,
      "ModifiedDate": "2013-03-02T00:04:52Z",
      "ModifiedBy": 3479979772662022396
    }
  ],
  "BoMComponents": null,
  "QuantityInStock": 100.0,
  "QuantityReorderBalance": null,
  "Labels": null
}