Megaventory API v2017a

<back to all web services

SalesOrderUpdate

The following routes are available for this service:
POST/SalesOrder/SalesOrderUpdateInserts a new sales order or updates an existing one.Uses your API Key and applies a mvRecordAction value on an mvSalesOrder object. We can insert the mvSalesOrder we specified using "Insert" as our mvRecordAction. SalesOrderId, SalesOrderNo, SalesOrderStatus are mandatory fields. SalesOrderStatus is mandatory if SalesOrderInventoryLocationID is included in the object. If the SalesOrderClientId is known, it must be included with a value greater than zero. If the SalesOrderClientId is not known it must be included in the object with a value equal to zero and -in that case- include also the SalesOrderClientName in the object.

AutoInsertBatchNumbersToProductRows: this field is used to automatically attach batch numbers to the material that is being allocated, depending on the order that you have selected (e.g. if you want to attach first the batch numbers that have the closest expiry date, give this field the value ByExpiryDate).

SalesOrderShippingProviderInfo: This field is utilized to specify the shipping provider information for a shipping order. It uses the attributes of the ShippingInfo object, which are ProviderInfo as a mandatory field and optional fields such as CostInfo, WeightInfo, ShipDateInfo and TrackingId.

We can update an existing Sales Order using "Update". We can insert a new Sales Order using "Insert". Optionally, we can use mvInsertUpdateDeleteSourceApplication when an external application ( eg WooCommerce ) is the one that triggers the SalesOrderUpdate call. SalesOrderId cannot be updated.

Examples:



A.

Insert a new sales order for 10 products going to one of our clients.

Value:

{
   "mvSalesOrder": {
      "SalesOrderClientId": 5358,
      "SalesOrderTypeId": 3,
      "SalesOrderStatus": "Pending",
      "SalesOrderDetails": [
         {
            "SalesOrderRowProductSKU": "product",
            "SalesOrderRowQuantity": "10",
            "SalesOrderRowShippedQuantity": "0",
            "SalesOrderRowInvoicedQuantity": "0",
            "SalesOrderRowUnitPriceWithoutTaxOrDiscount": "0.93"
         }
      ]
   },
   "mvRecordAction": "Insert"
} 


Response:

 {
   "mvSalesOrder": {
      "SalesOrderId": 49436,
      "SalesOrderTypeId": 3,
      "SalesOrderTypeAbbreviation": "SO",
      "SalesOrderTypeDescription": "Sales Order",
      "SalesOrderNo": "84",
      "SalesOrderReferenceNo": "",
      "SalesOrderReferenceApplication": "",
      "SalesOrderDate": "/Date(1532034000000+0300)/",
      "SalesOrderCustomOrderDate1": "/Date(-62135596800000-0000)/",
      "SalesOrderCustomOrderDate2": "/Date(-62135596800000-0000)/",
      "SalesOrderCurrencyCode": "USD",
      "SalesOrderClientID": 5358,
      "SalesOrderBillingAddress": "sdfasdfsdf",
      "SalesOrderShippingAddress": "dfdsfgdf",
      "SalesOrderContactPerson": "",
      "SalesOrderInventoryLocationID": 0,
      "SalesOrderCustomFlag1": false,
      "SalesOrderCustomFlag2": false,
      "SalesOrderCustomFlag3": false,
      "SalesOrderCustomFlag4": false,
      "SalesOrderCustomFlag5": false,
      "SalesOrderCustomFlag6": false,
      "SalesOrderCustomFlag7": false,
      "SalesOrderCustomFlag8": false,
      "SalesOrderCustomFlag9": false,
      "SalesOrderCustomFlag10": false,
      "SalesOrderComments": "",
      "SalesOrderTags": "",
      "SalesOrderPaymentTermsEnumeration": "None",
      "SalesOrderTotalQuantity": 10,
      "SalesOrderAmountSubtotalWithoutTaxAndDiscount": 9.3,
      "SalesOrderAmountShipping": 0,
      "SalesOrderAmountTotalDiscount": 0,
      "SalesOrderAmountTotalTax": 0,
      "SalesOrderAmountGrandTotal": 9.3,
      "SalesOrderDetails": [
         {
            "SalesOrderRowDetailID": 76069,
            "SalesOrderRowProductID": 59373,
            "SalesOrderRowProductSKU": "product",
            "SalesOrderRowQuantity": 10,
            "SalesOrderRowShippedQuantity": 0,
            "SalesOrderRowInvoicedQuantity": 0,
            "SalesOrderRowUnitPriceWithoutTaxOrDiscount": 0.93,
            "SalesOrderRowTaxID": 0,
            "SalesOrderTotalTaxAmount": 0,
            "SalesOrderRowDiscountID": 0,
            "SalesOrderRowTotalDiscountAmount": 0,
            "SalesOrderRowTotalAmount": 9.3,
            "SalesOrderRowSerialNumbers": [],
            "SalesOrderRowBatchNumbers": [],
            "SalesOrderRowRemarks": ""
         }
      ],
      "SalesOrderStatus": "Pending",
      "SalesOrderCreationDate": "/Date(-62135596800000-0000)/",
      "SalesOrderLastUpdatedDate": "/Date(-62135596800000-0000)/"
   },
   "ResponseStatus": {
      "ErrorCode": "0"
   },
   "entityID": 49436
}

