학습
모듈
Manage retail pricing in Dynamics 365 Commerce - Training
Discover the omnichannel pricing engine of Dynamics 365 Commerce for consistent pricing across all channels.
이 문서에서는 가격 책정 엔진에서 제공하는 다양한 가격 책정 API에 Microsoft Dynamics 365 Commerce 대해 설명합니다.
가격 책정 엔진은 Dynamics 365 Commerce 외부 애플리케이션이 다양한 가격 책정 시나리오를 지원하기 위해 사용할 수 있는 다음과 같은 Retail Server API를 제공합니다.
외부 애플리케이션에서 Retail Server API를 사용하는 방법에 대한 자세한 내용은 외부 애플리케이션 에서 Retail Server API 사용을 참조하십시오.
GetActivePrices API는 Commerce 버전 10.0.4 릴리스에서 도입되었습니다. 이 API는 단순 할인을 포함하여 제품의 계산된 가격을 가져옵니다. 여러 줄 할인을 계산하지 않으며 API 요청의 각 제품 수량이 1이라고 가정합니다. 이 API는 제품 목록을 입력으로 사용하고 개별 제품의 가격을 대량으로 쿼리할 수도 있습니다.
GetActivePrices API는 Employee , Customer, Anonymous 및Application Commerce 역할을 지원합니다 .
GetActivePrices API의 주요 사용 사례는 제품 세부 정보 페이지(PDP)로, 소매업체는 효과적인 할인을 포함하여 제품에 대한 최상의 가격을 표시합니다.
참고
통화에 대해 반환되는 GetActivePrices
제품 수가 줄어드는 경우 채널 머천다이징 구성 유효성 검사기를 따라와 머천다이징 구성의 유효성을 검사할 수 있습니다.
다음 표는 GetActivePrices API에 대한 입력 파라미터를 보여줍니다.
이름 | 하위 이름 | 형식 | 필수/선택 | 설명 |
---|---|---|---|---|
프로젝트 도메인 | 프로젝션 도메인 | 필수 | ||
ChannelId | 오래 | 필수 | ||
카탈로그 ID | 오래 | 필수 | ||
제품 ID | IEnumerable<long> | 필수 | 가격을 계산할 제품 목록입니다. | |
activeDate | 날짜/시간 오프셋 | 필수 | 가격이 계산되는 날짜입니다. | |
customerId (영문) | 문자열 | 옵션 | 고객 계좌 번호입니다. | |
소속LoyaltyTiers | IEnumerable<AffiliationLoyaltyTier (영문)> | 옵션 | 소속 및 충성도 계층. | |
소속 ID | 오래 | 필수 | 소속 ID입니다. | |
LoyaltyTierId | 오래 | 옵션 | 로열티 계층 ID입니다. | |
includeSimpleDiscountsInContextualPrice | 부울 | 옵션 | 가격 계산에 단순 할인을 포함하려면 이 매개 변수를 true 로 설정합니다. 기본값은 false 입니다. | |
includeVariant 가격 범위 | 부울 | 옵션 | 이 매개 변수를 true 로 설정하면 마스터 제품의 모든 이형 상품 중에서 최소 및 최대 가격을 얻을 수 있습니다. 기본값은 false 입니다. | |
include달성 가능한 가격및할인 | 부울 | 옵션 | 이 매개 변수를 true 로 설정하면 달성 가능한 가격과 할인을 얻을 수 있습니다. 기본값은 false 입니다. |
{
"projectDomain":
{
"ChannelId": 5637144592,
"CatalogId": 0
},
"productIds":
[
68719489871
],
"activeDate": "2022-06-20T14:40:05.873+08:00",
"includeSimpleDiscountsInContextualPrice": true,
"includeVariantPriceRange": false
}
{
"value":
[
{
"ProductId": 68719489871,
"ListingId": 68719489871,
"BasePrice": 0,
"TradeAgreementPrice": 0,
"AdjustedPrice": 0,
"MaxVariantPrice": 0,
"MinVariantPrice": 0,
"CustomerContextualPrice": 0,
"DiscountAmount": 0,
"CurrencyCode": "USD",
"ItemId": "82000",
"InventoryDimensionId": null,
"UnitOfMeasure": "ea",
"ValidFrom": "2022-06-20T01:40:05.873-05:00",
"ProductLookupId": 0,
"ChannelId": 5637144592,
"CatalogId": 0,
"SalesAgreementPrice": 0,
"PriceSourceTypeValue": 1,
"DiscountLines": [],
"AttainablePriceLines": [],
}
]
}
PriceLookupContext 클래스는 Commerce 버전 10.0.37 릴리스에서 도입되었습니다. 이 클래스에는 GetActivePrices API에 대한 모든 조회 기준이 포함되어 있으며 productIds, activeDate, customerId 및 affiliationLoyaltyTiers의 이전 매개 변수를 대체합니다. 이 클래스에는 개발자가 할인 조회 중에 할인을 필터링하는 데 사용할 수 있는 추가 속성도 있습니다.
조직의 요구 사항에 따라 GetActivePrices API는 PriceLookupContext 클래스와 연결된 이전 매개 변수 또는 새 매개 변수를 수락할 수 있습니다.
입력 매개 변수
이름 | 하위 이름 | 형식 | 필수/선택 | 설명 |
---|---|---|---|---|
프로젝트 도메인 | 프로젝션 도메인 | 필수 | ||
ChannelId | 오래 | 필수 | ||
카탈로그 ID | 오래 | 필수 | ||
priceLookup컨텍스트 | 가격 조회 컨텍스트 | 필수 | ||
헤더컨텍스트 | PriceLookupHeader컨텍스트 | 필수 | CustomerAccountNumber, AffiliationLoyaltyTierLines 및 SalesOrderProperties를 포함합니다. | |
LineContexts (라인컨텍스트) | IEnumerable<PriceLookupLineContext (영문)> | 필수 | ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId 및 SalesLineProperties를 포함합니다. | |
includeSimpleDiscountsInContextualPrice | 부울 | 옵션 | 가격 계산에 단순 할인을 포함하려면 이 매개 변수를 true 로 설정합니다. 기본값은 false 입니다. | |
includeVariant 가격 범위 | 부울 | 옵션 | 이 매개 변수를 true 로 설정하면 마스터 제품의 모든 이형 상품 중에서 최소 및 최대 가격을 얻을 수 있습니다. 기본값은 false 입니다. | |
include달성 가능한 가격및할인 | 부울 | 옵션 | 이 매개 변수를 true 로 설정하면 달성 가능한 가격과 할인을 얻을 수 있습니다. 기본값은 false 입니다. |
자세한 내용은 PriceLookupContext 를 참조하세요.
CalculateSalesDocument API는 Commerce 버전 10.0.25 릴리스에서 도입되었습니다. 이 API는 주문에서 함께 구매한 경우 지정된 수량의 제품에 대한 가격 및 할인을 계산합니다. CalculateSalesDocument API의 이면에 있는 가격 책정 계산은 단일 라인 할인과 다중 라인 할인을 모두 고려합니다.
CalculateSalesDocument API의 주요 사용 사례는 전체 장바구니 컨텍스트가 지속되지 않는 시나리오(예: 판매 견적)의 가격 책정 계산입니다. POS(가리키다 of Sale) 및 Commerce 전자 상거래의 시나리오에서도 이 사용 사례를 활용할 수 있습니다. 장바구니 항목을 세트로 계산할 때 총 가격이 낮을수록(예: 개별 번들, 연결 또는 추천 제품, 장바구니에 이미 추가된 제품) 고객이 장바구니에 제품을 추가하도록 유도할 수 있습니다.
CalculateSalesDocument API의 요청 및 응답에 대한 데이터 모델은 Cart입니다 . 그러나 이 API의 컨텍스트에서 데이터 모델의 이름은 SalesDocument입니다. 대부분의 속성은 선택 사항이고 그 중 일부만 가격 책정 계산에 영향을 주기 때문에 다음 표에는 가격 책정 관련 필드만 표시됩니다. 다른 필드는 API 요청에 관여하지 않는 것이 좋습니다.
CalculateSalesDocument API의 범위는 가격 및 할인의 계산입니다. 세금 및 요금은 포함되지 않습니다.
다음 표에서는 salesDocument 라는 개체내의 입력 매개 변수를 보여 줍니다.
이름 | 하위 이름 | 형식 | 필수/선택 | 설명 |
---|---|---|---|---|
ID | 문자열 | 필수 | 판매 문서의 식별자입니다. | |
카트라인 | IList<CartLine> | 옵션 | 가격 및 할인을 계산할 라인 목록입니다. | |
제품 ID | 오래 | CartLine 범위에 필요 | 제품 레코드 ID입니다. | |
ItemId | 문자열 | 옵션 | 항목 식별자입니다. 값이 제공되는 경우 ProductId 매개 변수의 값과 일치해야 합니다. | |
인벤토리 차원 ID | 문자열 | 옵션 | 재고 차원 식별자입니다. 값이 제공되는 경우 ItemId 및 InventoryDimensionId 값의 조합은 ProductId 매개 변수의 값과 일치해야 합니다. | |
수량 | 소수 | CartLine 범위에 필요 | 제품의 수량입니다. | |
UnitOfMeasureSymbol (영문) | 문자열 | 옵션 | 제품의 단위입니다. 기본적으로 값이 제공되지 않으면 API는 제품의 판매 단위를 사용합니다. | |
CustomerId | 문자열 | 옵션 | 고객 계좌 번호입니다. | |
LoyaltyCardId (영문) | 문자열 | 옵션 | 로열티 카드 식별자입니다. 로열티 카드와 연결된 모든 고객 계정은 CustomerId 매개 변수(제공된 경우)의 값과 일치해야 합니다. 로열티 카드를 찾을 수 없거나 상태가 차단 됨인경우 고려되지 않습니다. | |
AffiliationLines (영문) | IList<소속LoyaltyTier> | 옵션 | 소속 로열티 등급 라인. CustomerId 및/또는 LoyaltyCardId 값이 제공되면 해당 소속 로열티 계층 라인이 AffiliationLines 값에 제공된 라인과 병합됩니다. | |
소속 ID | 오래 | AffiliationLoyaltyTier 범위에 필요합니다. | 소속 레코드 ID입니다. | |
LoyaltyTierId | 오래 | AffiliationLoyaltyTier 범위에 필요합니다. | 로열티 계층 레코드 ID입니다. | |
AffiliationTypeValue (영문) | INT | AffiliationLoyaltyTier 범위에 필요합니다. | 소속 라인 이 일반 유형(0)인지 충성도유형( 1)인지를 나타내는 값입니다. 매개 변수가 0 으로설정된 경우 API는 AffiliationId 값을 식별자로 사용하고 LoyaltyTierId 값을 무시 합니다. 매개 변수가 1 로설정된 경우 API는 LoyaltyTierId 값을 식별자로 사용하고 AffiliationId 값을 무시 합니다. | |
ReasonCodeLines (영문) | 제품분류<ReasonCodeLine> | AffiliationLoyaltyTier 범위에 필요합니다. | 이유 코드 행. 이 매개 변수는 가격 계산에 영향을 주지 않지만 AffiliationLoyaltyTier 개체의 일부로 필요합니다. | |
CustomerId | 문자열 | AffiliationLoyaltyTier 범위에 필요합니다. | 고객 계좌 번호입니다. | |
쿠폰 | IList<쿠폰> | 옵션 | 적용할 수 없는 쿠폰(비활성, 만료 또는 찾을 수 없음)은 가격 계산에서 고려되지 않습니다. | |
코드 | 문자열 | 쿠폰 범위에 필요 | 쿠폰 코드입니다. | |
코드 ID | 문자열 | 옵션 | 쿠폰 코드 식별자입니다. 값이 제공되는 경우 Code 매개 변수의 값과 일치해야 합니다. | |
DiscountOfferId (영문) | 문자열 | 옵션 | 할인 식별자입니다. 값이 제공되는 경우 Code 매개 변수의 값과 일치해야 합니다. |
{
"salesDocument":
{
"Id": "CalculateSalesDocument",
"CartLines":
[
{
"ProductId": 68719491408,
"ItemId": "91003",
"InventoryDimensionId": "",
"Quantity": 1,
"UnitOfMeasureSymbol": "ea"
},
{
"ProductId": 68719493014,
"Quantity": 2,
"UnitOfMeasureSymbol": "ea"
}
],
"CustomerId": "3003",
"AffiliationLines":
[
{
"AffiliationId": 68719476742,
"LoyaltyTierId": 0,
"AffiliationTypeValue": 0,
"ReasonCodeLines": [],
"CustomerId": null
}
],
"LoyaltyCardId": "55103",
"Coupons":
[
{
"CodeId": "CODE-0005",
"Code": "CPN0004",
"DiscountOfferId": "ST100077"
}
]
}
}
전체 cart 개체가 응답 본문으로 반환됩니다. 가격 및 할인을 확인하려면 다음 표의 필드에 집중해야 합니다.
이름 | 하위 이름 | 형식 | 설명 |
---|---|---|---|
넷프라이스(NetPrice) | 소수 | 할인이 적용되기 전의 전체 판매 문서의 정가입니다. | |
DiscountAmount | 소수 | 전체 판매 문서의 총 할인 금액입니다. | |
TotalAmount (총 금액) | 소수 | 전체 판매 문서의 총액입니다. | |
카트라인 | IList<CartLine> | 가격 및 할인 세부 정보를 포함하는 계산된 라인입니다. | |
가격 | 소수 | 제품의 단가입니다. | |
넷프라이스(NetPrice) | 소수 | 할인이 적용되기 전 라인의 순 가격(= Price × Quantity). | |
DiscountAmount | 소수 | 할인 금액입니다. | |
TotalAmount (총 금액) | 소수 | 라인의 최종 총 가격 책정 결과입니다. | |
프라이스라인(PriceLines) | IList<PriceLine> | 가격의 출처(기본 가격, 가격 조정 또는 거래 계약) 및 금액을 포함한 가격 세부 정보. | |
디스카운트라인(DiscountLines) | IList<DiscountLine> | 할인 세부 정보. |
두 가지 유사한 GetAvailablePromotions API가 있습니다.
장바구니 라인이 여러 개 있는 장바구니가 있는 경우 Carts/GetAvailablePromotions API는 장바구니 라인에 적용 가능한 모든 할인을 반환합니다.
Carts/GetAvailablePromotions API의 주요 사용 사례는 소매업체가 현재 장바구니에 대해 적용된 할인 또는 사용 가능한 쿠폰을 표시하는 장바구니 페이지입니다.
다음 표에는 Carts/GetAvailablePromotions API에 대한 입력 파라미터가 나와 있습니다 .
이름 | 형식 | 필수/선택 | 설명 |
---|---|---|---|
키 | 문자열 | 필수 | 장바구니 ID입니다. |
cartLineIds 님 | IEnumerable<문자열> | 옵션 | 선택한 장바구니 라인에 대해서만 할인을 반환하려면 이 매개 변수를 설정합니다. |
{
"value":
[
{
"LineId": "f495ffa507bc4f63a47a409cd8713dd7",
"Promotion": {
"OfferId": "ST100012",
"OfferName": "Loyalty 5% off over $100",
"PeriodicDiscountTypeValue": 4,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": null,
"AdditionalRestrictions": null,
"Description": "All loyalty members get 5% with transaction total above $10 unless some exclusive or best price discounts are already applied on the transaction",
"ValidFromDate": "2022-06-20T06:52:56.2460219Z",
"ValidToDate": "2022-06-20T06:52:56.2460224Z",
"CouponCodes": [],
"ValidationPeriod": null
}
}
]
}
GetAvailablePromotions API는 지정된 채널에 적용 가능한 모든 할인을 반환합니다.
GetAvailablePromotions API의 주요 사용 사례는 소매업체가 현재 채널에 대한 모든 할인을 표시하는 "모든 할인" 페이지입니다.
다음 표에는 GetAvailablePromotions API에 대한 입력 파라미터가 나와 있습니다 .
이름 | 하위 이름 | 형식 | 필수/선택 | 설명 |
---|---|---|---|---|
searchCriteria | DiscountsSearchCriteria | 필수 | ||
ChannelId | 오래 | 필수 | ||
Keyword | 문자열 | 옵션 | ||
IsDiscountCodeRequired (영문) | 부울 | 옵션 | 쿠폰 코드가 필요한지 여부를 나타냅니다. null이 전달되면 쿠폰 코드 요구 사항에 관계없이 모든 할인이 검색됩니다. | |
시작 날짜 | 날짜/시간 오프셋 | 필수 | 시작 날짜(포함)입니다. | |
종료일 | 날짜/시간 오프셋 | 필수 | 종료 날짜(포함)입니다. |
{
"searchCriteria": {
"ChannelId": 5637144592,
"StartDate": "1900-01-01T00:00:00Z",
"EndDate": "2154-12-31T00:00:00Z"
}
}
{
"@odata.context": "https://usnconeboxax1ret.cloud.onebox.dynamics.com/Commerce/$metadata#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.Promotion)",
"value": [
{
"OfferId": "ST100024",
"OfferName": "Weekly ad",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": true,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100019",
"OfferName": "Take 20 off anything",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": true,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100015",
"OfferName": "Watches",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100012",
"OfferName": "Loyalty 5% off over $100",
"PeriodicDiscountTypeValue": 4,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "All loyalty members get 5% with transaction total above $10 unless some exclusive or best price discounts are already applied on the transaction",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100011",
"OfferName": "Loyalty 50% off sunglasses",
"PeriodicDiscountTypeValue": 1,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "Gold tier Loyalty customers get 50% on Sunglasses when purchased with a Top, Scarf or Men's Casual shirts",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100009",
"OfferName": "Student discount",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "Students get 10% off for on Jeans and Backpacks",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100004",
"OfferName": "Soccer sale",
"PeriodicDiscountTypeValue": 3,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "Providing you great discounts ranging from 10% to 20% on all branded Soccer balls. We carry a full line of soccer balls. Buy one for yourself or gift it to someone. We promise you that you won't be disappointed. If you don't see something that you are looking for please call us. This offer is only valid at our Retail Malls.",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
},
{
"OfferId": "ST100003",
"OfferName": "BMX helmet sale",
"PeriodicDiscountTypeValue": 0,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": "",
"AdditionalRestrictions": "",
"Description": "Get 20% off on all branded youth BMX helmets when you buy two or more. Choose from our great selection of BMX bike helmets from top brands, including ProTec, Giro, Bell and SixSixOne BMX helmets. This offer is only available at our Retail Mall stores",
"ValidFromDate": "1900-01-01T00:00:00Z",
"ValidToDate": "2154-12-31T00:00:00Z",
"CouponCodes": [],
"ExtensionProperties": [
{
"Key": "DATAAREAID",
"Value": {
"StringValue": "usrt"
}
},
{
"Key": "DATEVALIDATIONTYPE",
"Value": {
"IntegerValue": 1
}
}
]
}
]
}
AddCoupons API는 장바구니에 쿠폰 목록을 추가할 수 있도록 지원합니다. 쿠폰이 추가된 후 cart 개체를 반환합니다.
다음 표에서는 AddCoupons API에 대한 입력 매개 변수를 보여 줍니다 .
이름 | 형식 | 필수/선택 | 설명 |
---|---|---|---|
키 | 문자열 | 필수 | 장바구니 ID입니다. |
쿠폰코드 | IEnumerable<문자열> | 필수 | 장바구니에 추가할 쿠폰 코드입니다. |
isLegacyDiscountCode (영문) | 부울 | 옵션 | 이 매개 변수를 true 로 설정하면 쿠폰이 레거시 할인 코드임을 나타냅니다. 기본값은 false 입니다. |
RemoveCoupons API는 장바구니에서 쿠폰 목록 제거를 지원합니다. 쿠폰이 제거된 후 cart 개체를 반환합니다.
다음 표는 RemoveCoupons API에 대한 입력 매개 변수를 보여줍니다.
이름 | 형식 | 필수/선택 | 설명 |
---|---|---|---|
키 | 문자열 | 필수 | 장바구니 ID입니다. |
쿠폰코드 | IEnumerable<문자열> | 필수 | 장바구니에서 제거할 쿠폰 코드입니다. |
GetProductPromotions API는 Commerce 버전 10.0.38 릴리스에서 도입되었습니다. 이 API는 지정된 제품 할인이 있는 판촉 제품 목록을 가져오고, 제품 할인 ID 및 가격 책정 컨텍스트 목록을 입력으로 사용하고 연결된 판촉 제품을 쿼리할 수도 있습니다. GetProductPromotions API의 주요 사용 사례는 소매업체가 할인된 가격으로 제품을 선보이는 제품 목록 페이지입니다. 이 API는 속성 기반 가격 책정 모델과 레거시 가격 책정 모델을 모두 지원합니다.
다음 표에서는 GetProductPromotions API에 대한 입력 매개 변수를 보여 줍니다 .
이름 | 하위 이름 | 형식 | 필수/선택 | 설명 |
---|---|---|---|---|
productDiscountIds (영문) | IEnumerable<문자열> | 필수 | 프로모션 제품을 찾기 위한 제품 할인 ID 목록입니다. | |
priceLookup컨텍스트 | 가격 조회 컨텍스트 | 필수 | 가격 책정 컨텍스트. | |
activeDate | 날짜/시간 오프셋 | 옵션 | 승격이 고려되는 날짜입니다. |
제한 및 제한 사항:
{
{
"productDiscountIds":
[
"ST100009",
"ST100024"
],
"priceLookupContext":
{
"HeaderContext":
{
"AffiliationLoyaltyTierLines":
[
{
"AffiliationId": 5637144577,
"LoyaltyTierId": 0,
"AffiliationTypeValue": 0,
"ReasonCodeLines": [],
"CustomerId": "2001"
}
]
},
"LineContexts": []
},
"activeDate": "2023-08-20T14:40:05.873+08:00",
},
}
{
"value":
[
{
"ProductId": 68719489871,
"ProductDiscounts":
[
{
"OfferId": "ST100009",
"OfferName": "Student discount",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": null,
"AdditionalRestrictions": null,
"Description": "Students get 10% off on Jeans and Backpacks",
"ValidFromDate": "1900-01-01T00:00:00.0000000Z",
"ValidToDate": "2154-12-31T00:00:00.0000000Z",
"CouponCodes": [],
"DateValidationTypeValue": 1
},
{
"OfferId": "ST100024",
"OfferName": "Weekly ad",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": null,
"AdditionalRestrictions": null,
"Description": "",
"ValidFromDate": "1900-01-01T00:00:00.0000000Z",
"ValidToDate": "2154-12-31T00:00:00.0000000Z",
"CouponCodes": [],
"DateValidationTypeValue": 1
}
]
},
{
"ProductId": 68719489872,
"ProductDiscounts":
[
{
"OfferId": "ST100009",
"OfferName": "Student discount",
"PeriodicDiscountTypeValue": 2,
"IsDiscountCodeRequired": false,
"ValidationPeriodId": null,
"AdditionalRestrictions": null,
"Description": "Students get 10% off on Jeans and Backpacks",
"ValidFromDate": "1900-01-01T00:00:00.0000000Z",
"ValidToDate": "2154-12-31T00:00:00.0000000Z",
"CouponCodes": [],
"DateValidationTypeValue": 1
}
]
}
]
}
자세한 내용은 PriceLookupContext 를 참조하세요.
PriceLookupContext 클래스는 GetProductPromotions 및 GetActivePrices API의 속성 기반 가격 책정 모델에 사용됩니다.
PriceLookupContext 클래스의 구조는 다음 예제에 나와 있습니다.
{
HeaderContext: PriceLookupHeaderContext
{
CustomerAccountNumber: string
AffiliationLoyaltyTierLines: IEnumerable<AffiliationLoyaltyTier>
ChannelId: long?
SalesOrderProperties: IEnumerable<AttributeValueBase>
},
LineContexts: IEnumerable<PriceLookupLineContext>
[
{
ProductRecordId: string
UnitOfMeasureSymbol: string
InventorySiteId: string
InventoryLocationId: string
DeliveryMode: string
CatalogId: string
SalesLineProperties: IEnumerable<AttributeValueBase>
},
]
}
"PriceLookupContext":
{
"HeaderContext":
{
"CustomerAccount": 2001,
"AffiliationLoyaltyTierLines":
[
{
"AffiliationId": 5637144577,
"LoyaltyTierId": 0,
"AffiliationTypeValue": 0,
"ReasonCodeLines": [],
"CustomerId": "2001"
}
],
"SalesOrderProperties":
[
{
"@odata.type": "#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue",
"Name": "CalcDate",
"TextValue": "2022-10-10"
}
]
},
"LineContexts": []
}
참고
학습
모듈
Manage retail pricing in Dynamics 365 Commerce - Training
Discover the omnichannel pricing engine of Dynamics 365 Commerce for consistent pricing across all channels.