Megaventory API v2017a

<back to all web services

PricingRuleUpdate

The following routes are available for this service:
POST/PricingRule/PricingRuleUpdateInserts a pricing rule or updates a current pricing rule.Uses your API Key and applies a mvRecordAction value on an mvPricingRule object. We can insert the mvPricingRule object we specified using "Insert" as our mvRecordAction. We can update a current one using "Update", we can insert it if it doesn't already exist, update it if it does using "InsertOrUpdate" and we can insert new fields or update non-empty fields of the object using "InsertOrUpdateNonEmptyFields". Optionally, you can use mvInsertUpdateDeleteSourceApplication when an external application ( eg WooCommerce ) is the one that triggers the PricingRuleUpdate call. PricingRuleId cannot be updated.

Examples:



A.

Insert a new pricing rule.
PricingRuleUsedByModule field is required for the insert operation and its value should be either 1 for Sales Pricing Rule or 2 for Purchase Pricing Rule.

Value:

 {
   "mvPricingRule": {
      "PricingRuleName": "Sales Pricing Rule",
      "PricingRuleCurrency": "EUR",
      "PricingRuleBasePrice": "DefaultSalesPrice",
      "PricingRuleSpExchangeRate": 2,
      "PricingRuleUsedByModule": 1
   },
   "mvRecordAction": "Insert"
}
  


Response:

 {
   "mvPricingRule": {
      "PricingRuleID": 174,
      "PricingRuleName": "Sales Pricing Rule",
      "PricingRuleCurrency": "EUR",
      "PricingRuleBasePrice": "DefaultSalesPrice",
      "PricingRuleSpExchangeRate": 2,
      "PricingRuleSpecificEntities": false,
      "PricingRuleSpecificProducts": false,
      "PricingRuleSpecificProductCategories": false,
      "PricingRuleDateModified": "/Date(-62135596800000-0000)/",
      "PricingRuleDateCreated": "/Date(1576844453705+0200)/",
      "PricingRuleUsedByModule": 1
   },
   "ResponseStatus": {
      "ErrorCode": "0"
   },
   "entityID": 174
}
 

B.

Update information on the pricing rule above. PricingRuleID is mandatory and cannot be updated.

Value:

 {
   "mvPricingRule": {
      "PricingRuleID": 174,
      "PricingRuleName": "Sales Pricing Rule",
      "PricingRuleCurrency": "EUR",
      "PricingRuleBasePrice": "DefaultSalesPrice",
      "PricingRuleSpExchangeRate": 2,
      "PricingRuleSpecificEntities": true,
      "PricingRuleSpecificProductCategories": false,
      "PricingRuleStartDate": "3/28/2021, 1:33:11 PM",
      "PricingRuleEndDate": "5/28/2021, 1:33:11 PM"
   },
   "mvRecordAction": "Update"
}
  


Response:

 {
   "mvPricingRule": {
    "PricingRuleID": 174,
    "PricingRuleName": "Sales Pricing Rule",
    "PricingRuleCurrency": "EUR",
    "PricingRuleBasePrice": "DefaultSalesPrice",
    "PricingRuleSpExchangeRate": 2,
    "PricingRuleSpecificEntities": true,
    "PricingRuleSpecificProducts": false,
    "PricingRuleSpecificProductCategories": false,
    "PricingRuleStartDate": "/Date(1546639200000+0200)/",
    "PricingRuleEndDate": "/Date(1548367200000+0200)/",
    "PricingRuleDateModified": "/Date(-62135596800000-0000)/",
    "PricingRuleDateCreated": "/Date(-62135596800000-0000)/",
    "PricingRuleUsedByModule": 1
   },
   "ResponseStatus": {
      "ErrorCode": "0"
   },
   "entityID": 174
}
 

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

{
	APIKEY: String,
	mvPricingRule: 
	{
		PricingRuleID: 0,
		PricingRuleName: String,
		PricingRuleCurrency: String,
		PricingRuleBasePrice: DefaultSalesPrice,
		PricingRuleSpExchangeRate: 0,
		PricingRuleAddPercent: 0,
		PricingRuleAddFixedAmount: 0,
		PricingRuleUnitPriceRoundingDigits: 0,
		PricingRuleDefaultDiscountId: 0,
		PricingRuleDefaultTaxId: 0,
		PricingRuleSpecificEntities: False,
		PricingRuleSpecificProducts: False,
		PricingRuleSpecificProductCategories: False,
		PricingRuleStartDate: 0001-01-01,
		PricingRuleEndDate: 0001-01-01,
		PricingRuleMinQty: 0,
		PricingRuleMaxQty: 0,
		PricingRuleDateModified: 0001-01-01,
		PricingRuleDateCreated: 0001-01-01,
		PricingRuleUsedByModule: 0
	},
	mvRecordAction: Insert,
	mvInsertUpdateDeleteSourceApplication: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	mvPricingRule: 
	{
		PricingRuleID: 0,
		PricingRuleName: String,
		PricingRuleCurrency: String,
		PricingRuleBasePrice: DefaultSalesPrice,
		PricingRuleSpExchangeRate: 0,
		PricingRuleAddPercent: 0,
		PricingRuleAddFixedAmount: 0,
		PricingRuleUnitPriceRoundingDigits: 0,
		PricingRuleDefaultDiscountId: 0,
		PricingRuleDefaultTaxId: 0,
		PricingRuleSpecificEntities: False,
		PricingRuleSpecificProducts: False,
		PricingRuleSpecificProductCategories: False,
		PricingRuleStartDate: 0001-01-01,
		PricingRuleEndDate: 0001-01-01,
		PricingRuleMinQty: 0,
		PricingRuleMaxQty: 0,
		PricingRuleDateModified: 0001-01-01,
		PricingRuleDateCreated: 0001-01-01,
		PricingRuleUsedByModule: 0
	},
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String
			}
		]
	},
	entityID: 0,
	InternalErrorCode: String
}