Megaventory API v2017a

<back to all web services

ProductBOMGetByMaterials

The following routes are available for this service:
GET POST/ProductBOM/ProductBOMGetByMaterialsGets information on a product's bill of materials. Uses your API Key and some Raw Materials in an array format and returns the BOMs that contain the specified raw materials. You can use ExactMatch to specify if the BOMs should contain the exact raw materials specified or not. You can use ReturnTopNRecords to limit the number of the results to the specified number (omit, or add ReturnTopNRecords = -1 to get all the available results). The results are sorted by Finished Good ProductID in ascending order.



Examples:



A.

Return the mvProductBOMs objects whose raw materials contain the specified raw materials. The results are returned as mvProductBOMs objects.

Value:

{
    "ExactMatch":false,
    "mvRawMaterials": [
        {
          "ProductSKU": "prod-1",
          "Quantity": 1
        },
        {
          "ProductSKU": "prod-2",
          "Quantity": 1
        }
    ]
}

Response:

{
   "mvProductBOMs": [
    {
      "ProductID": 7574,
      "ProductSKU": "fg",
      "mvRawMaterials": [
        {
          "ProductID": 7535,
          "ProductSKU": "prod-1",
          "ProductDescription": "My Products",
          "RawMaterialQuantity": 1,
          "RawMaterialQuantitySlackPercent": 0,
          "FinishedGoodQuantitySlackPercent": 0
        },
        {
          "ProductID": 7536,
          "ProductSKU": "prod-2",
          "ProductDescription": "My Products",
          "RawMaterialQuantity": 1,
          "RawMaterialQuantitySlackPercent": 0,
          "FinishedGoodQuantitySlackPercent": 0
        }
      ]
    },
    {
      "ProductID": 7577,
      "ProductSKU": "fg1",
      "mvRawMaterials": [
        {
          "ProductID": 7535,
          "ProductSKU": "prod-1",
          "ProductDescription": "My Products",
          "RawMaterialQuantity": 1,
          "RawMaterialQuantitySlackPercent": 0,
          "FinishedGoodQuantitySlackPercent": 0
        },
        {
          "ProductID": 7536,
          "ProductSKU": "prod-2",
          "ProductDescription": "My Products",
          "RawMaterialQuantity": 1,
          "RawMaterialQuantitySlackPercent": 0,
          "FinishedGoodQuantitySlackPercent": 0
        },
        {
          "ProductID": 7537,
          "ProductSKU": "prod-3",
          "ProductDescription": "My Products",
          "RawMaterialQuantity": 1,
          "RawMaterialQuantitySlackPercent": 0,
          "FinishedGoodQuantitySlackPercent": 0
        }
      ]
    }
  ],
   "ResponseStatus": {
      "ErrorCode": "0"
   }
}


B.

Return the mvProductBOMs objects whose raw materials are exactly the specified raw materials. The results are returned as mvProductBOMs objects.

Value:

{
    "ExactMatch":true,
    "mvRawMaterials": [
        {
          "ProductSKU": "prod-1",
          "Quantity": 1
        },
        {
          "ProductSKU": "prod-2",
          "Quantity": 1
        }
    ]
}

Response:

{
   "mvProductBOMs": [
    {
      "ProductID": 7574,
      "ProductSKU": "fg",
      "mvRawMaterials": [
        {
          "ProductID": 7535,
          "ProductSKU": "prod-1",
          "ProductDescription": "My Products",
          "RawMaterialQuantity": 1,
          "RawMaterialQuantitySlackPercent": 0,
          "FinishedGoodQuantitySlackPercent": 0
        },
        {
          "ProductID": 7536,
          "ProductSKU": "prod-2",
          "ProductDescription": "My Products",
          "RawMaterialQuantity": 1,
          "RawMaterialQuantitySlackPercent": 0,
          "FinishedGoodQuantitySlackPercent": 0
        }
      ]
    }
  ],
   "ResponseStatus": {
      "ErrorCode": "0"
   }
}

To override the Content-type in your clients HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /jsv/reply/ProductBOMGetByMaterials HTTP/1.1 
Host: api.megaventory.com 
Content-Type: text/jsv
Content-Length: length

{
	APIKEY: String,
	mvRawMaterials: 
	[
		{
			ProductID: 0,
			ProductSKU: String,
			Quantity: 0
		}
	],
	ExactMatch: False,
	ReturnTopNRecords: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	mvProductBOMs: 
	[
		{
			ProductID: 0,
			ProductSKU: String,
			mvRawMaterials: 
			[
				{
					
				}
			]
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String
			}
		]
	},
	InternalErrorCode: String
}