Dela via


Skapa en kundvagn med en kundorder

gäller för: Partnercenter | Partnercenter som drivs av 21Vianet | Partnercenter för Microsoft Cloud for US Government

Du kan lägga till en beställning för en kund i en kundvagn. Mer information om vad som för närvarande är tillgängligt att sälja finns i Partner-erbjudanden i cloud solution provider-programmet.

Notera

Kundvagnar upphör att gälla 7 dagar från att de skapades.

Förutsättningar

  • Autentiseringsuppgifter enligt beskrivningen i Partnercenter-autentisering. Det här scenariot stöder autentisering med både fristående app- och App+User-autentiseringsuppgifter.

  • Ett kund-ID (customer-tenant-id). Om du inte känner till kundens ID kan du leta upp det i Partnercenter genom att välja arbetsytan Kunder, sedan kunden från kundlistan och sedan konto. På kundens kontosida letar du efter Microsoft-ID i avsnittet Kundkontoinformation. Microsoft-ID:t är detsamma som kund-ID :t (customer-tenant-id).

C#

Så här skapar du en beställning för en kund:

  1. Instansiera ett kundvagnsobjekt.

  2. Skapa en lista över CartLineItem objekt och tilldela listan till kundvagnens LineItems-egenskap. Varje kundvagnsrad innehåller inköpsinformation för en produkt. Du måste ha minst en artikel i kundvagnen.

  3. Hämta ett gränssnitt för kundvagnsåtgärder genom att anropa metoden IAggregatePartner.Customers.ById med kund-ID:t för att identifiera kunden och sedan hämta gränssnittet från egenskapen Cart.

  4. Anropa metoden Skapa eller CreateAsync för att skapa kundvagnen.

  5. För att slutföra attesteringen och inkludera andra återförsäljare, se följande exempel på exempel på begäran och svar:

Begär prov


{
    "PartnerOnRecordAttestationAccepted":true,     "lineItems": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
            "quantity": 1,
            "billingCycle": "monthly",
            "termDuration": "P1M",
            "renewsTo": null,
            "provisioningContext": {},
            "customTermEndDate": "2022-02-19T00:00:00Z"
        },
        {
            "id": 1,
            "catalogItemId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
            "quantity": 2,
            "billingCycle": "monthly",
            "termDuration": "P1Y",
            "participants": [
                {
                    "key": "transaction_reseller",
                    "value": "5357564"
                },
                 {
                    "key": "additional_transaction_reseller",                     
                    "value": "517285"
                },
                 {
                    "key": "additional_transaction_reseller", 
                    "value": "5357563"
                }
            ]
        }
    ]
}


Svarsexempel


{
    "id": "3e22b548-647d-4223-9675-1fcb6cb57665",
    "creationTimestamp": "2021-08-18T17:29:52.3517492Z",
    "lastModifiedTimestamp": "2021-08-18T17:29:52.3517553Z",
    "expirationTimestamp": "2021-08-25T17:30:11.2406416Z",
    "lastModifiedUser": "da62a0dc-35e9-4601-b48e-a047bd3ec7c1",
    "status": "Active",
    "lineItems": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
            "quantity": 1,
            "currencyCode": "USD",
            "billingCycle": "monthly",
            "termDuration": "P1M",
	    "customTermEndDate": "2022-02-19T00:00:00Z";
            "provisioningContext": {},
            "orderGroup": "0"
        },
        {
            "id": 1,
            "catalogItemId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
            "quantity": 2,
            "currencyCode": "USD",
            "billingCycle": "monthly",
            "termDuration": "P1Y",
            "participants": [
                {
                    "key": "transaction_reseller",
                    "value": "5357564"
                },
                {
                    "key": "additional_transaction_reseller", 
                    "value": "517285"
                },
                {
                    "key": "additional_transaction_reseller", 
                    "value": "5357563"
                }
            ],
            "provisioningContext": {},
            "orderGroup": "0"
        }
    ],
    "links": {
        "self": {
            "uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/carts/3e22b548-647d-4223-9675-1fcb6cb57665",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Cart"
    }
}


C#-exempel

// IAggregatePartner partnerOperations;
// string customerId;
// string subscriptionId;

