The setShippingMethodsOnCart
mutation sets one or more shipping methods on a cart. By default, Magento GraphQL supports the following shipping methods:
Label |
Carrier code |
Method code |
DHL |
dhl |
Varies |
Federal Express |
fedex |
Varies |
Flat Rate |
flatrate |
flatrate |
Free Shipping |
freeshipping |
freeshipping |
Best Way |
tablerate |
bestway |
United Parcel Service |
ups |
Varies |
United States Postal Service |
usps |
Varies |
Syntax
1
2
3
4
5
6
7
| mutation {
setShippingMethodsOnCart(
input: setShippingMethodsOnCartInput
) {
setShippingMethodsOnCartOutput
}
}
|
Example usage
The following example sets the shipping method to Best Way.
Request:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| mutation {
setShippingMethodsOnCart(
input: {
cart_id: "IeTUiU0oCXjm0uRqGCOuhQ2AuQatogjG",
shipping_methods: [
{
carrier_code: "tablerate"
method_code: "bestway"
}
]
}
) {
cart {
shipping_addresses {
selected_shipping_method {
carrier_code
carrier_title
method_code
method_title
amount {
value
currency
}
}
}
}
}
}
|
Response:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| {
"data": {
"setShippingMethodsOnCart": {
"cart": {
"shipping_addresses": [
{
"selected_shipping_method": {
"carrier_code": "tablerate",
"carrier_title": "Best Way",
"method_code": "bestway",
"method_title": "Table Rate",
"amount": {
"value": 0,
"currency": "USD"
}
}
}
]
}
}
}
}
|
The top-level setShippingMethodsOnCartInput
object is listed first. All child objects are listed in alphabetical order.
Attribute |
Data Type |
Description |
cart_id |
String! |
The unique ID that identifies the customer’s cart |
shipping_methods |
ShippingMethodInput! |
The shipping address for a specific cart |
Attribute |
Data Type |
Description |
carrier_code |
String! |
A string that identifies a commercial carrier or an offline shipping method |
method_code |
String! |
A string that indicates which service a commercial carrier will use to ship items. For offline shipping methods, this value is similar to the label displayed on the checkout page |
Output attributes
The ShippingMethodOutput
object contains the Cart
object.
Attribute |
Data Type |
Description |
cart |
Cart! |
Describes the contents of the specified shopping cart |
Cart object
Attribute |
Data Type |
Description |
applied_coupon |
AppliedCoupon |
Deprecated. Use applied_coupons instead |
applied_coupons |
[AppliedCoupon ] |
An array of AppliedCoupon objects. Each object contains the code text attribute, which specifies the coupon code |
applied_gift_cards |
[AppliedGiftCard ] |
An array of AppliedGiftCard objects. An AppliedGiftCard object contains the code text attribute, which specifies the gift card code. applied_gift_cards is a Commerce-only attribute, defined in the GiftCardAccountGraphQl module |
applied_store_credit |
AppliedStoreCredit |
Contains store credit information applied to the cart. applied_store_credit is a Commerce-only attribute, defined in the CustomerBalanceGraphQl module |
available_payment_methods |
[AvailablePaymentMethod] |
Available payment methods |
billing_address |
BillingCartAddress |
Contains the billing address specified in the customer’s cart |
email |
String |
The customer’s email address |
id |
ID! |
The ID of the cart |
is_virtual |
Boolean! |
Indicates whether the cart contains only virtual products |
items |
[CartItemInterface] |
Contains the items in the customer’s cart |
prices |
CartPrices |
Contains subtotals and totals |
selected_payment_method |
SelectedPaymentMethod |
Selected payment method |
shipping_addresses |
[ShippingCartAddress]! |
Contains one or more shipping addresses |
total_quantity |
Float! |
Total Quantity of products in the cart |
Cart query output provides more information about the Cart
object.
Errors
Error |
Description |
Could not find a cart with ID "XXX" |
The specified cart_id value does not exist in the quote_id_mask table. |
Carrier with such method not found: carrier_code, method_code |
A specified carrier method was not found, or it is not applicable for the defined shipping address. |
Required parameter "cart_id" is missing |
The value specified in the cart_id argument is empty. |
Required parameter "carrier_code" is missing. |
The value specified in the shipping_methods .carrier_code argument is empty. |
Required parameter "method_code" is missing. |
The value specified in the shipping_methods .method_code argument is empty. |
Required parameter "shipping_methods" is missing |
The value specified in the shipping_methods argument is empty. |
The current user cannot perform operations on cart "XXX" |
An unauthorized user (guest) tried to set a shipping method for an order on behalf of an authorized user (customer), or a customer tried to set a shipping method for an order on behalf of another customer. |
The shipping method can't be set for an empty cart. Add an item to cart and try again. |
The shipping method cannot be set for an empty cart. |
You cannot specify multiple shipping methods. |
You can set only one shipping method for an order. |