Udostępnij za pośrednictwem


Tworzenie wieloczęściowej oferty prywatnej dla klienta

Niezależnego dostawcy oprogramowania (inicjatora) i współpracującego partnera (sprzedawcy) należy użyć tego samego zestawu wywołań interfejsu API, aby utworzyć ofertę prywatną dla klienta. Oto oczekiwany przepływ.

  1. Niezależnego dostawcy oprogramowania tworzy ofertę i przesyła do sprzedaży widoczność partnera
  2. Niezależnego dostawcy oprogramowania powiadamia partnera sprzedaży (za pośrednictwem poczty e-mail lub innych metod), oferta jest teraz dostępna do edycji partnerów sprzedaży
  3. Sprzedaż przeglądów partnerów i kończenie konfigurowania oferty prywatnej i przesyłania pod kątem widoczności klienta końcowego

Oto metoda wywołania tworzenia oferty.

Żądanie

POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2022-07-01

Nagłówek żądania

Nagłówek Type Opis
Autoryzacja String Wymagany. Token dostępu firmy Microsoft Entra w postaci Bearer <token>.

Opcjonalnie: clientID

Parametry żądania

$version — wymagane. Jest to wersja schematu używanego w żądaniu.

Treść żądania

Poniższe opcje odzwierciedlają opcje w Centrum partnerskim podczas tworzenia wieloczęściowej oferty prywatnej dla klienta. Te opcje są definiowane przez następujące wartości offerPricingType :

offerPricingType wartość Odpowiednik opcji tworzenia oferty prywatnej w Centrum partnerskim
editExistingOfferPricingOnly Dostosowywanie cen dla istniejącej oferty publicznej i planów — ta opcja umożliwia utworzenie oferty prywatnej dla wszystkich typów ofert transakcyjnych: SaaS, Azure Virtual Machines i aplikacja systemu Azure. Cennik partnera można dostosować za pomocą bezwzględnych cen lub rabatów procentowych.
saasNewCustomizedPlans Dostosowywanie cen, ilości mierników i limitów użytkowników dla oferty SaaS — ta opcja umożliwia utworzenie oferty prywatnej dla planu SaaS przez dostosowanie bezwzględnej ceny partnera, ilości wymiarów pomiarów i limitów użytkowników.
vmSoftwareReservations Dostosowywanie cen i określonych ilości ofert rezerwacji oprogramowania maszyn wirtualnych — ta opcja umożliwia utworzenie wieloczęściowej oferty prywatnej do sprzedaży rezerwacji oprogramowania maszyn wirtualnych (1 rok lub 3 rok) i dostosowanie bezwzględnej ceny partnera, rozmiaru procesorów wirtualnych, ilości, czasu trwania i harmonogramu płatności.

W przypadku poprzednich trzech opcji typów cen wymagania dotyczące zasobów specyficznych dla planu mogą się różnić. Aby uzyskać szczegółowe informacje, zobacz następującą tabelę:

Nazwa zasobu editExistingOfferPricingOnly saasNewCustomizedPlans vmSoftwareReservations
Ceny. Plan Ustaw go na identyfikator planu publicznego, który ma zostać skonfigurowany w treści żądania Nie dotyczy Nie dotyczy
pricing.basePlan Nie dotyczy Ustaw go na identyfikator planu publicznego, który ma zostać skonfigurowany w treści żądania Ustaw go na identyfikator planu publicznego, który ma zostać skonfigurowany w treści żądania
pricing.newPlanDetails.name Nie dotyczy Ustaw tę wartość na nazwę nowego planu, który będzie wyświetlany klientowi w treści żądania Nie dotyczy treści żądania, zostanie wygenerowany system i dostępny w odpowiedzi zadania po zakończeniu.
pricing.newPlanDetails.description Nie dotyczy Ustaw tę wartość na opis, który zostanie wyświetlony klientowi dla nowego planu w treści żądania Nie dotyczy treści żądania, zostanie wygenerowany system i dostępny w odpowiedzi zadania po zakończeniu.
customerContractRenewal wartość opis
prawda Oferta prywatna to odnowienie istniejącej umowy klienta. 50% obniżonej opłaty agencji ma zastosowanie do oferty prywatnej na potrzeby odnawiania klientów
fałsz Oferta prywatna nie jest odnawianiem istniejącej umowy klienta. Obowiązuje opłata za agencję standardową.

Treść żądania różni się w zależności od roli wywołującej. Użyj parametru privateOfferType , aby odróżnić wywołującego niezależnego dostawcę oprogramowania od wywołującego partnera sprzedaży.

Rola wywołująca wartość privateOfferType
Niezależnego dostawcy oprogramowania (inicjator) multipartyPromotionOriginator
Partner sprzedaży (sprzedawca) multipartyPromotionChannelPartner

