Salesforce maintains a Quote object out of the box - the OPEN API quote resource will be mapped against the Salesforce Quote object.
Salesforce requires that a quote be created against an Opportunity Object (it is a sub object of an opportunity). In order to create a quote, and opportunity must first be created and referenced in the quote creation (all other operations can work directly on the quote record).
GET /quoteManagement/quote/{ID}
Creation of quotes is supported (not all fields are mapped)
RESOURCE | ELEMENT | SALESFORCE FIELD | OTB MAPPING |
---|---|---|---|
{ | |||
id | Quote.id | YES | |
href | GENERATED | ||
externalId | Quote.TMF_External_ID__c | NEW | |
description | Quote.description | YES | |
category | Quote.TMF_Category__c | NEW (Enterprise, Corporate, SME, Residential) | |
state | Quote.status | YES (—None—, Draft, Needs Review, In Review, Approved, Rejected, Presented, Accepted, Denied) | |
version | Quote.TMF_Version__c | NEW | |
quoteDate | Quote.createdDate | YES | |
effectiveQuoteCompletionDate | Quote.TMF_Effective_Completion_Date__c | NEW | |
quoteCompletionDate | Quote.TMF_Completion_Date__c | NEW | |
notificationContact | Quote.email | YES | |
validFor.startDateTime | Quote.TMF_Valid_From__c | YES | |
validFor.endDateTime | Quote.ExpirationDate | YES | |
billingAccount[] | NO | ||
note[] | NO | ||
characteristic[] | NO | ||
customer{} | YES | ||
relatedParty[] | NO | ||
agreement{} | NO | ||
quoteAuthorization[] | NO | ||
QuoteItem[] | YES | ||
} | |||
customer{ | |||
id | Quote.AccountID | YES | |
href | GENERATED | ||
name | Quote.AccountID.Name | YES | |
} | |||
QuoteItem{ | |||
Id | Quote.QuoteLineItem.ID | YES | |
state | Quote.QuoteLineItem.TMF_State__c | NEW | |
appointment | Quote.QuoteLineItem.TMF_Appointment | NEW | |
LineItemNumber | Quote.QuoteLineItem.LineItemNumber | YES | |
LineItemDescription | Quote.QuoteLineItem.LineItemDescription | YES | |
subTotal | Quote.QuoteLineItem.SubTotal | YES | |
discount | Quote.QuoteLineItem.Discount | YES | |
salesPrice | Quote.QuoteLineItem.SalesPrice | YES | |
totalPrice | Quote.QuoteLineItem.TotalPrice | YES | |
quantity | Quote.QuoteLineItem.Quantity | YES | |
} | |||
ProductOffering{ | |||
PATCH /quoteManagement/quote/{ID}
PATCH is supported to update elements of a quote (empty fields will not delete the values)
RESOURCE | ELEMENT | SALESFORCE FIELD | OTB MAPPING |
---|---|---|---|
{ | |||
description | Quote.description | YES | |
category | Quote.category | NEW | |
state | Quote.status | YES (—None—, Draft, Needs Review, In Review, Approved, Rejected, Presented, Accepted, Denied) | |
quoteCompletionDate | Quote.quoteCompletionDate | NEW | |
notificationContact | Quote.email | YES | |
validFor.startDateTime | |||
validFor.endDateTime | Quote.ExpirationDate | YES | |
billingAccount note | NO | ||
characteristic | NO | ||
relatedParty | NO | ||
agreement | NO | ||
quoteAuthorization | NO | ||
quoteAuthorization.attachment | NO | ||
quoteProductOfferingPrice.quotePriceAlteration | NO | ||
quoteItem.state | NO | ||
quoteItem.appointment | NO | ||
quoteItem.attachment | NO | ||
quoteItem.relatedParty | NO | ||
quoteItem.productOffering | Quote.LineItemId | YES | |
quoteItem.ProductCharacteristic.name | Quote.LineItem.Product2Id | YES | |
quoteItem.ProductCharacteristic.value | NO | ||
quoteItem.Bundledproduct.id | NO | ||
quoteItem.Bundledproduct.href | NO | ||
note | NO | ||
itemQuoteAuthorization | NO | ||
itemQuoteProductOfferingPrice | NO | ||
} |
POST /quoteManagement/quote
Quote Creation is supported (not all fields)
RESOURCE | ELEMENT | SALESFORCE FIELD | OTB MAPPING |
---|---|---|---|
{ | |||
id | |||
href | |||
externalId | |||
description | Quote.description | YES | |
category | Quote.category | NEW | |
state | Quote.status | YES (—None—, Draft, Needs Review, In Review, Approved, Rejected, Presented, Accepted, Denied) | |
version | Quote.version | NEW | |
quoteDate | Quote.createdDate | YES | |
effectiveQuoteCompletionDate | NO | ||
quoteCompletionDate | Quote.quoteCompletionDate | NEW | |
notificationContact | Quote.email | YES | |
validFor.endDateTime | Quote.ExpirationDate | YES | |
billingAccount[] | NO | ||
note[] | NO | ||
characteristic[] | NO | ||
customer{} | YES | ||
relatedParty[] | NO | ||
agreement{} | NO | ||
quoteAuthorization[] | NO | ||
} | |||
customer{ | |||
id | Quote.AccountID | YES | |
href | GENERATED | ||
name | Quote.AccountID.Name | YES | |
} |
DELETE QUOTEMANAGEMENT/QUOTE/{ID}
Deletion of Quote by ID is supported (will execute a csacade delete)