Erstellen eines Einkaufswagens mit einem Kundenauftrag

Gilt für: Partner Center | Partner Center-Betrieb durch 21Vianet | Partner Center für Microsoft Cloud for US Government

Sie können einen Auftrag für einen Kunden in einem Warenkorb hinzufügen. Weitere Informationen dazu, was derzeit zum Verkauf zur Verfügung steht, finden Sie unter Partnerangebote im Programm für Cloud Solution Provider.

Hinweis

Einkaufswagen laufen 7 Tage ab der ersten Erstellung ab.

Voraussetzungen

  • Anmeldeinformationen, wie unter Partner Center-Authentifizierung beschrieben. Dieses Szenario unterstützt die Authentifizierung mit eigenständigen App- und App+Benutzeranmeldeinformationen.

  • Eine Kunden-ID (customer-tenant-id). Wenn Sie die KUNDEN-ID nicht kennen, können Sie sie im Partner Center nachschlagen, indem Sie den Arbeitsbereich "Kunden " und dann den Kunden aus der Kundenliste und dann "Konto" auswählen. Suchen Sie auf der Kontoseite des Kunden im Abschnitt Kundenkontoinfo nach der Microsoft-ID. Die Microsoft-ID entspricht der Kunden-ID (customer-tenant-id).

C#

So erstellen Sie einen Auftrag für einen Kunden:

  1. Instanziieren Sie ein Cart-Objekt.

  2. Erstellen Sie eine Liste von CartLineItem-Objekten , und weisen Sie die Liste der LineItems-Eigenschaft des Warenkorbs zu. Jeder Einkaufswagenartikel enthält die Einkaufsinformationen für ein Produkt. Sie müssen über mindestens einen Warenkorbartikel verfügen.

  3. Rufen Sie eine Schnittstelle zu Einkaufswagenvorgängen ab, indem Sie die IAggregatePartner.Customers.ById-Methode mit der Kunden-ID aufrufen, um den Kunden zu identifizieren, und anschließend die Schnittstelle aus der Cart-Eigenschaft abrufen.

  4. Rufen Sie die Create - oder CreateAsync-Methode auf, um den Warenkorb zu erstellen.

  5. Um den Nachweis abzuschließen und andere Händler einzuschließen, lesen Sie das folgende Beispiel für Anforderungs- und Antwortbeispiele:

Anforderungsbeispiel


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


Antwortbeispiel


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


Beispiel für 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

Das Partner Center Java SDK kann zum Verwalten von Partner Center-Ressourcen verwendet werden. Es handelt sich um ein Open-Source-Projekt, Standard von der Partnercommunity unterstützt und nicht offiziell von Microsoft unterstützt wird. Sie können Hilfe von der Community erhalten oder ein Issue auf GitHub öffnen, wenn ein Problem auftritt.

So erstellen Sie einen Auftrag für einen Kunden:

  1. Instanziieren Sie ein Cart-Objekt.

  2. Erstellen Sie eine Liste von CartLineItem-Objekten , und weisen Sie die Liste den Positionen des Einkaufswagens zu. Jeder Einkaufswagenartikel enthält die Einkaufsinformationen für ein Produkt. Sie müssen über mindestens einen Warenkorbartikel verfügen.

  3. Rufen Sie eine Schnittstelle zu Einkaufswagenvorgängen ab, indem Sie die Funktion "IAggregatePartner.getCustomers().byId().byId " mit der Kunden-ID aufrufen, um den Kunden zu identifizieren, und rufen Sie dann die Schnittstelle aus der getCart-Funktion ab.

  4. Rufen Sie die Create-Funktion auf, um den Warenkorb zu erstellen.

Java-Beispiel

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

Das Partner Center PowerShell-Modul kann zum Verwalten von Partner Center-Ressourcen verwendet werden. Es handelt sich um ein Open-Source-Projekt, Standard von der Partnercommunity unterstützt und nicht offiziell von Microsoft unterstützt wird. Sie können Hilfe von der Community erhalten oder ein Issue auf GitHub öffnen, wenn ein Problem auftritt.

So erstellen Sie einen Auftrag für einen Kunden:

  1. Instanziieren Sie ein Cart-Objekt.

  2. Erstellen Sie eine Liste von CartLineItem-Objekten , und weisen Sie die Liste den Positionen des Einkaufswagens zu. Jeder Einkaufswagenartikel enthält die Einkaufsinformationen für ein Produkt. Sie müssen über mindestens einen Warenkorbartikel verfügen.

  3. Führen Sie den Befehl "New-PartnerCustomerCart " aus, um den Warenkorb zu erstellen.

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

