---
title: "販売可能な商品の販売価格の計算"
slug: "calculating-a-sellable-item-sell-price"
abstract: ""
---
# 販売可能な商品の販売価格の計算

販売可能なアイテムの販売価格はICalculateSellableItemSellPricePipelineプラグインで計算されます。

売却価格を計算するには:

1.  SellableItemポリシーリストでPriceCardPolicy (新しいポリシー)を見つけてください。
    
    PriceCardPolicyにはプライスカードの論理名を含める必要があります(同じ論理名のプライスカードは複数の価格帳に存在することもあります)。
    
2.  PriceCardPolicyがなければ、タグを使ってプライスカードを検索してください。
    
3.  関連するカタログを読み込み、PriceBookを解析します。カタログの識別子は呼び出しに渡されます(新しいパイプライン - GetCatalog)。
    
4.  カタログに新しい属性があるか確認してください(PriceBook - PriceBookのStripを持つ文字列、PriceBookへのフラグメントです)。
    
5.  プライスブックと論理的なプライスカード名を使ってプライスカードインスタンスを読み込みます。
    
6.  他のPriceSnapshotに上書きされた日付のものをフィルタリングして、適用されるべき単一のPriceSnapshotを見つけ、適切なPriceSnapshotを解決します。
    
7.  PriceSnapshotでは、コールに渡された通貨をフィルタリングして利用可能なPriceTierを解決します。
    
8.  SellPrice(purchaseOptionMoneyPolicy.SellPrice)を1の前提で計算します。
    
9.  フィルタリング済みのPriceSnapshotとPriceTiersをSellableItemにコピーし、後の計算で使えるようにしてください。
    

売却価格を計算する際には以下のメッセージが表示されます。

メッセージ

状況

SellPrice<=PriceCard.Snapshot: Price={sellPrice.AsCurrency()}|Qty={tier.Quantity}|PriceCard={priceCardPolicy.PriceCardName}

SellableItemには PriceCardPolicy があり、有効なPriceSnapshotやPriceTierを決定できます。  
  
サンプル品 AW051-14(バリエーションなし)  
  
サンプル品 AW055-01,33(バリエーションあり)  
  
\> \[!注\]  
\> PriceSnapshotが有効であるためには、有効な日付が必要です。価格帯は、希望する通貨と階層数1で構成されていなければなりません。

SellPrice<=Tags.Snapshot: Price={sellPrice.AsCurrency()}|Qty={tier.Quantity}|Tags='{string.Join(", ", snapshot.Tags.Select(c=>c.Name))}'

SellableItemには PriceCardPolicy はありませんが、タグはあります。  
  
\> \[!注\]  
\>このメッセージはタグからのプライスカードスナップショットに関連しており、有効な日付と通貨、ティア数量が1の場合です。スナップショットが少なくとも1つのアイテムタグに一致し、数量が1で、有効な日付と通貨がある場合に解決されます。

SellPrice<=ListPrice: Price={ListPrice}

SellableItemにはSellPriceはなく、有効なListPriceがあるため、ListPriceはSellPriceにコピーされます。