# PurchaseFulfillmentInfo

- [JSON representation](https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#SCHEMA_REPRESENTATION)
- [PickupInfo](https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#PickupInfo)
  - [JSON representation](https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#PickupInfo.SCHEMA_REPRESENTATION)
- [CurbsideInfo](https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#CurbsideInfo)
  - [JSON representation](https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#CurbsideInfo.SCHEMA_REPRESENTATION)
- [Vehicle](https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#Vehicle)
  - [JSON representation](https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#Vehicle.SCHEMA_REPRESENTATION)
- [CheckInInfo](https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#CheckInInfo)
  - [JSON representation](https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#CheckInInfo.SCHEMA_REPRESENTATION)

Fulfillment info associated with a purchase order or a particular line item.

| JSON representation ||
|---|---|
| ``` { "id": string, "fulfillmentType": enum (`Type`), "expectedFulfillmentTime": { object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/Time`) }, "expectedPreparationTime": { object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/Time`) }, "location": { object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/Location`) }, "expireTime": string, "price": { object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PriceAttribute`) }, "fulfillmentContact": { object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/UserInfo`) }, "shippingMethodName": string, "storeCode": string, "pickupInfo": { object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#PickupInfo`) } } ``` |

| Fields ||
|---|---|
| `id` | `string` Unique identifier for this service option. |
| `fulfillmentType` | ``enum (`Type`)`` Required: The type of fulfillment. |
| `expectedFulfillmentTime` | ``object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/Time`)`` A window if a time-range is specified or ETA if single time specified. Expected delivery or pickup time. |
| `expectedPreparationTime` | ``object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/Time`)`` A window if a time-range is specified or ETA if single time specified. Expected time to prepare the food. Single-time preferred. |
| `location` | ``object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/Location`)`` Pickup or delivery location. |
| `expireTime` | ``string (`https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Timestamp` format)`` time at which this fulfillment option expires. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: `"2014-10-02T15:01:23.045123456Z"`. |
| `price` | ``object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PriceAttribute`)`` Cost of this option. |
| `fulfillmentContact` | ``object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/UserInfo`)`` User contact for this fulfillment. |
| `shippingMethodName` | `string` name of the shipping method selected by the user. |
| `storeCode` | `string` StoreCode of the location. Example: Walmart is the merchant and storeCode is the walmart store where fulfillment happened. <https://support.google.com/business/answer/3370250?ref_topic=4596653>. |
| `pickupInfo` | ``object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#PickupInfo`)`` Additional information regarding how order would be picked. This field would only be applicable when fulfillment type is PICKUP. |

## PickupInfo

Details about how an order is picked up. It includes details such as pickup type and additional metadata attached with each type, if any.

| JSON representation ||
|---|---|
| ``` { "pickupType": enum (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PickupType`), "curbsideInfo": { object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#CurbsideInfo`) }, "checkInInfo": [ { object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#CheckInInfo`) } ] } ``` |

| Fields ||
|---|---|
| `pickupType` | ``enum (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PickupType`)`` Pick up method, such as INSTORE, CURBSIDE etc. |
| `curbsideInfo` | ``object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#CurbsideInfo`)`` Details specific to the curbside information. If pickupType is not "CURBSIDE", this field would be ignored. |
| `checkInInfo[]` | ``object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#CheckInInfo`)`` List of various methods supported by partner to support check-in. |

## CurbsideInfo

Details about how curbside order would be facilitated.

| JSON representation ||
|---|---|
| ``` { "curbsideFulfillmentType": enum (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/CurbsideFulfillmentType`), "userVehicle": { object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#Vehicle`) } } ``` |

| Fields ||
|---|---|
| `curbsideFulfillmentType` | ``enum (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/CurbsideFulfillmentType`)`` Partners need additional information to facilitate curbside pickup orders. Depending upon what fulfillment type is chosen, corresponding details would be collected from the user. |
| `userVehicle` | ``object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/PurchaseFulfillmentInfo#Vehicle`)`` Vehicle details of the user placing the order. |

## Vehicle

Details about a vehicle

| JSON representation ||
|---|---|
| ``` { "make": string, "model": string, "licensePlate": string, "colorName": string, "image": { object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/Image`) } } ``` |

| Fields ||
|---|---|
| `make` | `string` Vehicle make (e.g. "Honda"). This is displayed to the user and must be localized. Required. |
| `model` | `string` Vehicle model (e.g. "Grom"). This is displayed to the user and must be localized. Required. |
| `licensePlate` | `string` Vehicle license plate number (e.g. "1ABC234"). Required. |
| `colorName` | `string` Vehicle color name, eg. black Optional. |
| `image` | ``object (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/Image`)`` URL to a photo of the vehicle. The photo will be displayed at approximately 256x256px. Must be a jpg or png. Optional. |

## CheckInInfo

Metadata required by partner to support a checkin method.

| JSON representation ||
|---|---|
| ``` { "checkInType": enum (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/CheckInType`) } ``` |

| Fields ||
|---|---|
| `checkInType` | ``enum (`https://developers.google.com/assistant/df-asdk/reference/webhook/rest/Shared.Types/CheckInType`)`` method used to send checkin instructions. |