この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Pricebook2

組織が販売する商品のリストを記載した価格表を表します。

このリリースで、価格表は Pricebook2 オブジェクトで表されます。Pricebook オブジェクトは今後使用できません。

メモ

サポートされているコール

create()、delete()、describeLayout()、describeSObjects()、getDeleted()、getUpdated()、query()、retrieve()、undelete()、update()、upsert()

項目

項目 詳細
Description
型
string
プロパティ
Create、Filter、Group、Nillable、Sort、Update
説明
このオブジェクトのテキストによる説明。
IsActive
型
boolean
プロパティ
Create、Defaulted on create、Filter、Group、Sort、Update
説明
このオブジェクトが有効か (true)、有効でないか (false) を示します。無効なオブジェクトは、ユーザインターフェースの多くの領域で非表示となります。必要に応じて、この項目の値を変更できます。表示ラベルは [有効] です。
IsDeleted
型
boolean
プロパティ
Defaulted on create、Filter
説明
オブジェクトがごみ箱に移動したか (true)、否か (false) を示します。表示ラベルは Deleted です。
IsStandard
型
boolean
プロパティ
Defaulted on create、Filter、Group、Sort
説明
このオブジェクトが組織の標準価格表であるか (true)、否か (false) を示します。組織ごとに 1 つの標準価格表があります。その他の価格表はすべてカスタム価格表となります。
Name
型
string
プロパティ
Create、Filter、Group、Sort、Update
説明
必須。このオブジェクトの名前。標準価格表のこの項目は、参照のみです。表示ラベルは [価格表名] です。

使用方法

価格表は組織で販売している商品のリスト。

  • 各組織には、組織が販売する各商品または各サービスの標準リスト価格または一般的なリスト価格を定義する標準価格表が 1 つずつあります。
  • 組織は、ディスカウントの価格表、さまざまなチャネルやマーケット向けの価格表、特定の取引先や商談を対象とした価格表など、特別な目的で使用できるカスタム価格表を複数所有することができます。クライアントアプリケーションは、カスタム価格表を作成、削除、および更新できますが、標準価格表では更新のみを実行できます。
  • 一部の組織では、標準価格表だけで十分ですが、より詳細な価格表を設定する必要がある場合は、標準価格表を参照してカスタム価格表のリスト価格を設定することができます。

このオブジェクトを使用して、組織で設定されている標準価格表およびカスタム価格表についてクエリできます。このオブジェクトの一般的な使用方法としては、クライアントアプリケーションで、API を介して PricebookEntry レコードを設定する場合に使用する有効な Pricebook2 オブジェクト ID を取得する、といった例があります。

クライアントアプリケーションは、PricebookEntry オブジェクトで次のタスクを実行できます。

  • クエリ
  • 標準価格表またはカスタム価格表の作成
  • 更新
  • 削除
  • レコードの作成または更新時の IsActive 項目の変更

PriceBook2、Product2、および PricebookEntry の関係

API では次のようになります。

  • 価格表は Pricebook2 オブジェクトによって表されます (Pricebook オブジェクトは今後使用できません)。
  • 商品は Product2 オブジェクトによって表されます (Product オブジェクトはバージョン 8.0 では使用できません)。
  • 各価格表には、価格表が関連付けられている商品を指定する、0 またはそれ以上のエントリが指定されています (PricebookEntry レコードで表します)。価格表エントリは、特定の通貨で商品を販売する価格を定義します。

これらのオブジェクトは、商品機能を有効化した組織にのみ定義されます。組織の商品機能が有効化されていない場合、Pricebook2 オブジェクトは describeGlobal() コールに表示されず、また API を介してアクセスすることはできません。

品目は価格表の PricebookEntry を参照する間に Pricebook2 を削除すると、品目に影響はありませんが、Pricebook2 はアーカイブされ、API から使用することはできなくなります。

Pricebook2 とその他のオブジェクトのリレーションを示すダイアグラムについては、Product and Schedule Objects を参照してください。

価格表の設定

API を使用した価格表の設定プロセスは、通常次のようになります。

  1. まず、組織の商品データを Product2 オブジェクトに読み込みます (追加する各商品の Product2 レコードを作成します)。
  2. 各 Product2 オブジェクトについて、Product2 オブジェクトを標準の Pricebook2 にリンクする PricebookEntry を作成します。商品の標準価格を指定された通貨で定義してから、カスタム価格表の商品の価格を同じ通貨で定義する必要があります (マルチ通貨の使用が有効な場合)。
  3. カスタムの Pricebook2 を作成します。
  4. Pricebook2 オブジェクトをクエリして、ID を取得します。
  5. それぞれの Pricebook2 ごとに、追加するすべての Product2 について PricebookEntry を作成し、必要に応じてそれぞれの PricebookEntry に一意のプロパティ (UnitPrice や CurrencyIsoCode など) を指定します。

コードサンプル —Java

1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public void pricebookSample() {
18  try {
19    //Create a custom pricebook
20    Pricebook2 pb = new Pricebook2();
21    pb.setName("Custom Pricebok");
22    pb.setIsActive(true);
23    SaveResult[] saveResults = connection.create(new SObject[]{pb});
24    pb.setId(saveResults[0].getId());
25
26    // Create a new product
27    Product2 product = new Product2();
28    product.setIsActive(true);
29    product.setName("Product");
30    saveResults = connection.create(new SObject[]{product});
31    product.setId(saveResults[0].getId());
32    
33    // Add product to standard pricebook
34    QueryResult result = connection.query(
35        "select Id from Pricebook2 where isStandard=true"
36    );
37    SObject[] records = result.getRecords();
38    String stdPbId = records[0].getId();
39    
40    // Create a pricebook entry for standard pricebook
41    PricebookEntry pbe = new PricebookEntry();
42    pbe.setPricebook2Id(stdPbId);
43    pbe.setProduct2Id(product.getId());
44    pbe.setIsActive(true);
45    pbe.setUnitPrice(100.0);
46    saveResults = connection.create(new SObject[]{pbe});
47    
48    // Create a pricebook entry for custom pricebook
49    pbe = new PricebookEntry();
50    pbe.setPricebook2Id(pb.getId());
51    pbe.setProduct2Id(product.getId());
52    pbe.setIsActive(true);
53    pbe.setUnitPrice(100.0);
54    saveResults = connection.create(new SObject[]{pbe});
55  } catch (ConnectionException ce) {
56    ce.printStackTrace();
57  }
58}
59