var cart = new Cart()
{
    LineItems = new List<CartLineItem>()
    {
        new CartLineItem()
        {
      /* Microsoft Azure Subscription */
            Id = 0,
            CatalogItemId = "MS-AZR-0145P",
            Quantity = 1,
            BillingCycle = BillingCycleType.Monthly,
            TermDuration = "P1Y"
        },
        new CartLineItem()
        {
      /* Azure Reserved Instance */
            Id = 1,
            CatalogItemId = "DZH318Z0BQ36:004G:DZH318Z08C0S",
            Quantity = 1,
            BillingCycle = BillingCycleType.OneTime,
            TermDuration = "P1Y",
            ProvisioningContext = new Dictionary<string, string>
            {
                { "subscriptionId", subscriptionId },
                { "scope", "shared" }
            }
        },
        new CartLineItem()
        {
      /* Azure Reserved Instance */
            Id = 2,
            CatalogItemId = "DZH318Z0BQ36:004J:DZH318Z08B8X",
            Quantity = 1,
            BillingCycle = BillingCycleType.OneTime,
            TermDuration = "P3Y",
            ProvisioningContext = new Dictionary<string, string>
            {
                { "subscriptionId", subscriptionId },
                { "scope", "shared" }
            }
        },
        new CartLineItem()
        {
      /* Perpetual Software */
            Id = 3,
            CatalogItemId = "DG7GMGF0DWM3:0002:DG7GMGF0DT1M",
            Quantity = 1,
            BillingCycle = BillingCycleType.OneTime
        },
        new CartLineItem()
        {
      /* SaaS */
            Id = 4,
            CatalogItemId = "DZH318Z0BXWC:0002:DZH318Z0BMRV",
            Quantity = 1,
            BillingCycle = BillingCycleType.Monthly,
            TermDuration = "P1M"
        },
        new CartLineItem()
        {
      /* SaaS Free Trial */
            Id = 5,
            CatalogItemId = "DZH318Z0C0WF:0001:DZH318Z0BP69",
            Quantity = 10,
            BillingCycle = BillingCycleType.None,
            TermDuration = "P1M",
            RenewsTo = new RenewsTo
            {
                TermDuration = "P1Y"
            }
        }
    }
};

cart = partnerOperations.Customers.ById(customerId).Carts.Create(cart);

Java

Java SDK för Partnercenter kan användas för att hantera Partnercenter-resurser. Det är ett projekt med öppen källkod som underhålls av partnercommunityn och stöds inte officiellt av Microsoft. Du kan få hjälp från communityn eller öppna ett problem på GitHub om du får problem.

Så här skapar du en beställning för en kund:

  1. Instansiera ett kundvagnsobjekt.

  2. Skapa en lista över CartLineItem objekt och tilldela listan till kundvagnens radobjekt. Varje kundvagnsrad innehåller inköpsinformation för en produkt. Du måste ha minst en artikel i kundvagnen.

  3. Hämta ett gränssnitt för kundvagnsåtgärder genom att anropa funktionen IAggregatePartner.getCustomers().byId med kund-ID:t för att identifiera kunden och sedan hämta gränssnittet från funktionen getCart.

  4. Anropa funktionen skapa för att skapa kundvagnen.

Java-exempel

// IAggregatePartner partnerOperations;
// String customerId;
// String subscriptionId;
// String catalogItemId;

CartLineItem lineItem = new CartLineItem();

lineItem.setBillingCycle(BillingCycleType.OneTime);
lineItem.setCatalogItemId(catalogItemId);
lineItem.setFriendlyName("Sample RI Purchase");
lineItem.setQuantity(1);

Map<String, String> provisioningContext = new HashMap<String,String>();

provisioningContext.put("duration", "3Years");
provisioningContext.put("scope", "shared");
provisioningContext.put("subscriptionId", subscriptionId);

lineItem.setProvisioningContext(provisioningContext);

List<CartLineItem> lineItemList = new ArrayList<CartLineItem>();
lineItemList.add(lineItem);

Cart cart = new Cart();
cart.setLineItems(lineItemList);

Cart cartCreated = partnerOperations.getCustomers().byId(customerId).getCarts().create(cart);

PowerShell

PowerShell-modulen Partner Center kan användas för att hantera Partnercenter-resurser. Det är ett projekt med öppen källkod som underhålls av partnercommunityn och stöds inte officiellt av Microsoft. Du kan få hjälp från communityn eller öppna ett problem på GitHub om du får problem.

