Pricebook2

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

価格表は Pricebook2 オブジェクトで表されます。API バージョン 8.0 以降、Pricebook オブジェクトはサポートされません。Pricebook を指定する要求は拒否され、レスポンスには Pricebook オブジェクトについては記述されません。

メモ

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

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

項目

項目 詳細
Description
string
プロパティ
Create、Filter、Group、Nillable、Sort、Update
説明
価格表のテキストによる説明。
IsActive
boolean
プロパティ
Create、Defaulted on create、Filter、Group、Sort、Update
説明
価格表が有効か (true)、否か (false) を示します。無効な価格表は、ユーザーインターフェースの多くの領域で非表示となります。必要に応じて、この項目の値を変更できます。表示ラベルは [有効] です。
IsArchived
boolean
プロパティ
Defaulted on create、Filter、Group、Sort
説明

価格表がアーカイブされているか (true)、否か (false) を示します。この項目は参照のみです。

IsDeleted
boolean
プロパティ
Defaulted on create、Filter
説明
価格表がごみ箱に移動したか (true)、否か (false) を示します。表示ラベルは [削除] です。
IsStandard
boolean
プロパティ
Defaulted on create、Filter、Group、Sort
説明
価格表が組織の標準価格表であるか (true)、否か (false) を示します。組織ごとに 1 つの標準価格表があります。その他の価格表はすべてカスタム価格表となります。
LastReferencedDate
dateTime
プロパティ
Filter、Nillable、Sort
説明
現在のユーザーがこのレコードに関連するレコードを最後に表示したときのタイムスタンプ。
LastViewedDate
dateTime
プロパティ
Filter、Nillable、Sort
説明
現在のユーザーがこのレコードを最後に表示したときのタイムスタンプ。この値が null の場合、このレコードは表示ではなく参照 (LastReferencedDate) された可能性があります。
Name
string
プロパティ
Create、Filter、Group、idLookup、Sort、Update
説明
必須。このオブジェクトの名前。標準価格表のこの項目は、参照のみです。表示ラベルは [価格表名] です。
ValidFrom
dateTime
プロパティ
Create、Filter、Nillable、Sort、Update
説明
コマース価格表が最初に有効になる日時。この項目が null の場合、価格表は、アクティブ化されると直ちに有効になります。API バージョン 48.0 以降で利用できます。
ValidTo
dateTime
プロパティ
Create、Filter、Nillable、Sort、Update
説明
コマース価格表の有効期間が終了する日時。この項目が null の場合、価格表は、非アクティブ化されるまで有効です。API バージョン 48.0 以降で利用できます。

使用方法

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

  • 各組織には、組織が販売する各商品または各サービスの標準リスト価格または一般的なリスト価格を定義する標準価格表が 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 を使用した価格表の設定プロセスは、通常次のようになります。

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

コードサンプル — 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
オブジェクトの追跡項目について履歴を利用できます。