Anforderungssyntax

Methode Anforderungs-URI
POST {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1

URI-Parameter

Verwenden Sie zum Identifizieren des Kunden die folgenden Pfadparameter:

Name Type Erforderlich Beschreibung
customer-id Zeichenfolge Ja Eine guid formatierte Kunden-ID, die den Kunden identifiziert.

Anforderungsheader

Weitere Informationen finden Sie unter Partner Center-REST-Header.

Anforderungstext

In dieser Tabelle werden die Cart-Eigenschaften im Anforderungstext beschrieben.

Eigenschaft Type Erforderlich Beschreibung
id Zeichenfolge No Ein Warenkorbbezeichner, der bei erfolgreicher Erstellung des Warenkorbs bereitgestellt wird.
creationTimeStamp DateTime No Das Datum, an dem der Warenkorb erstellt wurde, im Datums-/Uhrzeitformat. Auf erfolgreiche Erstellung des Warenkorbs angewendet.
lastModifiedTimeStamp DateTime No Das Datum, an dem der Warenkorb zuletzt im Datums-/Uhrzeitformat aktualisiert wurde. Auf erfolgreiche Erstellung des Warenkorbs angewendet.
expirationTimeStamp DateTime No Das Datum, an dem der Warenkorb abläuft, im Datums-/Uhrzeitformat. Auf erfolgreiche Erstellung des Warenkorbs angewendet.
lastModifiedUser Zeichenfolge No Der Benutzer, der den Warenkorb zuletzt aktualisiert hat. Auf erfolgreiche Erstellung des Warenkorbs angewendet.
lineItems Array von Objekten Ja Ein Array von CartLineItem-Ressourcen .
PartnerOnRecordAttestationAccepted Boolean Ja Bestätigt den Abschluss des Nachweises.

In dieser Tabelle werden die CartLineItem-Eigenschaften im Anforderungstext beschrieben.

Eigenschaft Type Erforderlich Beschreibung
id Zeichenfolge No Ein eindeutiger Bezeichner für einen Einkaufswagenartikel. Auf erfolgreiche Erstellung des Warenkorbs angewendet.
catalogId Zeichenfolge Ja Der Katalogelementbezeichner. Stellen Sie sicher, dass die Verfügbarkeit des Katalogelements für das richtige Segment gilt.
friendlyName Zeichenfolge No Optional. Der Anzeigename für das element, das vom Partner definiert wurde, um mehrdeutig zu sein.
promotionId Zeichenfolge No Optional. Die meisten NCE-Werbeaktionen werden automatisch angewendet, jedoch für optionale Werbeaktionen (z. B. Bridge to the Cloud 2), die auf einen Einkaufswagenartikel angewendet werden sollen, müssen Partner die Angebots-ID im Add-To-Cart-Antrag enthalten.
Menge int Ja Die Anzahl der Lizenzen oder Instanzen.
currencyCode Zeichenfolge No Der Währungscode.
billingCycle Objekt Ja Der Typ der Abrechnungszeitraum für den aktuellen Zeitraum festgelegt.
customTermEndDate DateTime No Das Enddatum eines vorhandenen Abonnements, für das Sie das neue Abonnement bestimmen möchten.
participants Liste der Objektzeichenfolgenpaare No Eine Sammlung von PartnerId on Record (PartnerID) für den Kauf.
provisioningContext Wörterbuchzeichenfolge<, Zeichenfolge> No Informationen, die für die Bereitstellung einiger Elemente im Katalog erforderlich sind. Die provisioningVariables-Eigenschaft in einer SKU gibt an, welche Eigenschaften für bestimmte Elemente im Katalog erforderlich sind.
orderGroup Zeichenfolge No Eine Gruppe, die angibt, welche Elemente zusammen platziert werden können.
error Objekt No Wird nach dem Erstellen des Warenkorbs angewendet, wenn ein Fehler auftritt.
renewsTo Array aus Objekten No Ein Array von RenewsTo-Ressourcen .
AttestationAccepted Boolesch Nein Gibt die Vereinbarung zum Anbieten oder SKU-Bedingungen an. Nur für Angebote oder Skus erforderlich, bei denen SkuAttestationProperties oder OfferAttestationProperties enforceAttestation True ist.
transaction_reseller String No Wenn ein indirekter Anbieter eine Bestellung im Auftrag eines indirekten Vertriebspartners abordnet, füllen Sie dieses Feld nur mit der PartnerID des indirekten Vertriebspartners auf (niemals die ID des indirekten Anbieters). Dadurch wird sichergestellt, dass Incentives ordnungsgemäß abgerechnet werden.
additional_transaction_reseller String No Wenn ein indirekter Anbieter eine Bestellung im Auftrag eines indirekten Vertriebspartners abordnet, füllen Sie dieses Feld nur mit der PartnerID des zusätzlichen indirekten Vertriebspartners auf (niemals die ID des indirekten Anbieters). Anreize gelten nicht für diese zusätzlichen Wiederverkäufer. Es können nur maximal 5 indirekte Wiederverkäufer eingegeben werden. Dies gilt nur für Partner, die innerhalb der EU/EFTA-Länder/Regionen transaktionen.

In dieser Tabelle werden die RenewsTo-Eigenschaften im Anforderungstext beschrieben.

Eigenschaft Type Erforderlich Beschreibung
termDuration Zeichenfolge No Eine ISO 8601-Darstellung der Dauer der Verlängerung. Die aktuellen unterstützten Werte sind P1M (1 Monat) und P1Y (1 Jahr).

Anforderungsbeispiel

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: 0e93c70c-977a-4a88-9580-7cf084c73286
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": "1C461A25-F729-4FA5-AADB-280947DD05E8",
        "scope": "shared"
      }
    },
    {
    /* Azure Reserved Instance */
      "id": 2,
      "catalogItemId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
      "quantity": 1,
      "billingCycle": "one_time",
      "termDuration": "P3Y",
      "provisioningContext": {
        "subscriptionId": "1C461A25-F729-4FA5-AADB-280947DD05E8",
        "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"
       }
    }
  ]
}