Så här skapar du en beställning för en kund:

  1. Instansiera ett kundvagnsobjekt.

  2. Skapa en lista över CartLineItem objekt och tilldela listan till kundvagnens radobjekt. Varje kundvagnsrad innehåller inköpsinformation för en produkt. Du måste ha minst en artikel i kundvagnen.

  3. Kör kommandot New-PartnerCustomerCart för att skapa kundvagnen.

# $customerId
# $subscriptionId
# $catalogItemId

$lineItem = New-Object -TypeName Microsoft.Store.PartnerCenter.PowerShell.Models.Carts.PSCartLineItem

$lineItem.BillingCycle = 'OneTime'
$lineItem.CatalogItemId = $catalogItemId
$lineItem.FriendlyName = 'Sample RI Purchase'
$lineItem.ProvisioningContext.Add('duration', '1Year')
$lineItem.ProvisioningContext.Add('scope', 'shared')
$lineItem.ProvisioningContext.Add('subscriptionId', $subsciptionId)
$lineItem.Quantity = 10

New-PartnerCustomerCart -CustomerId $customerId -LineItems $lineItem

REST-begäran

Syntax för förfrågan

Metod Begärd URI
sv-SE: POST {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1

URI-parameter

Använd följande sökvägsparameter för att identifiera kunden.

Namn Typ Krävs Beskrivning
kund-ID sträng Ja Ett GUID-formaterat kund-ID som identifierar kunden.

Begärandehuvuden

För mer information, se Partnercenters REST-huvuden.

Begärandetext

I den här tabellen beskrivs egenskaperna Cart i begärandetexten.

Egenskap Typ Krävs Beskrivning
Id sträng Nej En kundvagnsidentifierare som tillhandahålls när kundvagnen har skapats.
creationTimeStamp DatumTid Nej Det datum då kundvagnen skapades i datum-tid-format. Tillämpas när kundvagnen har skapats.
senast ändrad tidsstämpel DatumTid Nej Datumet då kundvagnen senast uppdaterades, i datum-tid-format. Tillämpas när kundvagnen har skapats.
utgångstidsstämpel Datum och tid Nej Datumet då kundvagnen upphör att gälla, i datum-tid-format. Tillämpas när kundvagnen har skapats.
Senast ändrad användare sträng Nej Användaren som senast uppdaterade kundvagnen. Tillämpas när kundvagnen har skapats.
lineItems Matris med objekt Ja En matris med CartLineItem resurser.
IntygOmPartnerPåRecordAccepterat Boolesk Ja Bekräftar att attesteringen har slutförts

I den här tabellen beskrivs egenskaperna CartLineItem i begärandetexten.

Egenskap Typ Krävs Beskrivning
Id sträng Nej En unik identifierare för ett objekt i kundvagnens rad. Tillämpas när kundvagnen har skapats.
catalogId sträng Ja Katalogpostens identifierare. Se till att tillgängligheten för katalogobjektet är för rätt segment.
användarvänligt namn sträng Nej Valfri. Det vänliga namnet för det objekt som definierats av partnern för att tydliggöra.
promotionId sträng Nej Valfri. De flesta NCE-kampanjer tillämpas automatiskt, men för valfria kampanjer (till exempel Bridge to the Cloud 2) för att gälla för ett kundvagnslinjeobjekt måste partner inkludera kampanj-ID:t i begäran om att lägga till i kundvagnen.
kvantitet Int Ja Antalet licenser eller instanser.
valutakod sträng Nej Valutakoden.
billingCycle Objekt Ja Typ av faktureringsperiod som angetts för den aktuella perioden.
anpassatFörfallodatum Datum och tid Nej Slutdatumet för en befintlig prenumeration som du vill samordna den nya prenumerationen med.
Deltagare Lista över objektsträngspar Nej En samling PartnerId on Record (PartnerID) vid köpet.
provisioneringskontext Ordlista<sträng, sträng> Nej Information som krävs för tillhandahållande av vissa artiklar i katalogen. Egenskapen provisioningVariables i en SKU anger vilka egenskaper som krävs för specifika objekt i katalogen.
beställningsgrupp sträng Nej En grupp som anger vilka objekt som kan placeras tillsammans.
fel Objekt Nej Tillämpas efter att kundvagnen har skapats om det finns ett fel.
förnyas till Matris med objekt Nej En matris med RenewsTo resurser.
Intyg Godkänd Boolesk Nej Indikerar godkännande av erbjudande- eller produktvillkor. Krävs endast för erbjudanden eller SKU:er där SkuAttestationProperties eller OfferAttestationProperties enforceAttestation är sant.
transaktionsåterförsäljare Sträng Nej När en indirekt leverantör lägger en beställning på uppdrag av en indirekt återförsäljare fyller du i det här fältet med PartnerID för den indirekta återförsäljaren endast (aldrig ID för den indirekta leverantören). Detta säkerställer korrekt redovisning av incitament.
ytterligaretransaktionåterförsäljare Sträng Nej När en indirekt leverantör gör en beställning åt en indirekt återförsäljare fyller du i det här fältet med PartnerID för Ytterligare indirekt återförsäljare endast (aldrig ID:t för den indirekta leverantören). Incitament gäller inte för dessa ytterligare återförsäljare. Endast högst 5 indirekta återförsäljare kan anges. Detta är endast tillämpliga partner som handlar inom EU/EFTA-länder/regioner.

I den här tabellen beskrivs egenskaperna RenewsTo i begärandetexten.

Egenskap Typ Krävs Beskrivning
periodens varaktighet sträng Nej En ISO 8601-representation av förnyelseperiodens varaktighet. De aktuella värdena som stöds är P1M- (1 månad) och P1Y- (1 år).

Exempel på begäran

POST /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
MS-PartnerCenter-Client: Partner Center .NET SDK
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 496
Expect: 100-continue

{
  "lineItems": [
    {
    /* Microsoft Azure Subscription */
      "id": 0,
      "catalogItemId": "MS-AZR-0145P",
      "quantity": 1,
      "billingCycle": "monthly",
      "termDuration": "P1Y"
    },
    {
    /* Azure Reserved Instance */
      "id": 1,
      "catalogItemId": "DZH318Z0BQ36:004G:DZH318Z08C0S",
      "quantity": 1,
      "billingCycle": "one_time",
      "termDuration": "P1Y",
      "provisioningContext": {
        "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "scope": "shared"
      }
    },
    {
    /* Azure Reserved Instance */
      "id": 2,
      "catalogItemId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
      "quantity": 1,
      "billingCycle": "one_time",
      "termDuration": "P3Y",
      "provisioningContext": {
        "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "scope": "single"
      }
    },
    {
    /* Perpetual Software */
      "id": 3,
      "catalogItemId": "DG7GMGF0DWTL:0001:DG7GMGF0DSFM",
      "quantity": 1,
      "billingCycle": "one_time"
    },
    {
    /* SaaS */
      "id": 4,
      "catalogItemId": "DZH318Z0BXWC:0002:DZH318Z0BMRV",
      "quantity": 1,
      "billingCycle": "monthly",
      "termDuration": "P1M"
    },
  {
    /* SaaS Free Trial */
       "id": 5,
       "catalogItemId": "DZH318Z0C0WF:0001:DZH318Z0BP69",
       "quantity": 10,
       "billingCycle": "none",
       "termDuration": "P1M",
       "renewsTo": {
         "termDuration": "P1Y"
       }
    }
  ]
}

Viktig

Från och med juni 2023 arkiveras nu den senaste Partner Center .NET SDK-versionen 3.4.0. Du kan ladda ned SDK-versionen från GitHub, tillsammans med en readme-fil som innehåller användbar information.

Partner uppmanas att fortsätta att använda rest-API:erna för Partnercenter.

REST-svar

Om det lyckas returnerar den här metoden den ifyllda resursen Cart i svarstexten.

Svarsframgång och felkoder

Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och andra parametrar. Den fullständiga listan finns i Felkoder.

Svarsexempel

HTTP/1.1 201 Created
Content-Length: 764
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
X-Locale: en-US,en-US
MS-CV: sF/wRa2ih0CzbABc.0
MS-ServerId: 000001
Date: Thu, 15 Mar 2018 17:15:01 GMT
{
  "id": "3655b1a0-b1c9-4268-9824-577fdbc4d0be",
  "creationTimestamp": "2019-01-16T00:45:41.6062996Z",
  "lastModifiedTimestamp": "2019-01-16T00:45:41.6062996Z",
  "expirationTimestamp": "2019-01-16T01:00:54.4188497Z",
  "lastModifiedUser": "1824b7fc-2fac-4478-b177-66823c40ab75",
  "status": "Active",
  "lineItems": [
    {
      "id": 0,
      "catalogItemId": "MS-AZR-0145P",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "monthly",
      "termDuration": "P1Y",
      "orderGroup": "OMS-0"
    },
    {
      "id": 1,
      "catalogItemId": "DZH318Z0BQ36:004G:DZH318Z08C0S",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "one_time",
      "termDuration": "P1Y",
      "provisioningContext": {
        "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "scope": "shared"
      },
      "orderGroup": "0"
    },
    {
      "id": 2,
      "catalogItemId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "one_time",
      "termDuration": "P3Y",
      "provisioningContext": {
        "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "scope": "shared"
      },
      "orderGroup": "0"
    },
    {
      "id": 3,
      "catalogItemId": "DG7GMGF0DWM3:0002:DG7GMGF0DT1M",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "one_time",
      "orderGroup": "0"
    },
    {
      "id": 4,
      "catalogItemId": "DZH318Z0BXWC:0002:DZH318Z0BMRV",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "monthly",
      "termDuration": "P1M",
      "orderGroup": "1"
    },
  {
      "id": 5,
      "catalogItemId": "DZH318Z0C0WF:0001:DZH318Z0BP69",
      "quantity": 10,
      "currencyCode": "USD",
      "billingCycle": "none",
      "termDuration": "P1M",
      "renewsTo": {
  "termDuration": "P1Y"
      },
    "orderGroup": "2"
    }
  ],
  "links": {
    "self": {
      "uri": "/customers/28045616-f6b9-462f-9701-0d89b5e65c44/carts/3655b1a0-b1c9-4268-9824-577fdbc4d0be",
      "method": "GET",
      "headers": []
    }
  },
  "attributes": {
    "objectType": "Cart"
  }
}

Exempel på nya licensbaserade tjänster för handel

Obs

De nya handelsupplevelserna för licensbaserade tjänster innehåller många nya funktioner och är tillgängliga för alla molnlösningsleverantörer (CSP:er). Mer information finns i översikt över nya handelsupplevelser.

Exempel på begäran

POST /v1/customers/932c4101-dc08-461b-b4c1-75d80e905775/carts HTTP/1.1
Host: api.partnercenter.microsoft.com
Content-Type: application/json
Content-Length: 165

{
	"LineItems": [
		{
			"CatalogItemId":"CFQ7TTC0LFLZ:0002:CFQ7TTC0K4TS",
			"Quantity": 1,
			"TermDuration": "P1M",
			"BillingCycle": "Monthly"
		}
	]
}

Viktig

Azure-plan och eviga programvaruradobjekt stöder inte egenskapen termDuration. Undvik att inkludera detta när du införskaffar dessa typer av föremål.

REST-svar

Om det lyckas returnerar den här metoden den ifyllda resursen Cart i svarstexten.

Svarsframgång och felkoder

Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och annan felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och andra parametrar. Den fullständiga listan finns i Felkoder.

Svarsexempel


{
    "id": "2517c51b-58cd-4abe-87ed-3ab812401ab4",
    "creationTimestamp": "2023-07-11T21:16:11.55149Z",
    "lastModifiedTimestamp": "2023-07-11T21:16:11.5515713Z",
    "expirationTimestamp": "2023-07-18T21:16:17.2480482Z",
    "lastModifiedUser": "9db12087-fbc3-481c-8965-73d44ff88e27",
    "status": "Active",
    "lineItems": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0LF8S:0001:CFQ7TTC0VZW5",
            "quantity": 1,
            "currencyCode": "USD",
            "billingCycle": "monthly",
            "termDuration": "P1Y",
            "provisioningContext": {},
            "orderGroup": "0",
            "pricing": {
                "listPrice": 30.4,
                "discountedPrice": 30.4,
                "proratedPrice": 30.4,
                "price": 30.4,
                "extendedPrice": 364.8
            }
        }
    ],
    "links": {
        "self": {
            "uri": "/customers/ebd8b4c2-4069-46a8-bd70-123d6dec3e39/carts/2517c51b-58cd-4abe-87ed-3ab812401ab4",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Cart"
    }
}