Anchor to discountAutomaticFreeShippingCreatediscount
discount Automatic Free Shipping Create
mutation
Requires Apps must have access scope.
Anchor to Arguments
Arguments
- Anchor to freeShippingAutomaticDiscountfree•
Shipping Automatic Discount The input data used to create the automatic free shipping discount.
Was this section helpful?
Anchor to DiscountAutomaticFreeShippingCreatePayload returnsDiscount Automatic Free Shipping Create Payload returns
- Anchor to automaticDiscountNodeautomatic•
Discount Node The automatic free shipping discount that was created.
- Anchor to userErrorsuser•
Errors [DiscountUser Error!]!non-null The list of errors that occurred from executing the mutation.
Was this section helpful?
- Create a free shipping discount for 5+ items
- Create a subtotal-based shipping discount
- discountAutomaticFreeShippingCreate reference
Examples
const { admin } = await authenticate.admin(request);
const response = await admin.graphql(
`#graphql
mutation CreateFreeShippingDiscount($input: DiscountAutomaticFreeShippingInput!) {
discountAutomaticFreeShippingCreate(freeShippingAutomaticDiscount: $input) {
automaticDiscountNode {
id
automaticDiscount {
... on DiscountAutomaticFreeShipping {
title
startsAt
endsAt
minimumRequirement {
... on DiscountMinimumQuantity {
greaterThanOrEqualToQuantity
}
}
destinationSelection {
... on DiscountCountryAll {
allCountries
}
}
}
}
}
userErrors {
field
message
}
}
}`,
{
variables: {
"input": {
"title": "FREESHIP5PLUS",
"startsAt": "2025-01-01T00:00:00Z",
"endsAt": "2025-12-31T23:59:59Z",
"minimumRequirement": {
"quantity": {
"greaterThanOrEqualToQuantity": "5"
}
},
"destination": {
"all": true
}
}
},
},
);
const data = await response.json();
mutation CreateFreeShippingDiscount($input: DiscountAutomaticFreeShippingInput!) {
discountAutomaticFreeShippingCreate(freeShippingAutomaticDiscount: $input) {
automaticDiscountNode {
id
automaticDiscount {
... on DiscountAutomaticFreeShipping {
title
startsAt
endsAt
minimumRequirement {
... on DiscountMinimumQuantity {
greaterThanOrEqualToQuantity
}
}
destinationSelection {
... on DiscountCountryAll {
allCountries
}
}
}
}
}
userErrors {
field
message
}
}
}
curl -X POST \
https://your-development-store.myshopify.com/admin/api/2025-04/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
"query": "mutation CreateFreeShippingDiscount($input: DiscountAutomaticFreeShippingInput!) { discountAutomaticFreeShippingCreate(freeShippingAutomaticDiscount: $input) { automaticDiscountNode { id automaticDiscount { ... on DiscountAutomaticFreeShipping { title startsAt endsAt minimumRequirement { ... on DiscountMinimumQuantity { greaterThanOrEqualToQuantity } } destinationSelection { ... on DiscountCountryAll { allCountries } } } } } userErrors { field message } } }",
"variables": {
"input": {
"title": "FREESHIP5PLUS",
"startsAt": "2025-01-01T00:00:00Z",
"endsAt": "2025-12-31T23:59:59Z",
"minimumRequirement": {
"quantity": {
"greaterThanOrEqualToQuantity": "5"
}
},
"destination": {
"all": true
}
}
}
}'
const { admin } = await authenticate.admin(request);
const response = await admin.graphql(
`#graphql
mutation CreateFreeShippingDiscount($input: DiscountAutomaticFreeShippingInput!) {
discountAutomaticFreeShippingCreate(freeShippingAutomaticDiscount: $input) {
automaticDiscountNode {
id
automaticDiscount {
... on DiscountAutomaticFreeShipping {
title
startsAt
endsAt
minimumRequirement {
... on DiscountMinimumQuantity {
greaterThanOrEqualToQuantity
}
}
destinationSelection {
... on DiscountCountryAll {
allCountries
}
}
}
}
}
userErrors {
field
message
}
}
}`,
{
variables: {
"input": {
"title": "FREESHIP5PLUS",
"startsAt": "2025-01-01T00:00:00Z",
"endsAt": "2025-12-31T23:59:59Z",
"minimumRequirement": {
"quantity": {
"greaterThanOrEqualToQuantity": "5"
}
},
"destination": {
"all": true
}
}
},
},
);
const data = await response.json();
const client = new shopify.clients.Graphql({session});
const data = await client.query({
data: {
"query": `mutation CreateFreeShippingDiscount($input: DiscountAutomaticFreeShippingInput!) {
discountAutomaticFreeShippingCreate(freeShippingAutomaticDiscount: $input) {
automaticDiscountNode {
id
automaticDiscount {
... on DiscountAutomaticFreeShipping {
title
startsAt
endsAt
minimumRequirement {
... on DiscountMinimumQuantity {
greaterThanOrEqualToQuantity
}
}
destinationSelection {
... on DiscountCountryAll {
allCountries
}
}
}
}
}
userErrors {
field
message
}
}
}`,
"variables": {
"input": {
"title": "FREESHIP5PLUS",
"startsAt": "2025-01-01T00:00:00Z",
"endsAt": "2025-12-31T23:59:59Z",
"minimumRequirement": {
"quantity": {
"greaterThanOrEqualToQuantity": "5"
}
},
"destination": {
"all": true
}
}
},
},
});
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 CreateFreeShippingDiscount($input: DiscountAutomaticFreeShippingInput!) {
discountAutomaticFreeShippingCreate(freeShippingAutomaticDiscount: $input) {
automaticDiscountNode {
id
automaticDiscount {
... on DiscountAutomaticFreeShipping {
title
startsAt
endsAt
minimumRequirement {
... on DiscountMinimumQuantity {
greaterThanOrEqualToQuantity
}
}
destinationSelection {
... on DiscountCountryAll {
allCountries
}
}
}
}
}
userErrors {
field
message
}
}
}
QUERY
variables = {
"input": {
"title": "FREESHIP5PLUS",
"startsAt": "2025-01-01T00:00:00Z",
"endsAt": "2025-12-31T23:59:59Z",
"minimumRequirement": {
"quantity": {
"greaterThanOrEqualToQuantity": "5"
}
},
"destination": {
"all": true
}
}
}
response = client.query(query: query, variables: variables)
Input variables
JSON{
"input": {
"title": "FREESHIP5PLUS",
"startsAt": "2025-01-01T00:00:00Z",
"endsAt": "2025-12-31T23:59:59Z",
"minimumRequirement": {
"quantity": {
"greaterThanOrEqualToQuantity": "5"
}
},
"destination": {
"all": true
}
}
}
Response
JSON{
"discountAutomaticFreeShippingCreate": {
"automaticDiscountNode": {
"id": "gid://shopify/DiscountAutomaticNode/1057371256",
"automaticDiscount": {
"title": "FREESHIP5PLUS",
"startsAt": "2025-01-01T00:00:00Z",
"endsAt": "2025-12-31T23:59:59Z",
"minimumRequirement": {
"greaterThanOrEqualToQuantity": "5"
},
"destinationSelection": {
"allCountries": true
}
}
},
"userErrors": []
}
}