checkout_write
Arguments
ID!
required
Checkout experience ID.
ID!
required
Shipping method ID, from the checkout experience’s
methods.required
The replacement configuration.
Show fields
Show fields
Boolean
Add landed costs (duties and import fees) to this method’s price, overriding the experience-level setting.
Dynamic methods only. The carrier services to quote live rates from. Required unless
serviceLevel is set.Show fields
Show fields
required
Carrier to quote live rates from. Values are display-cased, e.g. ‘FedEx’, ‘UPS’, ‘USPS’.
Boolean
Whether this carrier service is quoted. Defaults to true.
Markup applied to this carrier service specifically.
String!
required
Carrier-specific service code, e.g. ‘FEDEX_GROUND’ for FedEx or ‘Ground’ for UPS. The valid set differs per carrier; read an existing dynamic method with checkoutExperience(id:) to see the codes this store already uses.
String!
required
Shopper-facing description shown next to the method at checkout. Like
name, it may contain customer-name template variables.Dynamic methods only. Carriers excluded from this method’s candidate set.
String
Shopper-facing description used in place of
description under the same condition as fallbackName.String
Shopper-facing name used in place of
name when name contains customer-name template variables and the shopper’s name is not available at quote time. Ignored when name has no variables.Int
Dynamic methods only. Days Redo assumes an order takes to ship when it estimates delivery dates for this method, overriding the experience’s
fulfillmentDelayDaysOverride. Omit it to use the experience’s value. A whole number of days, zero or more.String!
required
Shopper-facing name of the shipping method as it appears at checkout, e.g. ‘Standard’. May contain customer-name template variables — ‘{customer_name}’, ‘{customer_name:first}’, ‘{customer_name:last}’ — which are substituted per shopper. Send them back verbatim when you are not deliberately changing them, or you will silently strip the merchant’s personalization.
[String!]
Tags applied to the order when this method is bought.
Bounds the final price this method may be sold at, after every other pricing rule has run. Omit to leave the method’s existing constraint untouched; send one to replace it outright. There is no way to clear a constraint through this API.
Show fields
Show fields
Float
Floor applied after the relative bound: the effective minimum is the greater of this and the referenced price plus
byAtLeast. ‘RELATIVE_TO_OTHER_RATE_TABLE’ constraints only.How far above the referenced method’s price this method must sit. ‘RELATIVE_TO_OTHER_RATE_TABLE’ constraints only.
How far above the referenced method’s price this method may sit. ‘RELATIVE_TO_OTHER_RATE_TABLE’ constraints only.
String!
required
Currency all bounds are expressed in.
How the bounds are expressed: ‘DEFAULT’ bounds the price absolutely, ‘RELATIVE_TO_OTHER_RATE_TABLE’ bounds it against another shipping method’s price.
Suggested lower margin bound. Omit when there is none.
Suggested upper margin bound. Omit when there is none.
Float
Highest price this method may be sold at. ‘DEFAULT’ constraints only.
Float
Lowest price this method may be sold at. ‘DEFAULT’ constraints only.
ID
ID of the shipping method this method’s price is bounded against, from the same checkout experience. Required for, and only valid on, ‘RELATIVE_TO_OTHER_RATE_TABLE’ constraints.
Dynamic methods only. Which of the eligible live rates to show the shopper. Values are CHEAPEST, FASTEST, and CUSTOM.
Fixed methods only, and required for them. One entry per price. A single entry with no
conditions is a flat price; multiple entries express weight or cart-value ranges and free-shipping thresholds.Show fields
Show fields
Cart weight or cart value ranges this rate applies to. Omit or pass an empty array for a flat price that applies to every cart.
String!
required
ISO currency code for
price, e.g. ‘USD’.Boolean
Whether this rate is active. Defaults to true.
Dynamic methods only. How to round the marked-up price before showing it.
String
Identifier the storefront platform uses for this shipping option at checkout.
Dynamic methods only. Quote the cheapest carrier service delivering within this service level’s window instead of pinning carrier services.
required
How the price is produced. FIXED is a merchant-set price served by Redo with no carrier involved and requires
rates. DYNAMIC quotes live carrier rates through Redo and requires either carrierServices or serviceLevel. Custom (script-priced) methods cannot be created or edited here.Returns
A shipping method offered at checkout and the configuration that prices it.
Show fields
Show fields
Boolean
True when landed costs (duties and import fees) are added to this method’s price, overriding the experience-level setting. Omitted when the method does not override it.
Dynamic methods only. The carrier services this method quotes live rates from. This is the answer to ‘which carrier do my checkout rates come from’ — the rates are fetched by Redo from these carriers. Empty means no carrier service has been pinned, so the method draws on whatever the account has available.
Show fields
Show fields
required
Carrier this method draws a live rate from.
Boolean
Whether the merchant has this carrier service turned on. A disabled service is configured but not quoted. Defaults to true, and is omitted only on records predating the flag.
Markup applied to this carrier service specifically, on top of any method-level markup. Omitted when no per-service markup is set.
String!
required
Carrier-specific service code, e.g. ‘fedex_ground’ or ‘usps_priority’. The valid set differs per carrier, so this is not a single closed enum.
String!
required
Shopper-facing description shown next to the method at checkout. Like
name, it may contain customer-name template variables; see fallbackDescription.Dynamic methods only. Carriers never considered for this method. Omitted when no carrier is excluded.
String
Shopper-facing description used in place of
description under the same condition as fallbackName: description contains customer-name template variables and the shopper’s name is not available. Omitted when the merchant has not set one.String
Shopper-facing name used in place of
name when name contains customer-name template variables and the shopper’s name is not available at quote time. Ignored when name has no variables. Omitted when the merchant has not set one, in which case an unpersonalized name renders with the variables emptied out.Int
Dynamic methods only. Days Redo assumes an order takes to ship when it estimates delivery dates for this method, overriding the experience’s
fulfillmentDelayDaysOverride. Omitted when the method uses the experience’s value, or the store-level value if the experience sets none. A whole number of days, zero or more.ID!
required
Shipping method ID.
Dynamic methods only. Markup applied to every live carrier rate on this method, on top of which per-carrier-service markups still apply. Omitted when no method-level markup is set.
Show fields
Show fields
String!
required
Shopper-facing name of the shipping method as it appears at checkout. May contain customer-name template variables — ‘{customer_name}’, ‘{customer_name:first}’, ‘{customer_name:last}’ — which are substituted per shopper. Preserve them when rewriting this field, or personalization is silently dropped; see
fallbackName for what is shown when the shopper’s name is unknown.[String!]
Tags applied to the order when this method is bought. Omitted when the merchant has configured no tags.
Dynamic methods only. Hard clamp applied after markup and rounding. Omitted when the price is not clamped.
Bounds the method’s sold price must stay within. Omitted when the merchant has set no price or margin constraints.
Show fields
Show fields
Float
Floor applied after the relative bound: the effective minimum is the greater of this and the referenced price plus
byAtLeast. Present only on ‘RELATIVE_TO_OTHER_RATE_TABLE’ constraints, and omitted when unset.String!
required
Currency all bounds are expressed in.
How the bounds are expressed: ‘DEFAULT’ bounds the price absolutely, ‘RELATIVE_TO_OTHER_RATE_TABLE’ bounds it against another shipping method’s price.
Float
Highest price this method may be sold at. Present only on ‘DEFAULT’ constraints, and omitted when no upper bound is set.
Float
Lowest price this method may be sold at. Present only on ‘DEFAULT’ constraints, and omitted when no lower bound is set.
ID
ID of the shipping method this method’s price is bounded against. Matches the
id of another method in this same response. Present only on ‘RELATIVE_TO_OTHER_RATE_TABLE’ constraints.String!
required
Human-readable price: ‘FREE’, a formatted amount like ‘$5.99’, ‘DYNAMIC’ for carrier-calculated rates, ‘CUSTOM’ for merchant-scripted rates, or ’-’ when no price is configured. Reflects only the first entry in
rates, so on a method with several it can read ‘FREE’ or show the cheapest tier while most carts are charged something else — read rates for the full picture.Dynamic methods only. Which of the eligible live carrier rates is shown to the shopper. Omitted when the merchant has not chosen a preset.
Fixed methods only. Every configured price, in order. More than one entry means the price varies by cart weight or cart value; a single entry with empty
conditions is a flat price.Show fields
Show fields
required
Cart weight or cart value conditions this price applies to. Empty when the price applies to every cart.
Show fields
Show fields
String
Currency the price bounds are expressed in. Present only on cart-value conditions.
Float
Inclusive upper bound of cart weight in grams. Present only on weight conditions.
Float
Inclusive upper bound of cart value. Present only on cart-value conditions.
Float
Inclusive lower bound of cart weight in grams. Present only on weight conditions.
Float
Inclusive lower bound of cart value. Present only on cart-value conditions.
required
What this condition is measured against: WEIGHT uses the cart’s total weight, PRICE uses the cart’s total value.
String!
required
Currency of
price.Boolean
Whether the merchant has this rate turned on. Defaults to true, and is omitted only on records predating the flag.
Dynamic methods only. How the marked-up price is rounded before it is shown. Omitted when prices are shown unrounded.
String
Identifier the storefront platform uses for this shipping option at checkout. Omitted when the merchant has not set one.
Dynamic methods only. When set, the cheapest carrier service delivering within this service level’s window is used. Omitted when the method is not bucketed by service level.
Shipping discounts applied to this method, in order. READ ONLY: these are configured by Redo, not by the merchant, and they sync to a live storefront-platform function, so writing them here would put the stored rules and the deployed function out of step. Creating or updating a shipping method carries them over untouched. Omitted when the method has no discount rules.
Show fields
Show fields
String
Currency the cart bounds and discount amount are expressed in. Omitted when the rule sets neither cart bounds nor a flat discount amount.
Flat amount taken off the shipping price, as a decimal string. Omitted when the rule discounts by percentage instead.
Percentage taken off the shipping price, as a decimal string (e.g. ‘50’ means half off). Omitted when the rule discounts by a flat amount instead.
Float
Cart total at or below which the discount applies. Omitted when the rule has no upper bound.
Float
Cart total at or above which the discount applies. Omitted when the rule has no lower bound.
required
How the price is produced: FIXED is a merchant-set price served by Redo with no carrier involved, DYNAMIC is quoted live from the carriers listed in
carrierServices, CUSTOM is produced by a merchant-authored script.Example
mutation {
updateShippingMethod(checkoutExperienceId: "...", id: "...", input: { ... }) {
addLandedCostsOverride
description
excludedCarriers
fallbackDescription
fallbackName
fulfillmentDelayDaysOverride
id
name
# ...
}
}