고객을 위한 다중 파티 프라이빗 제품 만들기
ISV(발신기) 및 공동 작업 파트너(판매자)는 동일한 API 호출 집합을 사용하여 고객을 위한 프라이빗 제품을 만들어야 합니다. 예상되는 흐름은 다음과 같습니다.
- ISV는 제품을 만들고 파트너 가시성을 판매하기 위해 제출합니다.
- ISV는 판매 파트너에게 (이메일 또는 다른 방법을 통해) 이제 파트너 편집을 판매할 수 있다는 것을 알립니다.
- 파트너 리뷰 판매 및 프라이빗 제품 구성 완료 및 최종 고객 가시성을 위해 제출
제품 생성을 호출하는 방법은 다음과 같습니다.
요청
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2022-07-01
요청 헤더
헤더 | 형식 | 설명 |
---|---|---|
권한 부여 | 문자열 | 필수입니다. 형식 Bearer <token> 의 Microsoft Entra 액세스 토큰입니다. |
선택 사항: 클라이언트 ID
요청 매개 변수
$version - 필수입니다. 요청에 사용되는 스키마의 버전입니다.
요청 본문
다음 옵션은 고객에 대한 다중 파티 프라이빗 제품을 만들 때 파트너 센터의 옵션을 반영합니다. 이러한 옵션은 다음 offerPricingType 값으로 정의됩니다.
offerPricingType 값 | 파트너 센터 프라이빗 제품 생성 옵션에 해당 |
---|---|
editExistingOfferPricingOnly | 기존 퍼블릭 제품 및 플랜에 대한 가격 책정 사용자 지정 - SaaS, Azure Virtual Machines 및 Azure 애플리케이션 거래 가능한 모든 제품 유형에 대한 프라이빗 제품을 만들려면 이 옵션을 사용합니다. 절대 가격 책정 또는 백분율 할인을 통해 파트너 가격을 사용자 지정할 수 있습니다. |
saasNewCustomizedPlans | SaaS 제품에 대한 가격 책정, 미터 수량 및 사용자 제한 사용자 지정 - 절대 파트너 가격, 계량 차원 수량 및 사용자 제한을 사용자 지정하여 SaaS 플랜에 대한 프라이빗 제품을 만들려면 이 옵션을 사용합니다. |
vmSoftwareReservations | VM 소프트웨어 예약 제품에 대한 가격 책정 및 특정 수량 사용자 지정 - 이 옵션을 사용하여 VM 소프트웨어 예약(1년 또는 3년)을 판매하고 절대 파트너 가격, vCPU 크기, 수량, 기간 및 결제 일정을 사용자 지정하는 다중 파티 프라이빗 제품을 만듭니다. |
이전 세 가지 가격 책정 유형 옵션의 경우 계획별 리소스 요구 사항이 다를 수 있습니다. 자세한 내용은 다음 표를 참조하세요.
리소스 이름 | editExistingOfferPricingOnly | saasNewCustomizedPlans | vmSoftwareReservations |
---|---|---|---|
가격. 계획 | 요청 본문에서 구성할 공용 계획의 계획 ID로 설정합니다. | 해당 없음 | 해당 없음 |
pricing.basePlan | 해당 없음 | 요청 본문에서 구성할 공용 계획의 계획 ID로 설정합니다. | 요청 본문에서 구성할 공용 계획의 계획 ID로 설정합니다. |
pricing.newPlanDetails.name | 해당 없음 | 요청 본문에서 고객에게 표시될 새 플랜의 이름으로 설정합니다. | 요청 본문에 적용되지 않습니다. 시스템이 생성되고 완료되면 작업의 응답에서 사용할 수 있습니다. |
pricing.newPlanDetails.description | 해당 없음 | 요청 본문의 새 플랜에 대해 고객에게 표시될 설명으로 설정합니다. | 요청 본문에는 적용되지 않으며, 완료되면 시스템이 생성되고 작업의 응답에서 사용할 수 있습니다. |
customerContractRenewal 값 | 설명 |
---|---|
true | 프라이빗 제품은 기존 고객 계약의 갱신입니다. 고객 갱신을 위해 개인 제품에 50% 할인된 에이전시 요금이 적용됩니다. |
false | 프라이빗 제품은 기존 고객 계약의 갱신이 아닙니다 . 표준 에이전시 요금이 적용됩니다. |
요청 본문은 호출자 역할에 따라 다릅니다. privateOfferType을 사용하여 ISV 호출자를 파트너 호출자 판매와 구분합니다.
호출자 역할 | privateOfferType 값 |
---|---|
ISV(생성자) | multipartyPromotionOriginator |
판매 파트너(판매자) | multipartyPromotionChannelPartner |
요청 본문 샘플
ISV의 샘플 요청 본문은 할인 가격을 사용하여 기존 공공 플랜에 대한 가격 책정만 사용자 지정하여 제품을 만듭니다.
ISV(발신기)는 제품의 모든 기본 세부 정보를 제공해야 합니다. 여기에는 이름이 포함되어야 합니다.
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/private-offer/2024-09-30",
"resourceName": "privateOffer",
"name": "privateOffercustomer1705",
"state": "live",
"privateOfferType": "multipartyPromotionOriginator",
"offerPricingType": "editExistingOfferPricingOnly",
"customerContractRenewal": false,
"variableStartDate": true,
"end": "2022-01-31",
"acceptBy": "2022-02-28",
"termsAndConditionsDocs": [
{
"sasUrl": "https://promotionpmeprod.blob.core.windows.net/promotionsblobdata/44c2b38a-fa64-4861-806c-6c486ec19b6d-769f3960-45af-42db-ab3b-6391841683d6",
"fileName": "Test1.pdf",
"customerFacingDocumentName": "Test1 T&C"
} ],
"notificationContacts": [ "amy@contoso.com" ],
"beneficiaries": [
{ "id": "xxxxxx-2163-5eea-ae4e-d6e88627c26b:6ea018a9-da9d-4eae-8610-22b51ebe260b_2019-05-31", "description": "Top First Customer"}
],
"partners": [
{
"id": "12345678",
"partnerName": "Market Place Test",
"location": "United States"
}
],
"pricing": [
{ "product": "product/34771906-9711-4196-9f60-4af380fd5042", "plan":"plan/123456","discountType": "percentage", "discountPercentage": 5 }
],
"notes": "ISV 123"
}
]
}
절대 가격을 사용하여 기존 공용 계획에 대한 가격 책정만 사용자 지정하는 샘플 요청 본문
백분율 기반 할인 대신 절대 가격을 사용하는 경우 절대 가격을 정의하는 다중 파티 프라이빗 제품 리소스 위에 새 리소스를 만든 다음 새로 만든 리소스를 구성 스키마의 리소스 목록에 다른 개체로 포함할 수 있습니다.
이 방법을 사용하여 기존 공개 플랜의 가격 책정 리소스를 가져오고 가격을 편집한 다음, 제품에 대해 편집된 리소스를 사용합니다.
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
샘플 절대 가격 책정 리소스
{
"$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
"resourceName": "newSimpleAbsolutePricing",
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"plan": "plan/987654",
"offerPricingType": "editExistingOfferPricingOnly",
"pricing": {
"recurrentPrice": {
"priceInputOption": "usd",
"prices": [
{
"pricePerPaymentInUsd": 1,
"billingTerm": {
"type": "month",
"value": 1
}
},
{
"pricePerPaymentInUsd": 2,
"paymentOption": {
"type": "month",
"value": 1
},
"billingTerm": {
"type": "year",
"value": 1
}
}
]
},
"customMeters": {
"priceInputOption": "usd",
"meters": {
"meter1": {
"pricePerPaymentInUsd": 1
}
}
}
}
}
가격 책정 모듈에 해당 리소스를 개체로 포함
[
{
"product": "product/34771906-9711-4196-9f60-4af380fd5042",
"plan": "plan/123456",
"discountType": "percentage",
"discountPercentage": 5
},
{
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"plan": "plan/987654",
"discountType": "absolute",
"priceDetails": {
"resourceName": "newSimpleAbsolutePricing"
}
}
]
절대 가격을 사용하여 SaaS 제품에 대한 가격 책정, 계량 수량 및 사용자 제한을 사용자 지정하는 샘플 요청 본문
다음 방법을 사용하여 프라이빗 제품에 대한 절대 가격 및 가용성 리소스를 만듭니다.
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
가격 및 미터 수량을 사용자 지정하는 정액 SaaS 제품에 대한 샘플 절대 가격 책정 리소스
{
"$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"resourceName": "newSaaSPlanAbsolutePricing",
"plan": "plan/123456",
"offerPricingType": "saasNewCustomizedPlans",
"pricing": {
"recurrentPrice": {
"recurrentPriceMode": "flatRate",
"priceInputOption": "usd",
"prices": [
{
"billingTerm": {
"type": "month",
"value": 1
},
"paymentOption": {
"type": "month",
"value": 1
},
"pricePerPaymentInUsd": 0.1
},
{
"billingTerm": {
"type": "year",
"value": 1
},
"paymentOption": {
"type": "month",
"value": 1
},
"pricePerPaymentInUsd": 0.12
}
]
},
"customMeters": {
"priceInputOption": "usd",
"meters": {
"meter1": {
"includedQuantities": [
{
"billingTerm": {
"type": "month",
"value": 1
},
"quantity": 10.0,
"isInfinite": false
},
{
"billingTerm": {
"type": "year",
"value": 1
},
"quantity": 15.0,
"isInfinite": false
}
]
},
"meter2": {
"includedQuantities": [
{
"billingTerm": {
"type": "month",
"value": 1
},
"isInfinite": true
},
{
"billingTerm": {
"type": "year",
"value": 1
},
"isInfinite": true
}
]
}
}
}
}
}
가격 및 사용자 제한을 사용자 지정하는 사용자별 SaaS 제품에 대한 샘플 절대 가격 책정 리소스
{
"$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
"resourceName": "newSaaSPlanAbsolutePricing",
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"plan": "plan/123456",
"offerPricingType": "saasNewCustomizedPlans",
"pricing": {
"recurrentPrice": {
"recurrentPriceMode": "perUser",
"priceInputOption": "usd",
"userLimits": {
"min": 20,
"max": 100
},
"prices": [
{
"billingTerm": {
"type": "month",
"value": 1
},
"paymentOption": {
"type": "month",
"value": 1
},
"pricePerPaymentInUsd": 0.01
},
{
"billingTerm": {
"type": "year",
"value": 1
},
"paymentOption": {
"type": "year",
"value": 1
},
"pricePerPaymentInUsd": 0.02
}
]
}
}
}
가격 책정 모듈에 해당 리소스를 개체로 포함
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/private-offer/2024-09-30",
"name": "privateOffercustomer1705",
"state": "live",
"privateOfferType": "multipartyPromotionOriginator",
"offerPricingType": "newSimpleAbsolutePricing",
"customerContractRenewal": false,
"variableStartDate": true,
"end": "2022-01-31",
"acceptBy": "2022-02-28",
"partners": [
{
"id": "12345678",
"partnerName": "Market Place Test",
"location": "United States"
}
],
"termsAndConditionsDocs": [
{
"sasUrl": "https://promotionpmeprod.blob.core.windows.net/promotionsblobdata/44c2b38a-fa64-4861-806c-6c486ec19b6d-769f3960-45af-42db-ab3b-6391841683d6",
"fileName": "Test1.pdf",
"customerFacingDocumentName": "Test1 T&C"
} ],
"notificationContacts": [ "amy@contoso.com" ],
"beneficiaries": [
{ "id": "xxxxxx-2163-5eea-ae4e-d6e88627c26b:6ea018a9-da9d-4eae-8610-22b51ebe260b_2019-05-31", "description": "Top First Customer"}
],
"pricing": [
{
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"discountType": "absolute",
"priceDetails": {
"resourceName": "newSaaSPlanAbsolutePricing"
}
"basePlan": "plan/123456",
"newPlanDetails": {
"name": "newPlanName",
"description": "newPlanDescription"
}
],
"notes": "ISV 123"
}
]
}
절대 가격을 사용하여 VM 소프트웨어 예약 제품에 대한 가격 책정 및 특정 수량을 사용자 지정하는 샘플 요청 본문
다음 방법을 사용하여 제품에 대한 절대 가격 및 가용성 리소스를 만듭니다.
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
가격 및 수량을 사용자 지정하는 VM 제품에 대한 샘플 절대 가격 책정 리소스
{
"$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
"resourceName": "newVMSRAbsolutePricing",
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"offerPricingType": "vmSoftwareReservations",
"plan": "plan/987654",
"softwareReservation": {
"reservationDuration": {
"type": "year",
"value": 1
},
"paymentSchedule": {
"type": "year",
"value": 1
},
"vmPrices": {
"36Core": {
"quantity": 4.0,
"unitPricePerPaymentPeriodInUsd": 0.04
}
}
}
}
가격 책정 모듈에 해당 리소스를 개체로 포함
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/private-offer/2024-09-30",
"name": "privateOffercustomer1705",
"state": "live",
"privateOfferType": "multipartyPromotionOriginator",
"offerPricingType": "vmSoftwareReservations",
"customerContractRenewal": false,
"variableStartDate": true,
"end": "2022-01-31",
"acceptBy": "2022-02-28",
"partners": [
{
"id": "12345678",
"partnerName": "Market Place Test",
"location": "United States"
}
],
"termsAndConditionsDocs": [
{
"sasUrl": "https://promotionpmeprod.blob.core.windows.net/promotionsblobdata/44c2b38a-fa64-4861-806c-6c486ec19b6d-769f3960-45af-42db-ab3b-6391841683d6",
"fileName": "Test1.pdf",
"customerFacingDocumentName": "Test1 T&C"
} ],
"notificationContacts": [ "amy@contoso.com" ],
"beneficiaries": [
{ "id": "xxxxxx-2163-5eea-ae4e-d6e88627c26b:6ea018a9-da9d-4eae-8610-22b51ebe260b_2019-05-31", "description": "Top First Customer"}
],
"pricing": [
{
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"discountType": "absolute",
"priceDetails": {
"resourceName": "newVMSRAbsolutePricing"
}
"basePlan": "plan/987654"
],
"notes": "ISV 123"
}
]
}
제품 만들기를 완료하기 위한 파트너의 샘플 요청
판매 파트너는 ISV에서 제공하는 다중 파티 프라이빗 제품 ID를 사용하여 고객 조정 %(태그), 파트너 사용자 지정 계약 판매, 준비한 파트너 연락처 판매 및 판매 파트너 연락처를 구성해야 합니다.
다음 예제는 제품 ID를 사용하여 제품 세부 정보를 검색할 때 반환되는 응답 본문을 기반으로 합니다.
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/private-offer/2024-09-30",
"resourceName": "privateOffer",
"name": "privateOffercustomer1705",
"state": "live",
"privateOfferType": "multipartyPromotionChannelPartner",
"offerPricingType": "editExistingOfferPricingOnly",
"variableStartDate": true,
"end": "2022-01-31",
"acceptBy": "2022-02-28",
"preparedBy": "tester@microsoft.com",
"originatorTermsAndConditionsDocs": [
{
"sasUrl": "https://promotionpmeprod.blob.core.windows.net/promotionsblobdata/44c2b38a-fa64-4861-806c-6c486ec19b6d-769f3960-45af-42db-ab3b-6391841683d6",
"fileName": "Test1.pdf",
"customerFacingDocumentName": "Test1 T&C"
} ],
"termsAndConditionsDocs": [
{
"sasUrl": "https://promotionpmeprod.blob.core.windows.net/promotionsblobdata/44c2b38a-fa64-4861-806c-6c486ec19b6d-769f3960-45af-42db-ab3b-6391841683d6",
"fileName": "Test1.pdf",
"customerFacingDocumentName": "Test1 T&C"
} ],
"notificationContacts": [ "amy@contoso.com" ],
"beneficiaries": [
{ "id": "xxxxxx-2163-5eea-ae4e-d6e88627c26b:6ea018a9-da9d-4eae-8610-22b51ebe260b_2019-05-31", "description": "Top First Customer"}
],
"partners": [
{
"id": "12345678",
"partnerName": "Market Place Test",
"location": "United States"
}
],
"originatorPricing": [
{
"product": "product/34771906-9711-4196-9f60-4af380fd5042",
"plan":"plan/123456",
"discountType": "percentage",
"discountPercentage": 5
"markupPercentage": 1.0
}
],
"lastModified": "2023-01-19",
"eTag": "\"7f020249-0000-0800-0000-63c9b4ca0000\"",
}
]
}
이전 예제의 키 호출
- 판매 파트너는 preparedBy 특성을 제공해야 합니다.
- ISV 사용자 지정 사용 약관은 볼 수 있지만 판매 파트너가 편집할 수 없으며 리소스 originatorTermsAndConditionsDocs에 캡처됩니다.
- 판매 파트너는 자신의 사용자 지정 용어 및 조건을AndConditionsDocs 리소스에 업로드할 수 있습니다 .
- 판매 파트너는 notificationContacts 리소스에서 제품에 대한 알림을 받을 자신의 연락처를 추가할 수 있습니다 .
- 수혜자 및 파트너 특성은 볼 수 있지만 판매 파트너는 편집할 수 없습니다.
- 가격 책정 리소스는 originatorPricing으로 표시되고, markupPercentage는 필수이며 제출 시 판매 파트너가 제공해야 하며, 가격 책정 리소스의 다른 모든 특성은 읽기 전용입니다.
응답
응답에는 나중에 상태를 폴링하는 데 사용할 수 있는 jobId가 포함됩니다.
{
"$schema": "https://schema.mp.microsoft.com/schema/configure-status/2022-07-01",
"jobId": "c32dd7e8-8619-462d-a96b-0ac1974bace5",
"jobStatus": "notStarted",
"jobResult": "pending",
"jobStart": "2021-12-21T21:29:54.9702903Z",
"jobEnd": "0001-01-01",
"errors": []
}
오류 코드
HTTP 상태 코드 | 설명 |
---|---|
401 | 인증 오류: 유효한 Microsoft Entra 액세스 토큰을 사용하고 있는지 확인합니다. |
400 | 스키마 유효성 검사. 요청 본문이 올바른 스키마를 따르고 모든 필수 필드를 포함하는지 확인합니다. |