Objective-C / Salesforce Platform APIs / Calculate Price (New Sale Bundles)
Back to Collection Items
#import <CkoHttp.h>
#import <CkoJsonObject.h>
#import <CkoHttpResponse.h>
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoHttp *http = [[CkoHttp alloc] init];
BOOL success;
// Use this online tool to generate code from sample JSON: Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "listPricebookId": "{{standardPricebook}}",
// "candidatePricebookIds": [
// "{{standardPricebook}}"
// ],
// "pricingFlow": "GET_PRICE_USING_CONTEXT",
// "graph": {
// "graphId": "1",
// "records": [
// {
// "referenceId": "ref_sales_txn",
// "record": {
// "attributes": {
// "type": "SalesTransactionShape"
// },
// "CurrencyIsoCode": "USD"
// }
// },
// {
// "referenceId": "ref_sales_txn_item1",
// "record": {
// "attributes": {
// "type": "SalesTransactionItemShape"
// },
// "SalesTransactionShapeId": "@{ref_sales_txn.Id}",
// "StartDate": "2022-01-01",
// "ProductId": "{{WorkAnywhereBundleProduct}}",
// "ProductSellingModelId": "{{EvergreenMonthlyPSM}}",
// "Quantity": 10.0,
// "PricingTransactionType": "NewSale",
// "CurrencyIsoCode": "USD"
// }
// },
// {
// "referenceId": "ref_sales_txn_item2",
// "record": {
// "attributes": {
// "type": "SalesTransactionItemShape"
// },
// "SalesTransactionShapeId": "@{ref_sales_txn.Id}",
// "StartDate": "2023-01-01",
// "ProductId": "{{VirtualRouterProduct}}",
// "ProductSellingModelId": "{{EvergreenMonthlyPSM}}",
// "Quantity": 10.0,
// "PricingTransactionType": "NewSale",
// "CurrencyIsoCode": "USD"
// }
// },
// {
// "referenceId": "ref_sales_txn_item3",
// "record": {
// "attributes": {
// "type": "SalesTransactionItemShape"
// },
// "SalesTransactionShapeId": "@{ref_sales_txn.Id}",
// "StartDate": "2023-01-01",
// "ProductId": "{{SLA_BronzeProduct}}",
// "ProductSellingModelId": "{{EvergreenMonthlyPSM}}",
// "Quantity": 10.0,
// "PricingTransactionType": "NewSale",
// "CurrencyIsoCode": "USD"
// }
// },
// {
// "referenceId": "ref_sales_txn_item4",
// "record": {
// "attributes": {
// "type": "SalesTransactionItemShape"
// },
// "SalesTransactionShapeId": "@{ref_sales_txn.Id}",
// "StartDate": "2023-01-01",
// "ProductId": "{{ClassTrainingProduct}}",
// "ProductSellingModelId": "{{OneTimePSM}}",
// "Quantity": 50.0,
// "PricingTransactionType": "NewSale",
// "CurrencyIsoCode": "USD"
// }
// },
// {
// "referenceId": "ref_rel1",
// "record": {
// "attributes": {
// "type": "SalesTrxnItemRelationShape"
// },
// "MainSalesTrxnItemShapeId": "@{ref_sales_txn_item1.Id}",
// "AssocSalesTrxnItemShapeId": "@{ref_sales_txn_item2.Id}",
// "MainSalesTrxnItemShapeRole": "Bundle",
// "AssocSalesTrxnItemShapeRole": "BundleComponent",
// "AssociatedItemShapePricing": "IncludedInBundlePrice"
// }
// },
// {
// "referenceId": "ref_rel2",
// "record": {
// "attributes": {
// "type": "SalesTrxnItemRelationShape"
// },
// "MainSalesTrxnItemShapeId": "@{ref_sales_txn_item1.Id}",
// "AssocSalesTrxnItemShapeId": "@{ref_sales_txn_item3.Id}",
// "MainSalesTrxnItemShapeRole": "Bundle",
// "AssocSalesTrxnItemShapeRole": "BundleComponent",
// "AssociatedItemShapePricing": "IncludedInBundlePrice"
// }
// },
// {
// "referenceId": "ref_rel3",
// "record": {
// "attributes": {
// "type": "SalesTrxnItemRelationShape"
// },
// "MainSalesTrxnItemShapeId": "@{ref_sales_txn_item1.Id}",
// "AssocSalesTrxnItemShapeId": "@{ref_sales_txn_item4.Id}",
// "MainSalesTrxnItemShapeRole": "Bundle",
// "AssocSalesTrxnItemShapeRole": "BundleComponent",
// "AssociatedItemShapePricing": "NotIncludedInBundlePrice"
// }
// }
// ]
// }
// }
CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateString: @"listPricebookId" value: @"{{standardPricebook}}"];
[json UpdateString: @"candidatePricebookIds[0]" value: @"{{standardPricebook}}"];
[json UpdateString: @"pricingFlow" value: @"GET_PRICE_USING_CONTEXT"];
[json UpdateString: @"graph.graphId" value: @"1"];
[json UpdateString: @"graph.records[0].referenceId" value: @"ref_sales_txn"];
[json UpdateString: @"graph.records[0].record.attributes.type" value: @"SalesTransactionShape"];
[json UpdateString: @"graph.records[0].record.CurrencyIsoCode" value: @"USD"];
[json UpdateString: @"graph.records[1].referenceId" value: @"ref_sales_txn_item1"];
[json UpdateString: @"graph.records[1].record.attributes.type" value: @"SalesTransactionItemShape"];
[json UpdateString: @"graph.records[1].record.SalesTransactionShapeId" value: @"@{ref_sales_txn.Id}"];
[json UpdateString: @"graph.records[1].record.StartDate" value: @"2022-01-01"];
[json UpdateString: @"graph.records[1].record.ProductId" value: @"{{WorkAnywhereBundleProduct}}"];
[json UpdateString: @"graph.records[1].record.ProductSellingModelId" value: @"{{EvergreenMonthlyPSM}}"];
[json UpdateNumber: @"graph.records[1].record.Quantity" numericStr: @"10.0"];
[json UpdateString: @"graph.records[1].record.PricingTransactionType" value: @"NewSale"];
[json UpdateString: @"graph.records[1].record.CurrencyIsoCode" value: @"USD"];
[json UpdateString: @"graph.records[2].referenceId" value: @"ref_sales_txn_item2"];
[json UpdateString: @"graph.records[2].record.attributes.type" value: @"SalesTransactionItemShape"];
[json UpdateString: @"graph.records[2].record.SalesTransactionShapeId" value: @"@{ref_sales_txn.Id}"];
[json UpdateString: @"graph.records[2].record.StartDate" value: @"2023-01-01"];
[json UpdateString: @"graph.records[2].record.ProductId" value: @"{{VirtualRouterProduct}}"];
[json UpdateString: @"graph.records[2].record.ProductSellingModelId" value: @"{{EvergreenMonthlyPSM}}"];
[json UpdateNumber: @"graph.records[2].record.Quantity" numericStr: @"10.0"];
[json UpdateString: @"graph.records[2].record.PricingTransactionType" value: @"NewSale"];
[json UpdateString: @"graph.records[2].record.CurrencyIsoCode" value: @"USD"];
[json UpdateString: @"graph.records[3].referenceId" value: @"ref_sales_txn_item3"];
[json UpdateString: @"graph.records[3].record.attributes.type" value: @"SalesTransactionItemShape"];
[json UpdateString: @"graph.records[3].record.SalesTransactionShapeId" value: @"@{ref_sales_txn.Id}"];
[json UpdateString: @"graph.records[3].record.StartDate" value: @"2023-01-01"];
[json UpdateString: @"graph.records[3].record.ProductId" value: @"{{SLA_BronzeProduct}}"];
[json UpdateString: @"graph.records[3].record.ProductSellingModelId" value: @"{{EvergreenMonthlyPSM}}"];
[json UpdateNumber: @"graph.records[3].record.Quantity" numericStr: @"10.0"];
[json UpdateString: @"graph.records[3].record.PricingTransactionType" value: @"NewSale"];
[json UpdateString: @"graph.records[3].record.CurrencyIsoCode" value: @"USD"];
[json UpdateString: @"graph.records[4].referenceId" value: @"ref_sales_txn_item4"];
[json UpdateString: @"graph.records[4].record.attributes.type" value: @"SalesTransactionItemShape"];
[json UpdateString: @"graph.records[4].record.SalesTransactionShapeId" value: @"@{ref_sales_txn.Id}"];
[json UpdateString: @"graph.records[4].record.StartDate" value: @"2023-01-01"];
[json UpdateString: @"graph.records[4].record.ProductId" value: @"{{ClassTrainingProduct}}"];
[json UpdateString: @"graph.records[4].record.ProductSellingModelId" value: @"{{OneTimePSM}}"];
[json UpdateNumber: @"graph.records[4].record.Quantity" numericStr: @"50.0"];
[json UpdateString: @"graph.records[4].record.PricingTransactionType" value: @"NewSale"];
[json UpdateString: @"graph.records[4].record.CurrencyIsoCode" value: @"USD"];
[json UpdateString: @"graph.records[5].referenceId" value: @"ref_rel1"];
[json UpdateString: @"graph.records[5].record.attributes.type" value: @"SalesTrxnItemRelationShape"];
[json UpdateString: @"graph.records[5].record.MainSalesTrxnItemShapeId" value: @"@{ref_sales_txn_item1.Id}"];
[json UpdateString: @"graph.records[5].record.AssocSalesTrxnItemShapeId" value: @"@{ref_sales_txn_item2.Id}"];
[json UpdateString: @"graph.records[5].record.MainSalesTrxnItemShapeRole" value: @"Bundle"];
[json UpdateString: @"graph.records[5].record.AssocSalesTrxnItemShapeRole" value: @"BundleComponent"];
[json UpdateString: @"graph.records[5].record.AssociatedItemShapePricing" value: @"IncludedInBundlePrice"];
[json UpdateString: @"graph.records[6].referenceId" value: @"ref_rel2"];
[json UpdateString: @"graph.records[6].record.attributes.type" value: @"SalesTrxnItemRelationShape"];
[json UpdateString: @"graph.records[6].record.MainSalesTrxnItemShapeId" value: @"@{ref_sales_txn_item1.Id}"];
[json UpdateString: @"graph.records[6].record.AssocSalesTrxnItemShapeId" value: @"@{ref_sales_txn_item3.Id}"];
[json UpdateString: @"graph.records[6].record.MainSalesTrxnItemShapeRole" value: @"Bundle"];
[json UpdateString: @"graph.records[6].record.AssocSalesTrxnItemShapeRole" value: @"BundleComponent"];
[json UpdateString: @"graph.records[6].record.AssociatedItemShapePricing" value: @"IncludedInBundlePrice"];
[json UpdateString: @"graph.records[7].referenceId" value: @"ref_rel3"];
[json UpdateString: @"graph.records[7].record.attributes.type" value: @"SalesTrxnItemRelationShape"];
[json UpdateString: @"graph.records[7].record.MainSalesTrxnItemShapeId" value: @"@{ref_sales_txn_item1.Id}"];
[json UpdateString: @"graph.records[7].record.AssocSalesTrxnItemShapeId" value: @"@{ref_sales_txn_item4.Id}"];
[json UpdateString: @"graph.records[7].record.MainSalesTrxnItemShapeRole" value: @"Bundle"];
[json UpdateString: @"graph.records[7].record.AssocSalesTrxnItemShapeRole" value: @"BundleComponent"];
[json UpdateString: @"graph.records[7].record.AssociatedItemShapePricing" value: @"NotIncludedInBundlePrice"];
// Adds the "Authorization: Bearer <access_token>" header.
http.AuthToken = @"<access_token>";
[http SetRequestHeader: @"Content-Type" value: @"application/json"];
CkoHttpResponse *resp = [http PostJson3: @"https://domain.com/services/data/v{{version}}/commerce/pricing/salestransaction/actions/calculate-price" contentType: @"application/json" json: json];
if (http.LastMethodSuccess == NO) {
NSLog(@"%@",http.LastErrorText);
return;
}
NSLog(@"%d",[resp.StatusCode intValue]);
NSLog(@"%@",resp.BodyStr);
Curl Command
curl -X POST
-H "Authorization: Bearer <access_token>"
-H "Content-Type: application/json"
-d '{
"listPricebookId": "{{standardPricebook}}",
"candidatePricebookIds": [
"{{standardPricebook}}"
],
"pricingFlow": "GET_PRICE_USING_CONTEXT",
"graph": {
"graphId": "1",
"records": [
{
"referenceId": "ref_sales_txn",
"record": {
"attributes": {
"type": "SalesTransactionShape"
},
"CurrencyIsoCode": "USD"
}
},
{
"referenceId": "ref_sales_txn_item1",
"record": {
"attributes": {
"type": "SalesTransactionItemShape"
},
"SalesTransactionShapeId": "@{ref_sales_txn.Id}",
"StartDate": "2022-01-01",
"ProductId": "{{WorkAnywhereBundleProduct}}",
"ProductSellingModelId": "{{EvergreenMonthlyPSM}}",
"Quantity": 10.0,
"PricingTransactionType": "NewSale",
"CurrencyIsoCode": "USD"
}
},
{
"referenceId": "ref_sales_txn_item2",
"record": {
"attributes": {
"type": "SalesTransactionItemShape"
},
"SalesTransactionShapeId": "@{ref_sales_txn.Id}",
"StartDate": "2023-01-01",
"ProductId": "{{VirtualRouterProduct}}",
"ProductSellingModelId": "{{EvergreenMonthlyPSM}}",
"Quantity": 10.0,
"PricingTransactionType": "NewSale",
"CurrencyIsoCode": "USD"
}
},
{
"referenceId": "ref_sales_txn_item3",
"record": {
"attributes": {
"type": "SalesTransactionItemShape"
},
"SalesTransactionShapeId": "@{ref_sales_txn.Id}",
"StartDate": "2023-01-01",
"ProductId": "{{SLA_BronzeProduct}}",
"ProductSellingModelId": "{{EvergreenMonthlyPSM}}",
"Quantity": 10.0,
"PricingTransactionType": "NewSale",
"CurrencyIsoCode": "USD"
}
},
{
"referenceId": "ref_sales_txn_item4",
"record": {
"attributes": {
"type": "SalesTransactionItemShape"
},
"SalesTransactionShapeId": "@{ref_sales_txn.Id}",
"StartDate": "2023-01-01",
"ProductId": "{{ClassTrainingProduct}}",
"ProductSellingModelId": "{{OneTimePSM}}",
"Quantity": 50.0,
"PricingTransactionType": "NewSale",
"CurrencyIsoCode": "USD"
}
},
{
"referenceId": "ref_rel1",
"record": {
"attributes": {
"type": "SalesTrxnItemRelationShape"
},
"MainSalesTrxnItemShapeId": "@{ref_sales_txn_item1.Id}",
"AssocSalesTrxnItemShapeId": "@{ref_sales_txn_item2.Id}",
"MainSalesTrxnItemShapeRole": "Bundle",
"AssocSalesTrxnItemShapeRole": "BundleComponent",
"AssociatedItemShapePricing": "IncludedInBundlePrice"
}
},
{
"referenceId": "ref_rel2",
"record": {
"attributes": {
"type": "SalesTrxnItemRelationShape"
},
"MainSalesTrxnItemShapeId": "@{ref_sales_txn_item1.Id}",
"AssocSalesTrxnItemShapeId": "@{ref_sales_txn_item3.Id}",
"MainSalesTrxnItemShapeRole": "Bundle",
"AssocSalesTrxnItemShapeRole": "BundleComponent",
"AssociatedItemShapePricing": "IncludedInBundlePrice"
}
},
{
"referenceId": "ref_rel3",
"record": {
"attributes": {
"type": "SalesTrxnItemRelationShape"
},
"MainSalesTrxnItemShapeId": "@{ref_sales_txn_item1.Id}",
"AssocSalesTrxnItemShapeId": "@{ref_sales_txn_item4.Id}",
"MainSalesTrxnItemShapeRole": "Bundle",
"AssocSalesTrxnItemShapeRole": "BundleComponent",
"AssociatedItemShapePricing": "NotIncludedInBundlePrice"
}
}
]
}
}'
https://domain.com/services/data/v{{version}}/commerce/pricing/salestransaction/actions/calculate-price
Postman Collection Item JSON
{
"name": "Calculate Price (New Sale Bundles)",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"listPricebookId\": \"{{standardPricebook}}\",\n \"candidatePricebookIds\": [\n \"{{standardPricebook}}\"\n ],\n \"pricingFlow\": \"GET_PRICE_USING_CONTEXT\",\n \"graph\": {\n \"graphId\": \"1\",\n \"records\": [\n {\n \"referenceId\": \"ref_sales_txn\",\n \"record\": {\n \"attributes\": {\n \"type\": \"SalesTransactionShape\"\n },\n \"CurrencyIsoCode\": \"USD\" \n }\n },\n {\n \"referenceId\": \"ref_sales_txn_item1\",\n \"record\": {\n \"attributes\": {\n \"type\": \"SalesTransactionItemShape\"\n },\n \"SalesTransactionShapeId\": \"@{ref_sales_txn.Id}\",\n \"StartDate\": \"2022-01-01\",\n \"ProductId\": \"{{WorkAnywhereBundleProduct}}\",\n \"ProductSellingModelId\": \"{{EvergreenMonthlyPSM}}\",\n \"Quantity\": 10.0,\n \"PricingTransactionType\": \"NewSale\",\n \"CurrencyIsoCode\": \"USD\" \n }\n },\n {\n \"referenceId\": \"ref_sales_txn_item2\",\n \"record\": {\n \"attributes\": {\n \"type\": \"SalesTransactionItemShape\"\n },\n \"SalesTransactionShapeId\": \"@{ref_sales_txn.Id}\",\n \"StartDate\": \"2023-01-01\",\n \"ProductId\": \"{{VirtualRouterProduct}}\",\n \"ProductSellingModelId\": \"{{EvergreenMonthlyPSM}}\",\n \"Quantity\": 10.0,\n \"PricingTransactionType\": \"NewSale\",\n \"CurrencyIsoCode\": \"USD\" \n }\n }, \n {\n \"referenceId\": \"ref_sales_txn_item3\",\n \"record\": {\n \"attributes\": {\n \"type\": \"SalesTransactionItemShape\"\n },\n \"SalesTransactionShapeId\": \"@{ref_sales_txn.Id}\",\n \"StartDate\": \"2023-01-01\",\n \"ProductId\": \"{{SLA_BronzeProduct}}\",\n \"ProductSellingModelId\": \"{{EvergreenMonthlyPSM}}\",\n \"Quantity\": 10.0,\n \"PricingTransactionType\": \"NewSale\",\n \"CurrencyIsoCode\": \"USD\" \n }\n },\n {\n \"referenceId\": \"ref_sales_txn_item4\",\n \"record\": {\n \"attributes\": {\n \"type\": \"SalesTransactionItemShape\"\n },\n \"SalesTransactionShapeId\": \"@{ref_sales_txn.Id}\",\n \"StartDate\": \"2023-01-01\",\n \"ProductId\": \"{{ClassTrainingProduct}}\",\n \"ProductSellingModelId\": \"{{OneTimePSM}}\",\n \"Quantity\": 50.0,\n \"PricingTransactionType\": \"NewSale\",\n \"CurrencyIsoCode\": \"USD\" \n }\n }, \n {\n \"referenceId\": \"ref_rel1\",\n \"record\": {\n \"attributes\": {\n \"type\": \"SalesTrxnItemRelationShape\"\n },\n \"MainSalesTrxnItemShapeId\": \"@{ref_sales_txn_item1.Id}\",\n \"AssocSalesTrxnItemShapeId\": \"@{ref_sales_txn_item2.Id}\",\n \"MainSalesTrxnItemShapeRole\": \"Bundle\",\n \"AssocSalesTrxnItemShapeRole\": \"BundleComponent\",\n \"AssociatedItemShapePricing\": \"IncludedInBundlePrice\"\n }\n },\n {\n \"referenceId\": \"ref_rel2\",\n \"record\": {\n \"attributes\": {\n \"type\": \"SalesTrxnItemRelationShape\"\n },\n \"MainSalesTrxnItemShapeId\": \"@{ref_sales_txn_item1.Id}\",\n \"AssocSalesTrxnItemShapeId\": \"@{ref_sales_txn_item3.Id}\",\n \"MainSalesTrxnItemShapeRole\": \"Bundle\",\n \"AssocSalesTrxnItemShapeRole\": \"BundleComponent\",\n \"AssociatedItemShapePricing\": \"IncludedInBundlePrice\"\n }\n },\n {\n \"referenceId\": \"ref_rel3\",\n \"record\": {\n \"attributes\": {\n \"type\": \"SalesTrxnItemRelationShape\"\n },\n \"MainSalesTrxnItemShapeId\": \"@{ref_sales_txn_item1.Id}\",\n \"AssocSalesTrxnItemShapeId\": \"@{ref_sales_txn_item4.Id}\",\n \"MainSalesTrxnItemShapeRole\": \"Bundle\",\n \"AssocSalesTrxnItemShapeRole\": \"BundleComponent\",\n \"AssociatedItemShapePricing\": \"NotIncludedInBundlePrice\"\n }\n } \n ]\n }\n}"
},
"url": {
"raw": "{{_endpoint}}/services/data/v{{version}}/commerce/pricing/salestransaction/actions/calculate-price",
"host": [
"{{_endpoint}}"
],
"path": [
"services",
"data",
"v{{version}}",
"commerce",
"pricing",
"salestransaction",
"actions",
"calculate-price"
]
},
"description": "Calculate the price of the Work Anywhere software bundle plus all it's bundle components for the pricing period of 1 month. Because this bundle is sold on an evergreen subscription rather than a termed subscription, the price is calculated per month rather than for the length of the subscription.\n\nAdd one RelationShape for each bundle component. Note that the classroom training product is not included in the bundle price, while the other two bundle components are.\n\nSee [Calculate Price](https://desktop.postman.com/?desktopVersion=10.13.6&webVersion=10.13.7-ui-230522-1730&userId=10709048&teamId=0)."
},
"response": [
]
}