Pricebook2
サポートされているコール
create()、delete()、describeLayout()、describeSObjects()、getDeleted()、getUpdated()、query()、retrieve()、search()、undelete()、update()、upsert()
項目
項目 | 詳細 |
---|---|
Description |
|
IsActive |
|
IsArchived |
|
IsDeleted |
|
IsStandard |
|
LastReferencedDate |
|
LastViewedDate |
|
Name |
|
ValidFrom |
|
ValidTo |
|
使用方法
価格表は、組織で販売している商品のリストです。
- 各組織には、組織が販売する各商品または各サービスの標準リスト価格または一般的なリスト価格を定義する標準価格表が 1 つずつあります。
- 組織は、割引、さまざまなチャネルやマーケット、または特定の取引先や商談を対象とした価格表など、特別な目的で使用するカスタム価格表を複数所有することができます。クライアントアプリケーションは、カスタム価格表を作成、削除、および更新できますが、標準価格表では更新のみを実行できます。
- 一部の組織では、標準価格表だけで十分です。その他の価格表を設定する場合は、標準価格表を参照してカスタム価格表のリスト価格を設定することができます。
このオブジェクトを使用して、組織で設定されている標準価格表およびカスタム価格表について照会できます。このオブジェクトの一般的な使用方法として、クライアントアプリケーションで有効な Pricebook2 オブジェクト ID を取得し、そのオブジェクト ID を、API を介して PricebookEntry レコードを設定する場合に使用することができます。
クライアントアプリケーションは、PricebookEntry オブジェクトで次のタスクを実行できます。
- クエリ
- 標準価格表またはカスタム価格表の作成。
- 更新
- 削除
- レコードの作成または更新時の IsActive 項目の変更
PriceBook2、Product2、および PricebookEntry の関係
API では次のようになります。
- 価格表は Pricebook2 レコードによって表されます (バージョン 8.0 以降、Pricebook オブジェクトは使用できません)。
- 商品は Product2 レコードによって表されます (バージョン 8.0 以降、Product オブジェクトは使用できません)。
- 各価格表には、価格表が関連付けられている商品を指定する、0 またはそれ以上のエントリが指定されています (PricebookEntry レコードで表します)。価格表エントリは、特定の通貨で商品を販売する価格を定義します。
これらのオブジェクトは、商品機能を有効化した組織にのみ定義されます。組織の商品機能が有効化されていない場合、Pricebook2 オブジェクトは describeGlobal() コールに表示されず、また API を介してアクセスすることはできません。
品目で価格表の PricebookEntry を参照している間に Pricebook2 を削除すると、品目に影響はありませんが、Pricebook2 はアーカイブされ、API から使用することはできなくなります。
Pricebook2 とその他のオブジェクトのリレーションを示すダイアグラムについては、Product and Schedule Objects を参照してください。
価格表の設定
API を使用した価格表の設定プロセスは、通常次のようになります。
- 商品データを Product2 レコードに読み込みます (追加する商品ごとに 1 つの Product2 レコードを作成します)。
- 各 Product2 レコードについて、Product2 レコードを標準の Pricebook2 にリンクする PricebookEntry を作成します。商品の標準価格を指定された通貨で定義してからカスタム価格表の商品の価格を同じ通貨で定義します (マルチ通貨の使用が有効な場合)。
- カスタム価格表を表す Pricebook2 レコードを作成します。
- Pricebook2 レコードごとに、追加するすべての Product2 について PricebookEntry を作成し、必要に応じて各 PricebookEntry に一意のプロパティ (UnitPrice や CurrencyIsoCode など) を指定します。
コードサンプル — Java
public void pricebookSample() {
try {
//Create a custom pricebook
Pricebook2 pb = new Pricebook2();
pb.setName("Custom Pricebok");
pb.setIsActive(true);
SaveResult[] saveResults = connection.create(new SObject[]{pb});
pb.setId(saveResults[0].getId());
// Create a new product
Product2 product = new Product2();
product.setIsActive(true);
product.setName("Product");
saveResults = connection.create(new SObject[]{product});
product.setId(saveResults[0].getId());
// Add product to standard pricebook
QueryResult result = connection.query(
"select Id from Pricebook2 where isStandard=true"
);
SObject[] records = result.getRecords();
String stdPbId = records[0].getId();
// Create a pricebook entry for standard pricebook
PricebookEntry pbe = new PricebookEntry();
pbe.setPricebook2Id(stdPbId);
pbe.setProduct2Id(product.getId());
pbe.setIsActive(true);
pbe.setUnitPrice(100.0);
saveResults = connection.create(new SObject[]{pbe});
// Create a pricebook entry for custom pricebook
pbe = new PricebookEntry();
pbe.setPricebook2Id(pb.getId());
pbe.setProduct2Id(product.getId());
pbe.setIsActive(true);
pbe.setUnitPrice(100.0);
saveResults = connection.create(new SObject[]{pbe});
} catch (ConnectionException ce) {
ce.printStackTrace();
}
}
関連付けられたオブジェクト
このオブジェクトには次の関連するオブジェクトがあります。API バージョンが指定されていない場合、これらはこのオブジェクトと同じ API バージョンで使用できます。指定されている場合、指定された API バージョン以降で使用できます。
- Pricebook2ChangeEvent (API バージョン 48.0)
- このオブジェクトには変更イベントを利用できます。
- Pricebook2History
- オブジェクトの追跡項目について履歴を利用できます。