B.

Partially Ship And Partially Invoice a sales order for 5 products going to one of our clients.

Value:

{
   "mvSalesOrder": {
      "SalesOrderId": 49436,
      "SalesOrderNo": "84",
      "SalesOrderClientId": 5358,
      "SalesOrderInventoryLocationID": 4430,
      "SalesOrderDetails": [
         {
            "SalesOrderRowDetailID": 76069,
            "SalesOrderRowProductID": 59373,
            "SalesOrderRowProductSKU": "product",
            "SalesOrderRowQuantity": "10",
            "SalesOrderRowShippedQuantity": "2",
            "SalesOrderRowInvoicedQuantity": "2",
            "SalesOrderRowUnitPriceWithoutTaxOrDiscount": "0.93"
         }
      ],
      "SalesOrderShipDocumentTypeID":2,
      "SalesOrderStatus": "PartiallyShippedAndPartiallyInvoiced"
   },
   "mvRecordAction": "Update"
} 


Response:

 {
   "mvSalesOrder": {
      "SalesOrderId": 49436,
      "SalesOrderTypeId": 3,
      "SalesOrderTypeAbbreviation": "SO",
      "SalesOrderTypeDescription": "Sales Order",
      "SalesOrderNo": "84",
      "SalesOrderReferenceNo": "",
      "SalesOrderReferenceApplication": "",
      "SalesOrderDate": "/Date(1532034000000+0300)/",
      "SalesOrderCustomOrderDate1": "/Date(-62135596800000-0000)/",
      "SalesOrderCustomOrderDate2": "/Date(-62135596800000-0000)/",
      "SalesOrderCurrencyCode": "USD",
      "SalesOrderClientID": 5358,
      "SalesOrderBillingAddress": "sdfasdfsdf",
      "SalesOrderShippingAddress": "dfdsfgdf",
      "SalesOrderContactPerson": "",
      "SalesOrderInventoryLocationID": 4430,
      "SalesOrderCustomFlag1": false,
      "SalesOrderCustomFlag2": false,
      "SalesOrderCustomFlag3": false,
      "SalesOrderCustomFlag4": false,
      "SalesOrderCustomFlag5": false,
      "SalesOrderCustomFlag6": false,
      "SalesOrderCustomFlag7": false,
      "SalesOrderCustomFlag8": false,
      "SalesOrderCustomFlag9": false,
      "SalesOrderCustomFlag10": false,
      "SalesOrderComments": "",
      "SalesOrderTags": "",
      "SalesOrderPaymentTermsEnumeration": "None",
      "SalesOrderTotalQuantity": 10,
      "SalesOrderAmountSubtotalWithoutTaxAndDiscount": 9.3,
      "SalesOrderAmountShipping": 0,
      "SalesOrderAmountTotalDiscount": 0,
      "SalesOrderAmountTotalTax": 0,
      "SalesOrderAmountGrandTotal": 9.3,
      "SalesOrderDetails": [
         {
            "SalesOrderRowDetailID": 76069,
            "SalesOrderRowProductID": 59373,
            "SalesOrderRowProductSKU": "product",
            "SalesOrderRowQuantity": 10,
            "SalesOrderRowShippedQuantity": 2,
            "SalesOrderRowInvoicedQuantity": 2,
            "SalesOrderRowUnitPriceWithoutTaxOrDiscount": 0.93,
            "SalesOrderRowTaxID": 0,
            "SalesOrderTotalTaxAmount": 0,
            "SalesOrderRowDiscountID": 0,
            "SalesOrderRowTotalDiscountAmount": 0,
            "SalesOrderRowTotalAmount": 9.3,
            "SalesOrderRowSerialNumbers": [],
            "SalesOrderRowBatchNumbers": [],
            "SalesOrderRowRemarks": ""
         }
      ],
      "SalesOrderStatus": "PartiallyShippedAndPartiallyInvoiced",
      "SalesOrderCreationDate": "/Date(-62135596800000-0000)/",
      "SalesOrderLastUpdatedDate": "/Date(-62135596800000-0000)/"
   },
   "ResponseStatus": {
      "ErrorCode": "0"
   },
   "entityID": 49436
}

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/SalesOrderUpdate HTTP/1.1 
Host: api.megaventory.com 
Content-Type: text/jsv
Content-Length: length

