Newer Version Available

This content describes an older version of this product. View Latest

Partner Order Submit API

The Partner Order Submit API can be used to submit orders immediately or asynchronously.

Syntax

Usage

Use sendOrderAsync when you want to create or update multiple orders and send them in the same transaction. See the example in this section for more details.

Rules and Guidelines

This is an Apex implementation, so all Apex usage rules and limits apply. Currently we only support 1 order per call.

The Partner Submit API is used to send an order after it has been created, using a valid Service Order ID. You can create Service Order and Service Order Detail records using the Channel Order App, data loading, or automated processing.

Each order must include the following fields:

Field names are prefixed with CHANNEL_ORDERS__ unless noted.

Note

Table 1. Service Order Fields
Field Label Field Name Description
Created with New COA Created_with_new_COA__c Indicates you are using the latest version of the Channel Order App.

Always check this field to ensure proper processing.

Note

Contract Partner_Contract_Rules__c This field is a lookup to the Contract Terms record.
Customer Company Name Customer__c This field is a lookup to the Customer record, which includes the address and org details.

You must use an existing Customer record; you can’t populate the customer name and address fields using the API.

Note

Date Partner Received Customer Order Date_Partner_Received_Customer_Order__c The date you received the order.
Date Customer Accepted SFDC Service Agreement Date_Customer_Accepted_SFDC_Svc_Agrmnt__c The date the customer accepted the salesforce.com service agreement. Only required for OEM contracts.
I Certify a Corresponding Order is Rec’d I_certify__c Confirmation that the order has been received.
Order Type Order_Type__c Accepted values:
  • Initial
  • Add-On
  • Reduction
  • Cancellation Order
  • Upgrade-Partner App
  • Upgrade-Org Edition
Service Order ID Name The ID of the service order. (Standard field; not prefixed with CHANNEL_ORDERS__.)
Service Order Status Service_Order_Status__c The current status of the service order:
  • Draft
  • Error
  • Received
  • Processed

You can only submit orders with a status of Draft.

Note

Service Start Date Service_Start_Date__c The date service should begin.
Table 2. Service Order Details Fields
Field Label Field Name Description
Billing Frequency pc_Billing_Frequency__c Must match contract with salesforce.com unless you have been granted override permissions.
Cancellation Terms (days) pc_Cancellation_Terms__c Must match contract with salesforce.com unless you have been granted override permissions.
Contract Auto Renew pc_Contract_Auto_Renew__c Must match contract with salesforce.com unless you have been granted override permissions.
Contract Length pc_Contract_Length__c Must match contract with salesforce.com unless you have been granted override permissions.
Customer Price Customer_Price_Per_Month__c The price in units per month. Only required for PNR products.
Partner Contract Term pc_Partner_Contract_Term__c This field is a lookup to the Contract Terms record.
Product Product_Name__c This field is a lookup to the Product Catalog record.
Renewal Terms (months) pc_Renewal_Terms__c Must match contract with salesforce.com unless you have been granted override permissions.
Service Order Partner_Order__c This field is a lookup to the Service Order.
SFDC Invoice Description Product_Line_Description__c Optional. This field should contain anything extra you want added to the invoice, including your identification information.
Total Quantity Quantity__c The total quantity of Product Catalogs in the service order.

Methods

The ServiceOrderProcessor object supports the following methods:

Name Arguments Description
sendOrder ID Submit an order with a single ID immediately.
sendOrder Set of IDs Submit an order with a set of IDs immediately.
sendOrderAsync ID Submit an order with a single ID asynchronously (@future).
sendOrderAsync Set of IDs Submit an order with a set of IDs asynchronously (@future).

Example: Batching on the Partner Order Submit API

As noted above, only 1 call can be processed at a time. This example uses a batch job to work around this limitation.

In the example below, if you have 100 orders in Draft status, the code will create one batch job with 100 executions, because only one record is processed per execution, in the last line in the example.