Sdílet prostřednictvím


Vytvoření košíku s objednávkou zákazníka

platí pro: Partnerské centrum | Partnerské centrum provozované společností 21Vianet | Partnerské centrum pro Microsoft Cloud pro státní správu USA

Objednávku pro zákazníka můžete přidat do košíku. Další informace o tom, co je aktuálně k dispozici k prodeji, naleznete v tématu Nabídky partnerů v programu Cloud Solution Provider.

Poznámka

Platnost košíků vyprší 7 dnů od počátečního vytvoření.

Požadavky

  • Přihlašovací údaje, jak je popsáno v ověřování v Partnerském centru. Tento scénář podporuje ověřování pomocí přihlašovacích údajů buď zcela samostatné aplikace, nebo kombinace aplikace a uživatele.

  • ID zákazníka (customer-tenant-id). Pokud neznáte ID zákazníka, můžete ho vyhledat v partnerském centru tak, že vyberete pracovní prostor Zákazníci, pak zákazník ze seznamu zákazníků a pak účet. Na stránce Účet zákazníka vyhledejte ID Microsoftu v části Informace o zákaznickém účtu. ID Microsoftu je stejné jako ID zákazníka (customer-tenant-id).

C#

Vytvoření objednávky pro zákazníka:

  1. Vytvoření instance objektu Cart

  2. Vytvořte seznam objektů CartLineItem a přiřaďte seznam k vlastnosti LineItems košíku. Každá položka řádku košíku obsahuje informace o nákupu pro jeden produkt. Musíte mít aspoň jednu položku v košíku.

  3. Získejte rozhraní pro operace košíku voláním metody IAggregatePartner.Customers.ById s ID zákazníka pro identifikaci zákazníka a načtením rozhraní z vlastnosti Cart.

  4. Zavolejte metodu Create nebo CreateAsync pro vytvoření košíku.

  5. Pokud chcete dokončit ověření identity a zahrnout další prodejce, projděte si následující ukázkové ukázky požadavků a odpovědí:

Požádat o vzorek


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


Ukázka odpovědi


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


Příklad jazyka C#

// 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

Sadu Partner Center Java SDK lze použít ke správě prostředků Partnerského centra. Jedná se o opensourcový projekt spravovaný komunitou partnerů, který oficiálně nepodporuje Microsoft. Pokud narazíte na problém, můžete získat pomoc od komunity nebo vytvořit issue na GitHubu.

Vytvoření objednávky pro zákazníka:

  1. Vytvoření instance objektu Cart

  2. Vytvořte seznam objektů CartLineItem a seznam přiřaďte k řádkovým položkám košíku. Každá položka řádku košíku obsahuje informace o nákupu pro jeden produkt. Musíte mít aspoň jednu položku v košíku.

  3. Získejte rozhraní pro operace košíku voláním funkce IAggregatePartner.getCustomers().byId s ID zákazníka k identifikaci zákazníka a načtením rozhraní z funkce getCart.

  4. Zavolejte funkci pro vytvoření košíku.

Příklad Javy

// 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

Pro k správě prostředků Partnerského centra lze použít modul PowerShell . Jedná se o opensourcový projekt spravovaný komunitou partnerů, který oficiálně nepodporuje Microsoft. Pokud narazíte na problém, můžete získat pomoc od komunity nebo vytvořit issue na GitHubu.

Vytvoření objednávky pro zákazníka:

  1. Vytvoření instance objektu Cart

  2. Vytvořte seznam objektů CartLineItem a seznam přiřaďte k řádkovým položkám košíku. Každá položka řádku košíku obsahuje informace o nákupu pro jeden produkt. Musíte mít aspoň jednu položku v košíku.

  3. Spuštěním příkazu New-PartnerCustomerCart vytvořte košík.

# $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

Požadavek REST

Syntaxe požadavku

