Accessing pickup point details
Atlas Pickup Points saves pickup point details to the metafield attached to Shopify Order. We recommend treating our metafield as the source of truth for pickup point details.
- Metafield namespace:
atlas_pickup_points - Metafield key:
point
Structure of the pickup point metafield
Section titled “Structure of the pickup point metafield”The structure of the JSON object is as follows:
| Attribute | Type | Description |
|---|---|---|
| provider | String | Points provider, typically carrier name |
| code | String | Carrier given identifier of pickup point |
| details | Details object | Pickup point details |
| address | Address object | Pickup point address |
| attributes | Attributes object[] | List of pickup point attributes - varies by carrier |
Details object
Section titled “Details object”| Attribute | Type | Description |
|---|---|---|
| name | String | Name of the pickup point |
| description1 | String | Description |
| description2 | Nullable String | Second line of the description |
Address object
Section titled “Address object”| Attribute | Type | Description |
|---|---|---|
| address1 | String | First line of the address |
| address2 | Nullable String | Second line of the address |
| city | String | City |
| zip | String | Postal code |
| province | Nullable String | Province name |
| provinceCode | Nullable String | Province code |
| countryCode | String | Country code ISO 3166-1 alpha-2 |
| latitude | Float | Latitude |
| longitude | Float | Longitude |
Attributes object
Section titled “Attributes object”Attributes are carrier specific and are used to pass additional information about the pickup point.
| Attribute | Type | Description |
|---|---|---|
| key | String | Key of the attribute |
| value | String / Boolean / Number | Value of the attribute |
How to access pickup point details via Shopify API?
Section titled “How to access pickup point details via Shopify API?”You can access pickup point details via Shopify Webhooks and Shopify GraphQL Admin API.
Webhooks
Section titled “Webhooks”If you are receiving orders information trough webhooks, we recommend updating the webhook subscription with Atlas metafield namespace. You should subscribe to orders/create and orders/updated webhook topics.
For example:
mutation WebhookSubscriptionUpdate($id: ID!, $webhookSubscription: WebhookSubscriptionInput!) { webhookSubscriptionUpdate(id: $id, webhookSubscription: $webhookSubscription) { userErrors { field message } webhookSubscription { id topic uri } }}{ "id": "gid://shopify/WebhookSubscription/1234567890", "webhookSubscription": { "metafieldNamespaces": ["atlas_pickup_points"] }}Then, your webhook payload with include metafields array, containing objects with namespace and key attributes set to atlas_pickup_points and point respectively. The value attribute will be a JSON string with pickup point details of the shape described below. See Shopify documentation for more information about webhook subscriptions.
GraphQL Admin API
Section titled “GraphQL Admin API”To fetch order details with pickup point details, you can use the following query:
query GetOrder($orderId: ID!) { order(id: $orderId) { id pickupPoint: metafield(namespace: "atlas_pickup_points", key: "point") { jsonValue } }}{ "id": "gid://shopify/Order/1234567890"}Then, your response will include data object with order object. The order object will include pickupPoint object with jsonValue object containing the pickup point details in the shape described below. See Shopify documentation for more information about the Order object.
Example response
{ "data": { "order": { "id": "gid://shopify/Order/1234567890", "pickupPoint": { "jsonValue": { "provider": "DPD", "code": "GB12345", "details": { "name": "DPD Pickup Point", "description1": "12 Grimmauld Place", "description2": "next to the Order of the Phoenix headquarters" }, "address": { "address1": "12 Grimmauld Place", "address2": null, "city": "London", "zip": "W1U 1DS", "province": null, "provinceCode": null, "countryCode": "GB", "latitude": 51.5194, "longitude": -0.1268 }, "attributes": [ { "key": "visible_for_muggles", "value": false }, { "key": "secret_phrase", "value": "the owl flies at midnight" } ] } } } }}Things to consider
Section titled “Things to consider”-
Pickup point might get selected after order is created. In that case, metafield will be empty in the
orders/createwebhook. -
Pickup point might get changed by shop staff after order is created. Shopify will send
orders/updatedwebhook when pickup point is changed.