{
	APIKEY: String,
	mvSalesOrder: 
	{
		SalesOrderId: 0,
		SalesOrderTypeId: 0,
		SalesOrderTypeAbbreviation: String,
		SalesOrderTypeDescription: String,
		SalesOrderNo: String,
		SalesOrderReferenceNo: String,
		SalesOrderReferenceApplication: String,
		SalesOrderDate: 0001-01-01,
		SalesOrderCustomOrderDate1: 0001-01-01,
		SalesOrderCustomOrderDate2: 0001-01-01,
		SalesOrderCurrencyCode: String,
		SalesOrderClientID: 0,
		SalesOrderClientName: String,
		SalesOrderBillingAddress: String,
		SalesOrderShippingAddress: String,
		SalesOrderAddresses: 
		[
			{
				AddressType: General,
				AddressLine1: String,
				AddressLine2: String,
				AddressLine3: String,
				Name: String,
				Phone: String,
				Email: String,
				TaxIdNumber: String,
				Organization: String,
				City: String,
				State: String,
				Country: NONE,
				CountryName: String,
				Longitude: String,
				Latitude: String,
				ZipCode: String
			}
		],
		SalesOrderContactPerson: String,
		SalesOrderInventoryLocationID: 0,
		SalesOrderCustomFlag1: False,
		SalesOrderCustomFlag2: False,
		SalesOrderCustomFlag3: False,
		SalesOrderCustomFlag4: False,
		SalesOrderCustomFlag5: False,
		SalesOrderCustomFlag6: False,
		SalesOrderCustomFlag7: False,
		SalesOrderCustomFlag8: False,
		SalesOrderCustomFlag9: False,
		SalesOrderCustomFlag10: False,
		SalesOrderComments: String,
		SalesOrderTags: String,
		SalesOrderPaymentTermsEnumeration: None,
		SalesOrderPaymentMethod: None,
		SalesOrderTotalQuantity: 0,
		SalesOrderAmountSubtotalWithoutTaxAndDiscount: 0.00,
		SalesOrderAmountShipping: 0.00,
		SalesOrderAmountTotalDiscount: 0.00,
		SalesOrderAmountTotalTax: 0.00,
		SalesOrderAmountGrandTotal: 0.00,
		SalesOrderTotalWeight: 0,
		SalesOrderTotalWeightUnitID: 0,
		SalesOrderDetails: 
		[
			{
				SalesOrderRowDetailID: 0,
				SalesOrderRowProductID: 0,
				SalesOrderRowProductSKU: String,
				SalesOrderRowProductDescription: String,
				SalesOrderRowQuantity: 0,
				SalesOrderRowShippedQuantity: 0,
				SalesOrderRowInvoicedQuantity: 0,
				SalesOrderRowUnitPriceWithoutTaxOrDiscount: 0,
				SalesOrderRowTaxID: 0,
				SalesOrderTotalTaxAmount: 0,
				SalesOrderRowDiscountID: 0,
				SalesOrderRowTotalDiscountAmount: 0,
				SalesOrderRowTotalAmount: 0,
				SalesOrderRowSerialNumbers: 
				[
					String
				],
				SalesOrderRowBatchNumbers: 
				[
					{
						BatchNumberName: String,
						ExpiryDate: 0001-01-01,
						AssignedQTYInDetail: 0
					}
				],
				SalesOrderRowRemarks: String,
				SalesOrderRowTotalWeight: 0,
				SalesOrderRowTotalWeightUnitID: 0
			}
		],
		SalesOrderShippingProviderInfo: 
		{
			ProviderInfo: 
			{
				ProviderId: 0,
				ServiceId: String,
				PackageId: String
			},
			CostInfo: 
			{
				ShippingCost: 0,
				OtherCosts: 0,
				TotalCost: 0
			},
			WeightInfo: 
			{
				Weight: 0,
				WeightUnitId: 0
			},
			ShipDateInfo: 
			{
				ShipDate: String
			},
			GenericAftersalesProServicesInfo: 
			{
				COD: False,
				GTEEC: False,
				Protocol: False,
				Reception: False,
				Insurance: False,
				ChequeCod: False,
				SpecialRate: False,
				VipDelivery: False,
				SenderCharge: False,
				PackageReturn: False,
				ReturnDocument: False,
				CodTotalInCents: 0,
				MorningDelivery: False,
				SameDayIntracity: False,
				SaturdayDelivery: False,
				SeaFreightCyprus: False,
				RefrigeratedGoods: False,
				LessThanTwoKilograms: False,
				LessThanFourKilograms: False,
				SubmissionOfTenderDocuments: False,
				NextDayAirTransportToIslands: False,
				ContainsDocumentsOnlyAndIsLessThanTwoKilograms: False
			},
			TrackingId: String,
			LockerId: 0
		},
		SalesOrderShipDocumentTypeID: String,
		SalesOrderShipDocumentNo: String,
		SalesOrderStatus: ValidStatus,
		chkReOpenOrCloseRelatedDocs: False,
		SalesOrderCreationDate: 0001-01-01,
		SalesOrderLastUpdatedDate: 0001-01-01,
		SalesOrderShipDocumentIssueDate: 0001-01-01
	},
	mvRecordAction: Insert,
	mvInsertUpdateDeleteSourceApplication: String,
	AutoInsertBundledProductRows: False,
	AutoInsertBatchNumbersToProductRows: Undefined
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	mvSalesOrder: 
	{
		SalesOrderId: 0,
		SalesOrderTypeId: 0,
		SalesOrderTypeAbbreviation: String,
		SalesOrderTypeDescription: String,
		SalesOrderNo: String,
		SalesOrderReferenceNo: String,
		SalesOrderReferenceApplication: String,
		SalesOrderDate: 0001-01-01,
		SalesOrderCustomOrderDate1: 0001-01-01,
		SalesOrderCustomOrderDate2: 0001-01-01,
		SalesOrderCurrencyCode: String,
		SalesOrderClientID: 0,
		SalesOrderClientName: String,
		SalesOrderBillingAddress: String,
		SalesOrderShippingAddress: String,
		SalesOrderAddresses: 
		[
			{
				AddressType: General,
				AddressLine1: String,
				AddressLine2: String,
				AddressLine3: String,
				Name: String,
				Phone: String,
				Email: String,
				TaxIdNumber: String,
				Organization: String,
				City: String,
				State: String,
				Country: NONE,
				CountryName: String,
				Longitude: String,
				Latitude: String,
				ZipCode: String
			}
		],
		SalesOrderContactPerson: String,
		SalesOrderInventoryLocationID: 0,
		SalesOrderCustomFlag1: False,
		SalesOrderCustomFlag2: False,
		SalesOrderCustomFlag3: False,
		SalesOrderCustomFlag4: False,
		SalesOrderCustomFlag5: False,
		SalesOrderCustomFlag6: False,
		SalesOrderCustomFlag7: False,
		SalesOrderCustomFlag8: False,
		SalesOrderCustomFlag9: False,
		SalesOrderCustomFlag10: False,
		SalesOrderComments: String,
		SalesOrderTags: String,
		SalesOrderPaymentTermsEnumeration: None,
		SalesOrderPaymentMethod: None,
		SalesOrderTotalQuantity: 0,
		SalesOrderAmountSubtotalWithoutTaxAndDiscount: 0.00,
		SalesOrderAmountShipping: 0.00,
		SalesOrderAmountTotalDiscount: 0.00,
		SalesOrderAmountTotalTax: 0.00,
		SalesOrderAmountGrandTotal: 0.00,
		SalesOrderTotalWeight: 0,
		SalesOrderTotalWeightUnitID: 0,
		SalesOrderDetails: 
		[
			{
				SalesOrderRowDetailID: 0,
				SalesOrderRowProductID: 0,
				SalesOrderRowProductSKU: String,
				SalesOrderRowProductDescription: String,
				SalesOrderRowQuantity: 0,
				SalesOrderRowShippedQuantity: 0,
				SalesOrderRowInvoicedQuantity: 0,
				SalesOrderRowUnitPriceWithoutTaxOrDiscount: 0,
				SalesOrderRowTaxID: 0,
				SalesOrderTotalTaxAmount: 0,
				SalesOrderRowDiscountID: 0,
				SalesOrderRowTotalDiscountAmount: 0,
				SalesOrderRowTotalAmount: 0,
				SalesOrderRowSerialNumbers: 
				[
					String
				],
				SalesOrderRowBatchNumbers: 
				[
					{
						BatchNumberName: String,
						ExpiryDate: 0001-01-01,
						AssignedQTYInDetail: 0
					}
				],
				SalesOrderRowRemarks: String,
				SalesOrderRowTotalWeight: 0,
				SalesOrderRowTotalWeightUnitID: 0
			}
		],
		SalesOrderShippingProviderInfo: 
		{
			ProviderInfo: 
			{
				ProviderId: 0,
				ServiceId: String,
				PackageId: String
			},
			CostInfo: 
			{
				ShippingCost: 0,
				OtherCosts: 0,
				TotalCost: 0
			},
			WeightInfo: 
			{
				Weight: 0,
				WeightUnitId: 0
			},
			ShipDateInfo: 
			{
				ShipDate: String
			},
			GenericAftersalesProServicesInfo: 
			{
				COD: False,
				GTEEC: False,
				Protocol: False,
				Reception: False,
				Insurance: False,
				ChequeCod: False,
				SpecialRate: False,
				VipDelivery: False,
				SenderCharge: False,
				PackageReturn: False,
				ReturnDocument: False,
				CodTotalInCents: 0,
				MorningDelivery: False,
				SameDayIntracity: False,
				SaturdayDelivery: False,
				SeaFreightCyprus: False,
				RefrigeratedGoods: False,
				LessThanTwoKilograms: False,
				LessThanFourKilograms: False,
				SubmissionOfTenderDocuments: False,
				NextDayAirTransportToIslands: False,
				ContainsDocumentsOnlyAndIsLessThanTwoKilograms: False
			},
			TrackingId: String,
			LockerId: 0
		},
		SalesOrderShipDocumentTypeID: String,
		SalesOrderShipDocumentNo: String,
		SalesOrderStatus: ValidStatus,
		chkReOpenOrCloseRelatedDocs: False,
		SalesOrderCreationDate: 0001-01-01,
		SalesOrderLastUpdatedDate: 0001-01-01,
		SalesOrderShipDocumentIssueDate: 0001-01-01
	},
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String
			}
		]
	},
	entityID: 0,
	relatedDocumentID: 0,
	InternalErrorCode: String
}