ProposedOrder

Order that the caller is requesting the user to confirm.

JSON representation
{
  "id": string,
  "cart": {
    object(Cart)
  },
  "otherItems": [
    {
      object(LineItem)
    }
  ],
  "image": {
    object(Image)
  },
  "termsOfServiceUrl": string,
  "totalPrice": {
    object(Price)
  },
  "extension": {
    "@type": string,
    field1: ...,
    ...
  }
}
Fields
id

string

Optional id for this ProposedOrder. Included as part of the ProposedOrder returned back to the integrator at confirmation time.

cart

object(Cart)

User's items.

otherItems[]

object(LineItem)

Fees, adjustments, subtotals, etc.

image

object(Image)

Image associated with the proposed order.

termsOfServiceUrl

string

A link to the terms of service that apply to this proposed order.

totalPrice

object(Price)

Total price of the proposed order. If of type ACTUAL, this is the amount the caller will charge when the user confirms the proposed order.

extension

object

Extension to the proposed order based on the kind of order. For example, if the order includes a location then this extension will contain a OrderLocation value.

An object containing fields of an arbitrary type. An additional field "@type" contains a URI identifying the type. Example: { "id": 1234, "@type": "types.example.com/standard/id" }.

Cart

Cart of items the user wants.

JSON representation
{
  "id": string,
  "merchant": {
    object(Merchant)
  },
  "lineItems": [
    {
      object(LineItem)
    }
  ],
  "otherItems": [
    {
      object(LineItem)
    }
  ],
  "notes": string,
  "promotions": [
    {
      object(Promotion)
    }
  ],
  "extension": {
    "@type": string,
    field1: ...,
    ...
  }
}
Fields
id

string

Optional id for this cart. Included as part of the Cart returned back to the integrator at confirmation time.

merchant

object(Merchant)

Merchant for the cart, if different from the caller.

lineItems[]

object(LineItem)

The good(s) or service(s) the user is ordering. There must be at least one line item.

otherItems[]

object(LineItem)

Adjustments entered by the user, e.g. gratuity.

notes

string

Notes about this cart.

promotions[]

object(Promotion)

Optional. Promotional coupons added to the cart. Eligible promotions will be sent back as discount line items in proposed order.

extension

object

Extension to the cart based on the type of order.

An object containing fields of an arbitrary type. An additional field "@type" contains a URI identifying the type. Example: { "id": 1234, "@type": "types.example.com/standard/id" }.

Merchant

Merchant for the cart.

JSON representation
{
  "id": string,
  "name": string
}
Fields
id

string

Id of the merchant.

name

string

User-visible name of the merchant. Required.

LineItem

Line item in order.

JSON representation
{
  "id": string,
  "name": string,
  "type": enum(LineItemType),
  "quantity": number,
  "description": string,
  "image": {
    object(Image)
  },
  "price": {
    object(Price)
  },
  "subLines": [
    {
      object(SubLine)
    }
  ],
  "offerId": string,
  "extension": {
    "@type": string,
    field1: ...,
    ...
  }
}
Fields
id

string

Unique id of the line item within the Cart/Order. Required.

name

string

Name of the line item as displayed in the receipt. Required.

type

enum(LineItemType)

Type of line item.

quantity

number

Number of items included.

description

string

Description of the item.

image

object(Image)

Small image associated with this item.

price

object(Price)

Each line item should have a price, even if the price is 0. Required. This is the total price as displayed on the receipt for this line (i.e. unit price * quantity).

subLines[]

object(SubLine)

Sub-line item(s). Only valid if type is REGULAR.

offerId

string

Optional product or offer id for this item.

extension

object

Extension to the line item based on its type.

An object containing fields of an arbitrary type. An additional field "@type" contains a URI identifying the type. Example: { "id": 1234, "@type": "types.example.com/standard/id" }.

SubLine

SubLine item associated with line item in order.

JSON representation
{

  // Union field subline can be only one of the following:
  "lineItem": {
    object(LineItem)
  },
  "note": string
  // End of list of possible types for union field subline.
}
Fields
Union field subline. SubLine item. subline can be only one of the following:
lineItem

object(LineItem)

A generic line item (e.g. add-on).

note

string

A note associated with the line item.

Promotion

Promotion added to cart.

JSON representation
{
  "coupon": string
}
Fields
coupon

string

Required. Coupon code understood by 3P. For ex: GOOGLE10.