Bill Of Materials

Bill Of Materials

The BillOfMaterials resource allows Products BOM to be listed, created, updated and deleted. Here are some example URIs:

  • /BillOfMaterials/E6E8163F-6911-40e9-B740-90E5A0A3A996 - returns BOM of a particular Product;

  • /BillOfMaterials?page=2 - returns the second page of 100 Products with BOM;

  • /BillOfMaterials - returns the first 100 Products with BOM because page number 1 is the default;

  • /BillOfMaterials?page=2&limit=500 - returns the second page of 500 Products with BOM; i.e. the 501st to 1000th;

  • /BillOfMaterials?sku=ABC - returns BOM of the product with specified sku;

The full range of URIs and HTTP Verbs supported are:

Operation                                                                             

HTTP Action                                                                                                                                                               

List of paginated products with BOM                                                                        

GET /BillOfMaterials?page={pageNumber}                                                                                                                                                               

View any Product with BOM                                                                        

GET /BillOfMaterials/{id}                                                                                                                                                               

Update a set of Product BOMs. Product attributes are updated and BOM entries of the product are synced with provided BOM.                                                                        

PUT /BillOfMaterials                                                                                                                                                               

For PUT action, you always need to supply the full BOM for each product, otherwise if some BOM line is not provided then this BOM components will be deleted. This action automatically deletes, creates or updates product BOM to sync data in the system with provided BOM for each product.

These filters can be used with the GET BillOfMaterials endpoint:

Filter

Description

limit

Specifies the page size for pagination. Default page size is 100 Products.

name

Only return Products that start with the specific Product name

sku

Return one Product that has provided sku

onlyProductsWithBOM

Only return Products with BOM defined

includeDeprecated

Returns all Products, including deprecated, if set to true. If set to false or if it is not specified then returns only active (i.e. non-deprecated) Products

Filters are used by adding the filter and value to the URI: /BillOfMaterials?name=ABC&onlyProductsWithBOM=true

Using PUT action:

With PUT action you can delete/create/update BOM components and services for multiple products at once:

{
Products: [{...}, {...},...]
}

Up to 100 Products can be updated in one batch.

As a result of the call to PUT action you will get the following response:

{
"Products": [
{
...,
"OperationStatus":"failed",
"Errors": [
{"ErrorText":"Supplier with specified name does not exist"}
],
BOMComponents: [{…}, {…},…],
BOMServices: [{…}, {…},…]
},
{   
...,
"OperationStatus":"succeeded",
"Errors": [],
BOMComponents: [{…}, {…},…],
BOMServices: [{…}, {…},…]
},

]
}    

Where “errors” property for every Product in a batch indicates problems executing sync of BOM. If “errors” array property has no items then operation completed successfully. You can also check “operationStatus” property to find out if specific action in a batch succeeded or failed.

Available Fields for Product:

Property

Type

Length

Required

Notes

BOMComponents

Stock components of BOM,  see below

 

BOMServices

Services & Overheads of BOM, see  below

 

Errors

Errors collection, see below

 

ID

Guid

 

Yes

Unique Product ID

OperationStatus

String

 

 

Read-only field. Empty in Get action  result and one of two possible values as a result of PUT action: “failed” or  “succeeded”

SKU

String

 

 

Product SKU. Read-only  field, only returned in GET action. Ignored by PUT action

Name

String

 

 

Product Name. Read-only field, only  returned in GET action. Ignored by PUT action

BillOfMaterials

Boolean

 

Yes

“true” if this product  has BOM, “false” otherwise.
When BillOfMaterials = “true”  there should be at least one component of service associated with this  product

AutoAssembly

Boolean

 

Yes

“true” if this product is a kit or  needs to be automatically assembled on sale order authorization. BillOfMaterials  must be “true” when AutoAssembly = “true”. Can be used to implement unit  conversion.

AutoDisassembly

Boolean

 

Yes

“true” if this product needs to be  disassembled automatically into BOM on purchase authorization. Can be used to  implement unit conversion. BillOfMaterials must be “true” when AutoDisassembly  = “true”.

QuantityToProduce

Decimal (up to 10 decimal places)

 

 

Quantity of the product to be produced by  its BOM. Default is 1.

Status

String

 

 

Product status. “Active”  or “Deprecated”. Read-only field, only returned in GET action. Ignored by PUT  action

BOMComponent:

Property

Type

Length

Required

Notes

ProductID

Guid

 

Yes

Unique product ID. Product identifier  by this ID must be active and should be of type “Stock”.

SKU

String

50

 

BOM Component SKU. Read-only  field. Ignored on PUT action

Name

String

256

 

BOM Component Name. Read-only  field. Ignored on PUT action

Quantity

Decimal (up to 10  decimal places)

 

Yes

Quantity of the  component required to produce QuantityToProduce amount of the product.

WastagePercent

Decimal (up to 10  decimal places)

 

 

Wastage percentage of  this component when assembling the product. WastagePercent and  WastageQuantity are mutually exclusive. 0 by default.

WastageQuantity

Decimal (up to 10  decimal places)

 

 

Wastage quantity of this  component when assembling the product. WastagePercent and WastageQuantity are  mutually exclusive. 0 by default.

CostPercentage

Money

 

 

This value is used to create custom cost  proportion between different components in the same BOM when disassembly task  is created. Default is 0. If all components is BOM have 0 CostPercentage then  in Disassembly cost will be distributed evenly between components.

BOMServices:

Property

Type

Length

Required

Notes

ProductID

Guid

 

Yes

Unique product ID. Product identifier  by this ID must be active and should be of type “Service”.

Name

String

256

 

BOM Service Name. Read-only  field. Ignored on PUT action

Quantity

Decimal (up to 10  decimal places)

 

Yes

Quantity of the service  required to produce QuantityToProduce amount of the product.

PriceTier

Integer

 

 

Price tier number that  defines this service cost per unit when producing the product.

ExpenseAccount

String

50

Yes

Code of active Expense  account used when Finished Goods / Disassembly transactions

Errors:

Property

Type

Length

Required

Notes

ErrorText

String

 

 

Read-only field  indicating problem when executing action on associated entity

Was this article helpful?

Have more questions? Submit a request