Wichtig

Ab Juni 2023 ist jetzt die neueste Partner Center .NET SDK-Version 3.4.0 archiviert. Sie können das SDK-Release von GitHub zusammen mit einer Infodatei herunterladen, die nützliche Informationen enthält.

Partnern wird empfohlen, weiterhin die Partner Center-REST-APIs zu verwenden.

REST-Antwort

Bei erfolgreicher Ausführung gibt die Methode die aufgefüllte Cart-Ressource im Antworttext zurück.

Erfolgs- und Fehlercodes der Antwort

Jede Antwort enthält einen HTTP-Statuscode, der Erfolg oder Fehler und Debugginginformationen angibt. Verwenden Sie ein Netzwerkablaufverfolgungstool, um diesen Code, fehlertyp und andere Parameter zu lesen. Die vollständige Liste findest du unter Partner-API: REST-Fehlercodes.

Beispielantwort

HTTP/1.1 201 Created
Content-Length: 764
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 0e93c70c-977a-4a88-9580-7cf084c73286
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": "1C461A25-F729-4FA5-AADB-280947DD05E8",
        "scope": "shared"
      },
      "orderGroup": "0"
    },
    {
      "id": 2,
      "catalogItemId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "one_time",
      "termDuration": "P3Y",
      "provisioningContext": {
        "subscriptionId": "1C461A25-F729-4FA5-AADB-280947DD05E8",
        "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"
  }
}

Beispiel für neue commerce-lizenzbasierte Dienste

Hinweis

Die neuen Commerce-Umgebungen für lizenzbasierte Dienste enthalten zahlreiche neue Funktionen und stehen allen Cloud Solution Providern (CSP) zur Verfügung. Weitere Informationen finden Sie in der Übersicht über neue Commerce-Erfahrungen.

Anforderungsbeispiel

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

Wichtig

Azure-Plan- und unbefristete Softwarezeilenelemente unterstützen die TermDuration-Eigenschaft nicht. Vermeiden Sie dies, während diese Typen von Elementen ignoriert werden.

REST-Antwort

Bei erfolgreicher Ausführung gibt die Methode die aufgefüllte Cart-Ressource im Antworttext zurück.

Erfolgs- und Fehlercodes der Antwort

Jede Antwort enthält einen HTTP-Statuscode, der Erfolg oder Fehler und andere Debuginformationen angibt. Verwenden Sie ein Netzwerkablaufverfolgungstool, um diesen Code, fehlertyp und andere Parameter zu lesen. Die vollständige Liste findest du unter Partner-API: REST-Fehlercodes.

Beispielantwort


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