Vytvoření košíku s doplňky k objednávce zákazníka

Doplňky si můžete koupit prostřednictvím košíku. Další informace o tom, co je aktuálně k dispozici k prodeji, najdete v tématu Nabídky partnerů v programu Cloud Solution Provider.

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 přehledu nových obchodních prostředí.

Nové obchodní košíky s doplňky se liší od tradičních nabídek založených na licencích. Nové obchodní doplňky se kupují stejným způsobem jako základní nabídky, nepoužívají vlastnost addonItems . Toto téma obsahuje příklady požadavků a odpovědí speciálně pro novou skladovou položku produktu založenou na komerčním obchodu s skladovou položku produktu doplňku.

Poznámka:

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

Požadavky

  • Přihlašovací údaje popsané v ověřování v Partnerském centru Tento scénář podporuje ověřování pomocí samostatných přihlašovacích údajů aplikace i 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 účtu zákazníka. ID Microsoftu je stejné jako ID zákazníka (customer-tenant-id).

C#

Košík umožňuje nákup základní nabídky a odpovídající doplňky. Při vytváření košíku postupujte takto:

  1. Vytvoření instance objektu Cart

  2. Vytvořte seznam objektů CartLineItem, které představují základní nabídky, a přiřaďte seznam vlastnosti LineItems košíku.

  3. Pod řádkovou položkou košíku každé základní nabídky naplňte seznam AddOnItems dalšími objekty CartLineItem , které představují doplněk, který bude zakoupen proti této základní nabídce.

  4. Získejte rozhraní pro operace košíku pomocí IAggregatePartner k volání ICustomerCollection.ById metoda s ID zákazníka identifikovat zákazníka a pak načtení rozhraní z Cart vlastnost.

  5. Nakonec zavolejte metodu Create nebo CreateAsync, která vytvoří košík.

Příklad jazyka C#

// IAggregatePartner partnerOperations;
// string customerId;

var cart = new Cart()
    {
        LineItems = new List<CartLineItem>()
        {
            new CartLineItem()
            {
                Id = 0,
                CatalogItemId = "A_base_offer_ID",
                FriendlyName = "Myofferpurchase",
                Quantity = 3,
                BillingCycle = BillingCycleType.Monthly,
                AddonItems = new List<CartLineItem>
                {
                    new CartLineItem
                    {
                        Id = 1,
                        CatalogItemId = "An_addon_item_ID",
                        BillingCycle = BillingCycleType.Monthly,
                        Quantity = 2,
                    },
                    new CartLineItem
                    {
                        Id = 2,
                        CatalogItemId = "Another_addon_item_ID",
                        BillingCycle = BillingCycleType.Monthly,
                        Quantity = 3
                    }
                }
            }
        }
    };

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

Pomocí těchto kroků vytvořte košík, který umožňuje nákup doplňků proti existujícím základním předplatným:

  1. Vytvořte košík s novým CartLineItem obsahujícím ID předplatného ve vlastnosti ProvisioningContext s klíčem ParentSubscriptionId.

  2. Volejte metodu Create nebo CreateAsync .

// IAggregatePartner partnerOperations;
// string selectedCustomerId;

var cart = new Cart()
    {
        LineItems = new List<CartLineItem>()
        {
            new CartLineItem()
            {
                Id = 0,
                CatalogItemId = "An_addon_item_ID",
                ProvisioningContext = new Dictionary<string, string>
                {
                    {
                        "ParentSubscriptionId", "An_existing_subscription_Id"
                    }
                },
                Quantity = 1,
                BillingCycle = BillingCycleType.Annual,
            }
        }
    };

var createdCart = partnerOperations.Customers.ById(selectedCustomerId).Carts.Create(cart);

Požadavek REST

Syntaxe požadavku

metoda Identifikátor URI žádosti
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.

Name Type Požadováno Popis
ID zákazníka string Ano IDENTIFIKÁTOR GUID naformátovaný id zákazníka, které identifikuje zákazníka.

Záhlaví žádosti

Další informace najdete v tématu Hlavičky REST Partnerského centra.

Text požadavku

Tato tabulka popisuje vlastnosti košíku v textu požadavku.

Vlastnost Typ Požadováno Popis
ID string No Identifikátor košíku zadaný při úspěšném vytvoření košíku.
creationTimeStamp DateTime No Datum vytvoření košíku ve formátu data a času. Použito při úspěšném vytvoření košíku.
lastModifiedTimeStamp DateTime No Datum poslední aktualizace košíku ve formátu data a času. Použito při úspěšném vytvoření košíku.
expirationTimeStamp DateTime No Datum vypršení platnosti košíku ve formátu data a času. Použito při úspěšném vytvoření košíku.
lastModifiedUser string No Uživatel, který naposledy aktualizoval košík. Použito při úspěšném vytvoření košíku.
lineItems Pole řetězců Ano Pole prostředků CartLineItem .

