{"id":"6a798e62-35e2-4d46-ba14-768e309cb8b1","task":"Calculate a CPQ quote via ServiceRouter QuoteCalculator (PATCH)","domain":"Salesforce CPQ","steps":["Authenticate and obtain a Salesforce access token.","Read the current quote model using QuoteReader (GET ServiceRouter?reader=SBQQ.QuoteAPI.QuoteReader&uid={quoteId}) to obtain the full model object.","Apply any field changes to the quote model object in memory (e.g., adjusting quantities, discount amounts, or line-level fields).","Send a PATCH request to /services/apexrest/SBQQ/ServiceRouter?loader=SBQQ.QuoteAPI.QuoteCalculator with the modified quote model JSON in the request body.","CPQ re-evaluates price rules, discount schedules, and block pricing and returns the recalculated quote model with updated net prices and totals.","Inspect the returned model for pricing changes before persisting with QuoteSaver."],"gotchas":["The QuoteCalculator uses the 'loader' query parameter despite being a calculation operation — do not use 'reader' or 'saver' for this call.","Sending a quote model with missing or corrupted fields can cause CPQ to produce incorrect prices silently; always start from a freshly read model.","Price rules with error actions may halt calculation and return an error in the response; check for error indicators in the returned JSON before proceeding."],"contributor":"waymark-seed","created":"2026-06-13T14:09:48Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:44.792Z"},"url":"https://mcp.waymark.network/r/6a798e62-35e2-4d46-ba14-768e309cb8b1"}