Przykłady treści żądania

Przykładowa treść żądania przez niezależnego dostawcę oprogramowania w celu utworzenia oferty przy użyciu cennika rabatu w celu dostosowania cen tylko dla istniejącego planu publicznego

IsV (twórca) jest wymagany do dostarczenia wszystkich podstawowych szczegółów oferty. Musi to zawierać nazwę.

{
 "$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"
    }
  ]
}

Przykładowa treść żądania korzystająca z cen bezwzględnych w celu dostosowania cen tylko dla istniejącego planu publicznego

Jeśli używasz bezwzględnych cen zamiast rabatów opartych na procentach, możesz utworzyć nowy zasób powyżej zasobu oferty prywatnej z wieloma częściami, który definiuje bezwzględne ceny, a następnie uwzględnić ten nowo utworzony zasób jako inny obiekt na liście zasobów schematu konfiguracji.

Użyj tej metody, aby uzyskać zasób cenowy dla istniejącego planu publicznego, edytować ceny, a następnie użyć edytowanego zasobu dla oferty.

GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15

Przykładowy zasób cen bezwzględnych

{
    "$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
                }
            }
        }
    }
}

Uwzględnij ten zasób jako obiekt w module cen

[
    {
        "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"
        }
    }
]

Przykładowa treść żądania korzystająca z cen bezwzględnych w celu dostosowania cen, ilości pomiarów i limitów użytkowników dla oferty SaaS

Użyj następującej metody, aby utworzyć bezwzględną cenę i zasób dostępności dla oferty prywatnej.

GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15

Przykładowy bezwzględny zasób cenowy dla oferty SaaS z ryczałtowaną stawką, która dostosowuje ilości cen i mierników

{
    "$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
                        }
                    ]
                }
            }
        }
    }
}

Przykładowy bezwzględny zasób cenowy dla oferty SaaS dla użytkownika, która dostosowuje limity cen i użytkowników

{
    "$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
                }
            ]
        }
    }
}

Uwzględnij ten zasób jako obiekt w module cen


{
 "$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"
     }
  ]
}

Przykładowa treść żądania korzystająca z cen bezwzględnych w celu dostosowania cen i określonych ilości ofert rezerwacji oprogramowania maszyn wirtualnych

Użyj następującej metody, aby utworzyć bezwzględną cenę i zasób dostępności dla oferty.

GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15

Przykładowy bezwzględny zasób cenowy dla oferty maszyny wirtualnej, który dostosowuje cenę i ilości

{
    "$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
            }
        }
    }       
}

Uwzględnij ten zasób jako obiekt w module cen

{
 "$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"
     }
  ]
}

Przykładowe żądanie partnera w celu ukończenia tworzenia oferty

Partner sprzedaży powinien użyć wieloczęściowego identyfikatora oferty prywatnej dostarczonej przez niezależnego dostawcę oprogramowania w celu skonfigurowania % korekty klienta (adiustacji), sprzedaży umów niestandardowych partnerów, przygotowanych przez i sprzedaży kontaktów partnerów.

Poniższy przykład jest oparty na treści odpowiedzi zwracanej podczas pobierania szczegółów oferty przy użyciu identyfikatora oferty.

{
 "$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\"",
    }
  ]
}

Objaśnienie klucza w poprzednim przykładzie

  • Partner sprzedaży musi podać atrybut preparedBy .
  • Niestandardowe warunki i postanowienia niezależnego dostawcy oprogramowania są widoczne, ale nie można ich edytować przez partnera sprzedaży. Są one przechwytywane w jednostki źródłowej zasobuTermsAndConditionsDocs.
  • Partner sprzedaży może przekazać własny termin niestandardowy i warunek w zasobieAndConditionsDocs.
  • Partner sprzedaży może dodać własne kontakty, aby otrzymywać powiadomienia o ofercie w zasobie notificationContacts .
  • Atrybuty beneficjenta i partnerów są widoczne, ale nie mogą być edytowane przez partnera sprzedaży.
  • Zasób cenowy jest wyświetlany jako element źródłowyPricing, markupPercentage jest wymagany i musi być dostarczony przez partnera sprzedaży podczas przesyłania, wszystkie inne atrybuty w zasobie cenowym są tylko do odczytu.

Response

Odpowiedź zawiera identyfikator jobId , którego można użyć później do sondowania stanu:

{
    "$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": []
}

Kody błędów

Kod stanu HTTP opis
401 Błąd uwierzytelniania: Upewnij się, że używasz prawidłowego tokenu dostępu firmy Microsoft Entra.
400 Weryfikacja schematu. Upewnij się, że treść żądania jest zgodna z prawidłowym schematem i zawiera wszystkie wymagane pola.