Metoda Požadavek URI
POST {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1

Parametr identifikátoru URI

Pomocí následujícího parametru cesty identifikujte zákazníka.

Jméno Typ Požadovaný Popis
id zákazníka řetězec Ano Identifikátor id zákazníka ve formátu GUID, který identifikuje zákazníka.

Hlavičky požadavku

Pro více informací se podívejte na REST hlavičky Partnerského centra.

Text požadavku

Tato tabulka popisuje vlastnosti Cart v textu požadavku.

Vlastnost Typ Povinný Popis
id řetězec Ne Identifikátor košíku zadaný při úspěšném vytvoření košíku.
creationTimeStamp Datum a čas Ne Datum vytvoření košíku ve formátu data a času. Použito při úspěšném vytvoření košíku.
časová značka poslední úpravy Datum a čas Ne Datum poslední aktualizace košíku ve formátu data a času. Použito při úspěšném vytvoření košíku.
časové razítko vypršení platnosti Datum a čas Ne Datum vypršení platnosti košíku ve formátu data a času. Použito při úspěšném vytvoření košíku.
poslední uživatel, který upravil řetězec Ne Uživatel, který naposledy aktualizoval košík. Použito při úspěšném vytvoření košíku.
lineItems Pole objektů Ano Pole zdrojů CartLineItem.
Potvrzení partnera v evidenci přijato Booleovský Ano Potvrdí dokončení osvědčení.

Tato tabulka popisuje vlastnosti CartLineItem v textu požadavku.

Vlastnost Typ Požadováno Popis
id řetězec Ne Jedinečný identifikátor řádkové položky košíku. Použito při úspěšném vytvoření košíku.
catalogId řetězec Ano Identifikátor položky katalogu. Ujistěte se, že je dostupnost položky katalogu určená pro správný segment.
přátelský název řetězec Ne Volitelný. Srozumitelný název položky definované partnerem, který pomáhá objasnit nejednoznačnost.
promotionId řetězec Ne Volitelný. Většina propagačních akcí NCE se automaticky uplatní, ale aby se volitelné propagační akce (například Bridge to the Cloud 2) použily u položky řádku košíku, musí partneři do požadavku na přidání do košíku zahrnout ID promoakce.
množství Int Ano Počet licencí nebo instancí.
kód měny řetězec Ne Kód měny.
fakturační cyklus Objekt Ano Typ fakturačního cyklu nastavený pro aktuální období.
vlastníDatumKonceSmlouvy Datum a čas Ne Koncové datum stávajícího předplatného, ke kterému chcete vytvořit nové předplatné.
účastníci Seznam párů řetězců objektů Ne Kolekce PartnerId on Record (PartnerID) při nákupu.
zajišťovacíKontext Slovník<řetězec, řetězec> Ne Informace potřebné pro zajištění některých položek v katalogu. Vlastnost provisioningVariables v skladové položkách indikuje, které vlastnosti jsou vyžadovány pro konkrétní položky v katalogu.
skupina objednávek řetězec Ne Skupina označující, které položky lze umístit dohromady.
chyba Objekt Ne Pokud dojde k chybě, použije se po vytvoření košíku.
prodlužuje platnost Pole objektů Ne Pole zdrojů RenewsTo.
PotvrzeníPřijato Booleovský Ne Označuje souhlas s podmínkami nabídky nebo SKU. Vyžaduje se pouze pro nabídky nebo skus, u kterých je parametr SkuAttestationProperties nebo OfferAttestationProperties nastaven na True pro enforceAttestation.
transaction_reseller Řetězec Ne Když nepřímý poskytovatel zadá objednávku jménem nepřímého prodejce, vyplňte toto pole pouze ID partnera nepřímého prodejce (nikdy ID nepřímého poskytovatele). Tím se zajistí řádné účtování pobídek.
dodatečná_transakce_prodejce Řetězec Ne Když nepřímý poskytovatel umístí objednávku jménem nepřímého prodejce, vyplňte toto pole pouze ID partnera dalšího nepřímého prodejce (nikdy ID nepřímého poskytovatele). Pobídky se nevztahují na tyto další prodejce. Je možné zadat maximálně 5 nepřímých prodejců. Jedná se pouze o příslušné partnery, kteří provádí transakce v rámci zemí/oblastí EU/ESVO.

Tato tabulka popisuje vlastnosti RenewsTo v textu požadavku.

Vlastnost Typ Požadovaný Popis
doba trvání řetězec Ne Vyjádření doby trvání obnovovacího období ve formátu ISO 8601. Aktuální podporované hodnoty jsou P1M (1 měsíc) a P1Y (1 rok).

Příklad požadavku

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

Důležitý

Od června 2023 se teď archivuje nejnovější verze sady .NET SDK partnerského centra 3.4.0. Verzi sady SDK můžete stáhnout z GitHubuspolečně s souborem readme, který obsahuje užitečné informace.

Doporučujeme, aby partneři nadále používali rozhraní REST API Partnerského centra.

Odpověď REST

V případě úspěchu vrátí tato metoda vyplněný cart prostředek v textu odpovědi.

Kódy úspěšnosti a chyb odpovědi

Každá odpověď obsahuje stavový kód HTTP, který indikuje informace o úspěchu nebo selhání a ladění. Ke čtení tohoto kódu, typu chyby a dalších parametrů použijte nástroj pro trasování sítě. Úplný seznam najdete v tématu Kódy chyb.

Příklad odpovědi

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

Příklad nových služeb založených na obchodních licencích

Poznámka

Nové komerční prostředí pro služby založené na licencích zahrnují mnoho nových funkcí a jsou k dispozici pro všechny poskytovatele cloudových řešení (CSP). Další informace najdete v tématu přehled nových obchodních prostředí.

Příklad požadavku

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

Důležitý

Řádkové položky plánu Azure a časově neomezeného softwaru nepodporují vlastnost termDuration. Vyhněte se zahrnutí těchto typů položek.

Odpověď REST

V případě úspěchu vrátí tato metoda vyplněný prostředek Cart v těle odpovědi.

Kódy úspěšnosti a chyb odpovědi

Každá odpověď obsahuje stavový kód HTTP, který označuje úspěch nebo selhání a další informace o ladění. Ke čtení tohoto kódu, typu chyby a dalších parametrů použijte nástroj pro trasování sítě. Úplný seznam najdete v tématu Kódy chyb.

Příklad odpovědi


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