Skip to content
Chapter

Price

Price

A price is what Sharma Distributors pays for TEA-500. ERP owns the price list. Salesforce has no outbound integration for Product_Price__c.

The key is the product code, an underscore, and the batch, in upper case. TEA-500 and batch B2026-11 become TEA-500_B2026-11.

Key Product Batch Currency Unit price Effective from Effective to
TEA-500_B2026-11 TEA-500 B2026-11 INR 240 2026-11-01 2026-11-30, after the next batch starts
TEA-500_B2026-12 TEA-500 B2026-12 INR 255 2026-12-01 open

TEA-500 must already exist. A blank currency is stored as INR. The unit price must be greater than 0. A new price must leave effectiveTo blank. The same product, batch, and currency cannot be created again, including after the first row was closed. A later batch needs a new batch number, and its effective from must be after the open price.

Saving a price calls Salesforce in the same request. The local row is kept either way. syncStatus is Synced when the call succeeded and Failed when it did not. ERP does not store the Salesforce price id.

ERP API What Salesforce receives
POST /api/prices when this product and currency have no open price PATCH of Product_Price__c by SKU_Batch_Key__c
POST /api/prices when an open price already exists One Composite call that end-dates every open price, then upserts the new batch
PATCH /api/prices/{skuBatchKey} The same single PATCH for the open row

The JSON ERP posts is on ERP → Salesforce. What Salesforce returns is on Salesforce → ERP.

A free-of-cost article is the next chapter, FOC.