Tato tabulka popisuje vlastnosti CartLineItem v textu požadavku.

Vlastnost Type Popis
ID řetězec Jedinečný identifikátor položky řádku košíku. Použito při úspěšném vytvoření košíku.
catalogId string Identifikátor položky katalogu.
Friendlyname string Nepovinné. Popisný název položky definované partnerem, který pomáhá nejednoznačný.
množství. int Počet licencí nebo instancí.
currencyCode string Kód měny.
billingCycle Object Typ fakturačního cyklu nastavený pro aktuální období.
Účastníci Seznam párů řetězců objektů Kolekce PartnerId on Record (PartnerID) při nákupu.
provisioningContext Řetězec slovníku<, řetězec> Kontext používaný ke zřizování nabídky.
orderGroup string Skupina označující, které položky lze umístit dohromady.
doplňky Seznam objektů CartLineItem Kolekce řádkových položek košíku pro doplňky, které budou zakoupeny do základního předplatného, které je výsledkem nákupu položky řádku nadřazeného košíku. Tato vlastnost je určená pouze pro tradiční licenční košíky založené na obchodních licencích, které zahrnují doplňky jako nabídky založené na licencích. Nové obchodní položky nepoužívají tuto vlastnost addonItems .
chyba Object Pokud dojde k chybě, použije se po vytvoření košíku.

Příklad požadavku (nové základní předplatné) pro tradiční licence

Následující příklad REST ukazuje, jak vytvořit košík s položkami doplňků pro nové základní předplatné.

POST https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: f931348a-6312-47d0-a8dd-31a386dedb8f
MS-CorrelationId: f73baf70-bbc3-43d0-8b29-dffa08ff9511

{
    "LineItems": [
        {
            "Id":0,
            "CatalogItemId":"91FD106F-4B2C-4938-95AC-F54F74E9A239",
            "FriendlyName":"Myofferpurchase",
            "Quantity":3,
            "BillingCycle":"monthly",
            "AddonItems": [
                {
                    "Id":1,
                    "CatalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
                    "Quantity":2,
                    "BillingCycle":"monthly"
                },
                {
                    "Id":2,
                    "CatalogItemId":"43FCE491-76D1-4BCC-B709-8A288786DBAE",
                    "Quantity":3,
                    "BillingCycle":"monthly"
                }
            ]
        }
    ]
}

Příklad požadavku (nové základní předplatné) pro nový obchodní košík základní nabídky s doplňkem

{
    "LineItems": [
        {
            "Id": 0,
            "CatalogItemId":"CFQ7TTC0LFLX:0001:CFQ7TTC0LB30", - Base
            "Quantity": 20,
            "BillingCycle": "Monthly",
            "TermDuration": "P1M"
        },
        {
            "Id": 1,
            "CatalogItemId":"CFQ7TTC0HDJX:0001:CFQ7TTC0K806", - Add on
            "Quantity": 20,
            "BillingCycle": "Monthly",
            "TermDuration": "P1M"
        }
    ]
}

Příklad požadavku (existující základní předplatné) pro tradiční licence

Následující příklad REST ukazuje, jak připojit doplňky k existujícímu základnímu předplatnému. Tento příklad je relevantní jenom pro tradiční licence založené na licencích, ne pro nový obchod.

POST https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 512a777a-5427-452d-9637-18421387e435
MS-CorrelationId: 182474ba-7303-4d0f-870a-8c7fba5ccc4b

{
    "LineItems": [
        {
            "Id":0,
            "CatalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
            "Quantity":1,
            "BillingCycle":"annual",
            "ProvisioningContext":{"ParentSubscriptionId":"97555B61-7461-477A-A98C-9C76148783E4"}
        }
    ]
}

Odpověď REST

Pokud je tato metoda úspěšná, vrátí naplněný prostředek Cart v textu odpovědi.

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

Každá odpověď obsahuje stavový kód HTTP, který indikuje ú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 (nové základní předplatné) pro tradiční licence

HTTP/1.1 201 Created
Content-Length: 958
Content-Type: application/json
MS-CorrelationId: f73baf70-bbc3-43d0-8b29-dffa08ff9511
MS-RequestId: f931348a-6312-47d0-a8dd-31a386dedb8f
X-Locale: en-US,en-US
Date: Thu, 01 Nov 2018 22:29:05 GMT

