Applying a Promotion to a Quote or an Order

When you use the Siebel REST API to apply a promotion to a quote or an order, the Siebel application takes the bundle promotion definition ID and adds an instance of the promotion, along with its default components, to a quote or to an order. We can also use this API to associate an existing line item to an existing promotion instance.

The following request applies a specific promotion to a quote or an order:

  • URI: http://ServerName:port/siebel/v1.0/service/Workflow Process Manager/RunProcess

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
    	"body": {
    		"ProcessName": "ISS Promotion WS - ApplyProductPromotion - Order",
    		"ProdPromId": "88-255DX",
    		"PricingMode": "Y",
    		"EligibilityMode": "1",
    		"SiebelMessage": {
    			"MessageId": "",
    			"MessageType": "Integration Object",
    			"IntObjectName": "PDS Order",
    			"IntObjectFormat": "Siebel Hierarchical",
    			"ListOfPDS Order": {
    				"Header": {
    					"Account": "R_Account",
    					"Account Id": "88-1V9XIA",
    					"Order Type": "Sales Order",
    					"Order Number": "88-1X9C57"
    				}
    			}
    		}
    	}
    }
    

For a description of the request message associated with this API, see the following table.

Name Description

Process Name

One of the following processes is required:

  • ISS Promotion WS - ApplyProductPromotion - Order

  • ISS Promotion WS - ApplyProductPromotion (This is the process name for Quote.)

ProdPromId

Required.

Promotion ID that is applied to the quote or order.

PricingMode

Optional. The default value is Y.

If the value set to Y, then the pricing is calculated for all line items in the in-memory document.

EligibilityMode

Optional. Valid values are 0, 1, or 2.

  • If set to 0, then the procedure is not run.

  • If set to 1, then the procedure is run, and all ineligible products are displayed with messages.

  • If set to 2, then the procedure is run, and ineligible products are not included in the pricing calculations.

    Note:

    This behavior is different from how other APIs behave where EligibilityMode is set to 2.

Quantity

Optional. The default value is 1.

Quantity of the promotion to be applied.

HeaderId

Optional, depending on usage. However, this is required if SiebelMessage is not provided.

Quote ID or Order ID.

Sync

Optional. The default value is N.

If set to Y, then an order or a quote is created or updated in the database.

ProdPromInstanceId

Optional.

Integration ID of the Promotion. If the promotion already exists in the document, and one more product needs to be added to the promotion instance, then this ID is passed.

LineItemId

Optional.

Line item ID of the product to which the promotion should be applied.

SiebelMessage

Optional, depending on usage. However, this is required if HeaderId is not provided.

PDS quote or PDS Order.

Here are the response details for a successful request:

  • HTTP Code: 200

  • Content-Type: application/json

  • Response body:
        {
    	"Error Code": "",
    	"Non Orderable Error": "",
    	"Error Message": "",
    	"SiebelMessage": {
    		"IntObjectName": "PDS Order",
    		"MessageType": "Integration   Object",
    		"Header": {
    			"Order Number": "88-1X9C57",
    			"Id": "88-1VAFOS",
    			"Account Id": "88-1V9XIA",
    			"Account": "R_Account",
    			"Order Type": "Sales Order",
    			"Line Item": [
    				{
    					"Asset Integration Id": "88-1VAFOQ",
    					"Name": "Millenium Max 1000 Package",
    					"Product Id": "88-255DX",
    					"Product Structure Type": "None"
    				},
    				{
    					"Asset Integration Id": "88-1VAFOW",
    					"Name": "Wireless Service",
    					"Product Id": "88-231H5",
    					"Product Prom Id": "88-255DX",
    					"Product Structure Type": "Customizable"
    				}
    			]
    		}
    	}
    	}