Create delivery profile
Description
Create delivery profile with two location groups, one for shipping from Canada and another one for the United States. **Note:** due to the potential complexity of the nested data, it is recommended to start with no more than 5 groups. More groups can be added later via the profile update mutation.
Query
mutation createDeliveryProfile($profile: DeliveryProfileInput!) { deliveryProfileCreate(profile: $profile) { profile { id name profileLocationGroups { locationGroup { id locations(first: 5) { nodes { name address { country } } } } locationGroupZones(first: 2) { edges { node { zone { id name countries { code { countryCode } provinces { code } } } } } } } } userErrors { field message } } }
Variables
{ "profile": { "name": "Sample Delivery Profile", "locationGroupsToCreate": [ { "locationsToAdd": [ "gid://shopify/Location/750123840", "gid://shopify/Location/884687543" ], "zonesToCreate": [ { "name": "Canada Zone", "countries": [ { "code": "CA", "provinces": [ { "code": "ON" } ] } ], "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } }, "weightConditionsToCreate": [ { "operator": "GREATER_THAN_OR_EQUAL_TO", "criteria": { "value": 0, "unit": "KILOGRAMS" } }, { "operator": "LESS_THAN_OR_EQUAL_TO", "criteria": { "value": 15, "unit": "KILOGRAMS" } } ] } ] } ] }, { "locationsToAdd": [ "gid://shopify/Location/415211365" ], "zonesToCreate": [ { "name": "USA Zone", "countries": { "code": "US", "provinces": [ { "code": "CO" } ] }, "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } } } ] }, { "name": "Mexico Zone", "countries": { "code": "MX", "provinces": [ { "code": "MOR" } ] }, "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } } } ] } ] } ] } }
cURL
curl -X POST \ https://your-development-store.myshopify.com/admin/api/unstable/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "mutation createDeliveryProfile($profile: DeliveryProfileInput!) { deliveryProfileCreate(profile: $profile) { profile { id name profileLocationGroups { locationGroup { id locations(first: 5) { nodes { name address { country } } } } locationGroupZones(first: 2) { edges { node { zone { id name countries { code { countryCode } provinces { code } } } } } } } } userErrors { field message } } }", "variables": { "profile": { "name": "Sample Delivery Profile", "locationGroupsToCreate": [ { "locationsToAdd": [ "gid://shopify/Location/750123840", "gid://shopify/Location/884687543" ], "zonesToCreate": [ { "name": "Canada Zone", "countries": [ { "code": "CA", "provinces": [ { "code": "ON" } ] } ], "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } }, "weightConditionsToCreate": [ { "operator": "GREATER_THAN_OR_EQUAL_TO", "criteria": { "value": 0, "unit": "KILOGRAMS" } }, { "operator": "LESS_THAN_OR_EQUAL_TO", "criteria": { "value": 15, "unit": "KILOGRAMS" } } ] } ] } ] }, { "locationsToAdd": [ "gid://shopify/Location/415211365" ], "zonesToCreate": [ { "name": "USA Zone", "countries": { "code": "US", "provinces": [ { "code": "CO" } ] }, "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } } } ] }, { "name": "Mexico Zone", "countries": { "code": "MX", "provinces": [ { "code": "MOR" } ] }, "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } } } ] } ] } ] } } }'
React Router
import { authenticate } from "../shopify.server"; export const loader = async ({request}) => { const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql mutation createDeliveryProfile($profile: DeliveryProfileInput!) { deliveryProfileCreate(profile: $profile) { profile { id name profileLocationGroups { locationGroup { id locations(first: 5) { nodes { name address { country } } } } locationGroupZones(first: 2) { edges { node { zone { id name countries { code { countryCode } provinces { code } } } } } } } } userErrors { field message } } }`, { variables: { "profile": { "name": "Sample Delivery Profile", "locationGroupsToCreate": [ { "locationsToAdd": [ "gid://shopify/Location/750123840", "gid://shopify/Location/884687543" ], "zonesToCreate": [ { "name": "Canada Zone", "countries": [ { "code": "CA", "provinces": [ { "code": "ON" } ] } ], "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } }, "weightConditionsToCreate": [ { "operator": "GREATER_THAN_OR_EQUAL_TO", "criteria": { "value": 0, "unit": "KILOGRAMS" } }, { "operator": "LESS_THAN_OR_EQUAL_TO", "criteria": { "value": 15, "unit": "KILOGRAMS" } } ] } ] } ] }, { "locationsToAdd": [ "gid://shopify/Location/415211365" ], "zonesToCreate": [ { "name": "USA Zone", "countries": { "code": "US", "provinces": [ { "code": "CO" } ] }, "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } } } ] }, { "name": "Mexico Zone", "countries": { "code": "MX", "provinces": [ { "code": "MOR" } ] }, "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } } } ] } ] } ] } }, }, ); const json = await response.json(); return json.data; }
Ruby
session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY mutation createDeliveryProfile($profile: DeliveryProfileInput!) { deliveryProfileCreate(profile: $profile) { profile { id name profileLocationGroups { locationGroup { id locations(first: 5) { nodes { name address { country } } } } locationGroupZones(first: 2) { edges { node { zone { id name countries { code { countryCode } provinces { code } } } } } } } } userErrors { field message } } } QUERY variables = { "profile": { "name": "Sample Delivery Profile", "locationGroupsToCreate": [ { "locationsToAdd": [ "gid://shopify/Location/750123840", "gid://shopify/Location/884687543" ], "zonesToCreate": [ { "name": "Canada Zone", "countries": [ { "code": "CA", "provinces": [ { "code": "ON" } ] } ], "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } }, "weightConditionsToCreate": [ { "operator": "GREATER_THAN_OR_EQUAL_TO", "criteria": { "value": 0, "unit": "KILOGRAMS" } }, { "operator": "LESS_THAN_OR_EQUAL_TO", "criteria": { "value": 15, "unit": "KILOGRAMS" } } ] } ] } ] }, { "locationsToAdd": [ "gid://shopify/Location/415211365" ], "zonesToCreate": [ { "name": "USA Zone", "countries": { "code": "US", "provinces": [ { "code": "CO" } ] }, "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } } } ] }, { "name": "Mexico Zone", "countries": { "code": "MX", "provinces": [ { "code": "MOR" } ] }, "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } } } ] } ] } ] } } response = client.query(query: query, variables: variables)
Node.js
const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: { "query": `mutation createDeliveryProfile($profile: DeliveryProfileInput!) { deliveryProfileCreate(profile: $profile) { profile { id name profileLocationGroups { locationGroup { id locations(first: 5) { nodes { name address { country } } } } locationGroupZones(first: 2) { edges { node { zone { id name countries { code { countryCode } provinces { code } } } } } } } } userErrors { field message } } }`, "variables": { "profile": { "name": "Sample Delivery Profile", "locationGroupsToCreate": [ { "locationsToAdd": [ "gid://shopify/Location/750123840", "gid://shopify/Location/884687543" ], "zonesToCreate": [ { "name": "Canada Zone", "countries": [ { "code": "CA", "provinces": [ { "code": "ON" } ] } ], "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } }, "weightConditionsToCreate": [ { "operator": "GREATER_THAN_OR_EQUAL_TO", "criteria": { "value": 0, "unit": "KILOGRAMS" } }, { "operator": "LESS_THAN_OR_EQUAL_TO", "criteria": { "value": 15, "unit": "KILOGRAMS" } } ] } ] } ] }, { "locationsToAdd": [ "gid://shopify/Location/415211365" ], "zonesToCreate": [ { "name": "USA Zone", "countries": { "code": "US", "provinces": [ { "code": "CO" } ] }, "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } } } ] }, { "name": "Mexico Zone", "countries": { "code": "MX", "provinces": [ { "code": "MOR" } ] }, "methodDefinitionsToCreate": [ { "name": "Standard", "rateDefinition": { "price": { "amount": 1, "currencyCode": "USD" } } } ] } ] } ] } }, }, });
Response
{ "deliveryProfileCreate": { "profile": { "id": "gid://shopify/DeliveryProfile/933922679", "name": "Sample Delivery Profile", "profileLocationGroups": [ { "locationGroup": { "id": "gid://shopify/DeliveryLocationGroup/982182448", "locations": { "nodes": [ { "name": "Ottawa Warehouse", "address": { "country": "Canada" } }, { "name": "Toronto Store", "address": { "country": "Canada" } } ] } }, "locationGroupZones": { "edges": [ { "node": { "zone": { "id": "gid://shopify/DeliveryZone/1066475772", "name": "Canada Zone", "countries": [ { "code": { "countryCode": "CA" }, "provinces": [ { "code": "ON" } ] } ] } } } ] } }, { "locationGroup": { "id": "gid://shopify/DeliveryLocationGroup/982182449", "locations": { "nodes": [ { "name": "US Store", "address": { "country": "United States" } } ] } }, "locationGroupZones": { "edges": [ { "node": { "zone": { "id": "gid://shopify/DeliveryZone/1066475774", "name": "Mexico Zone", "countries": [ { "code": { "countryCode": "MX" }, "provinces": [ { "code": "MOR" } ] } ] } } }, { "node": { "zone": { "id": "gid://shopify/DeliveryZone/1066475773", "name": "USA Zone", "countries": [ { "code": { "countryCode": "US" }, "provinces": [ { "code": "CO" } ] } ] } } } ] } } ] }, "userErrors": [] } }