영어로 읽기

다음을 통해 공유


Commerce 가격 API

이 문서에서는 가격 책정 엔진에서 제공하는 다양한 가격 책정 API에 Microsoft Dynamics 365 Commerce 대해 설명합니다.

가격 책정 엔진은 Dynamics 365 Commerce 외부 애플리케이션이 다양한 가격 책정 시나리오를 지원하기 위해 사용할 수 있는 다음과 같은 Retail Server API를 제공합니다.

  • GetActivePrices – 이 API는 단순 할인을 포함하여 제품의 계산된 가격을 가져옵니다.
  • CalculateSalesDocument – 이 API는 함께 구매한 경우 지정된 수량의 제품에 대한 가격 및 할인을 계산합니다.
  • GetAvailablePromotions – 이 API는 장바구니에 있는 제품에 적용 가능한 할인을 받습니다.
  • AddCoupons – 이 API는 장바구니에 쿠폰을 추가합니다.
  • RemoveCoupons – 이 API는 장바구니에서 쿠폰을 제거합니다.

외부 애플리케이션에서 Retail Server API를 사용하는 방법에 대한 자세한 내용은 외부 애플리케이션 에서 Retail Server API 사용을 참조하십시오.

GetActivePrices (활성 가격)

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 사용

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 를 참조하세요.

SalesDocument 계산

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> 할인 세부 정보.

GetAvailable프로모션

두 가지 유사한 GetAvailablePromotions API가 있습니다.

  • Carts/GetAvailablePromotions 는 장바구니 라인 식별자 목록을 매개변수로 허용합니다.
  • GetAvailablePromotionsDiscountsSearchCriteria 개체를 매개 변수로 허용합니다.

장바구니/GetAvailablePromotions

장바구니 라인이 여러 개 있는 장바구니가 있는 경우 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
            }
        }
    ]
}

GetAvailable프로모션

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 입니다.

Remove쿠폰

RemoveCoupons API는 장바구니에서 쿠폰 목록 제거를 지원합니다. 쿠폰이 제거된 후 cart 개체를 반환합니다.

다음 표는 RemoveCoupons API에 대한 입력 매개 변수를 보여줍니다.

이름 형식 필수/선택 설명
문자열 필수 장바구니 ID입니다.
쿠폰코드 IEnumerable<문자열> 필수 장바구니에서 제거할 쿠폰 코드입니다.

GetProduct프로모션

GetProductPromotions API는 Commerce 버전 10.0.38 릴리스에서 도입되었습니다. 이 API는 지정된 제품 할인이 있는 판촉 제품 목록을 가져오고, 제품 할인 ID 및 가격 책정 컨텍스트 목록을 입력으로 사용하고 연결된 판촉 제품을 쿼리할 수도 있습니다. GetProductPromotions API의 주요 사용 사례는 소매업체가 할인된 가격으로 제품을 선보이는 제품 목록 페이지입니다. 이 API는 속성 기반 가격 책정 모델과 레거시 가격 책정 모델을 모두 지원합니다.

다음 표에서는 GetProductPromotions API에 대한 입력 매개 변수를 보여 줍니다 .

이름 하위 이름 형식 필수/선택 설명
productDiscountIds (영문) IEnumerable<문자열> 필수 프로모션 제품을 찾기 위한 제품 할인 ID 목록입니다.
priceLookup컨텍스트 가격 조회 컨텍스트 필수 가격 책정 컨텍스트.
activeDate 날짜/시간 오프셋 옵션 승격이 고려되는 날짜입니다.

제한 및 제한 사항:

  • 최대 5개의 제품 할인 ID만 입력할 수 있습니다.
  • 간단한 할인만 지원됩니다.
샘플 요청 본문
{
    {
    "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": []
}

참고

  • 고객 계정 번호로 유추되었기 때문에 PriceLookupHeaderContext 매개 변수에 지정된 고객 그룹이 없습니다.
  • ChannelId는 PriceLookupHeaderContext 매개 변수에서 지정할 수 있습니다. 지정하지 않으면 요청 컨텍스트(Store Commerce를 사용하는 경우 현재 채널)의 ChannelId가 사용됩니다.