{
    "id":"dbe2f8d4-f21d-43e2-9356-cff6387c4ba1",
    "creationTimestamp":"2018-11-01T22:29:03.6900182Z",
    "lastModifiedTimestamp":"2018-11-01T22:29:03.6900182Z",
    "expirationTimestamp":"2018-11-01T22:44:05.0025799Z",
    "lastModifiedUser":"1824b7fc-2fac-4478-b177-66823c40ab75",
    "status":"Active",
    "lineItems": [
        {
            "id":0,
            "catalogItemId":"91FD106F-4B2C-4938-95AC-F54F74E9A239",
            "friendlyName":"Myofferpurchase",
            "quantity":3,
            "currencyCode":"USD",
            "billingCycle":"monthly",
            "orderGroup":"OMS-0",
            "addonItems": [
                {
                    "id":1,
                    "catalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
                    "quantity":2,
                    "currencyCode":"USD",
                    "billingCycle":"monthly",
                    "orderGroup":"OMS-0"
                },
                {
                    "id":2,
                    "catalogItemId":"43FCE491-76D1-4BCC-B709-8A288786DBAE",
                    "quantity":3,
                    "currencyCode":"USD",
                    "billingCycle":"monthly",
                    "orderGroup":"OMS-0"
                }
            ]
        }
],
    "links": {
        "self": {
            "uri":"/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts/dbe2f8d4-f21d-43e2-9356-cff6387c4ba1",
            "method":"GET",
            "headers":[
            ]
        }
    },
    "attributes": {
        "objectType":"Cart"
    }
}

Příklad odpovědi (existující základní předplatné) pro tradiční licence

HTTP/1.1 201 Created
Content-Length: 707
Content-Type: application/json
MS-CorrelationId: 182474ba-7303-4d0f-870a-8c7fba5ccc4b
MS-RequestId: 512a777a-5427-452d-9637-18421387e435
X-Locale: en-US,en-US
Date: Thu, 01 Nov 2018 22:46:18 GMT

{
    "id":"4d927e27-93d1-448b-abe5-819b66ecca22",
    "creationTimestamp":"2018-11-01T22:46:16.2996364Z",
    "lastModifiedTimestamp":"2018-11-01T22:46:16.2996364Z",
    "expirationTimestamp":"2018-11-01T23:01:18.7543264Z",
    "lastModifiedUser":"1824b7fc-2fac-4478-b177-66823c40ab75",
    "status":"Active",
    "lineItems": [
        {
            "id":0,
            "catalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
            "quantity":1,
            "currencyCode":"USD",
            "billingCycle":"annual",
            "provisioningContext": {
                "parentSubscriptionId":"97555B61-7461-477A-A98C-9C76148783E4"
            },
            "orderGroup":"OMS-0"
        }
    ],
    "links": {
        "self": {
            "uri":"/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts/4d927e27-93d1-448b-abe5-819b66ecca22",
            "method":"GET",
            "headers":[
            ]
        }
    },
    "attributes": {
        "objectType":"Cart"
    }
}

Příklad odpovědi na novou základní nabídku založenou na komerční licenci a doplněk

{
    "id": "ea37ea81-efaf-4113-9785-e1c266aea2ed",
    "creationTimestamp": "2022-02-10T16:04:22.4908435Z",
    "lastModifiedTimestamp": "2022-02-10T16:04:22.4908444Z",
    "expirationTimestamp": "2022-02-17T16:04:26.3085755Z",
    "lastModifiedUser": "a7155e79-65e3-42b0-a62a-a41297979782",
    "status": "Active",
    "lineItems": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0LFLX:0001:CFQ7TTC0LB30", - Base
            "quantity": 20,
            "currencyCode": "USD",
            "billingCycle": "monthly",
            "termDuration": "P1M",
            "promotionId": "39NFJQT1PHSN:0008:39NFJQT1Q5J0",
            "provisioningContext": {},
            "orderGroup": "0"
        },
        {
            "id": 1,
            "catalogItemId": "CFQ7TTC0HDJX:0001:CFQ7TTC0K806", - Add on
            "quantity": 20,
            "currencyCode": "USD",
            "billingCycle": "monthly",
            "termDuration": "P1M",
            "provisioningContext": {},
            "orderGroup": "0"
        }
    ],
    "links": {
        "self": {
            "uri": "/customers/3a15e1df-b095-41d4-9029-27a5974c2458/carts/ea37ea81-efaf-4113-9785-e1c266aea2ed",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Cart"
    }
}