What does FulfillmentService "requires_shipping_method" do?

stickfigure
Shopify Partner
37 2 4

The documentation for FulfillmentService shows a property "requires_shipping_method". However, this property does not appear in the JSON for my FulfillmentService, and setting it has no effect that I can determine.

 

The documentation says "States if the fulfillment service requires products to be physically shipped" which doesn't give me any idea what the effects of setting or not setting this flag would be. What does it do?

 

Has this flag been deprecated and is the documentation out of date?

 

I'm building a POD service that does ship physical products. I'm using the new FulfillmentOrders flow.

 

Thanks in advance.

Replies 11 (11)
_JB
Shopify Staff
834 99 190

Hey @stickfigure,

 

When products are created in Shopify, merchants have the option to indicate whether or not the product requires shipping:

 

20-02-31cp7-l00i3

When this option is selected, customers with this product in their cart will be prompted to enter a shipping address and choose a shipping method at checkout. When this option isn't selected, the checkout doesn't prompt for any shipping details from the customer.

 

The requires_shipping_method property determines whether your FulfillmentService will return rates for all products (requires_shipping_method: false), or only products which require shipping (requires_shipping_method: true).

JB | Developer Support @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit Shopify.dev or the Shopify Web Design and Development Blog

stickfigure
Shopify Partner
37 2 4

Thanks for the response. Can you elaborate on what "will return rates" means? In terms of the API, what consequence does that have?

 

Also, why doesn't this property exist in my FulfillmentService JSON?

 

GET https://orbital-commerce-test.myshopify.com/admin/api/2020-01/fulfillment_services/51615989841.json

Returns:

 

{
  "fulfillment_service": {
    "id": 51615989841,
    "name": "...",
    "email": null,
    "service_name": "...",
    "handle": "...",
    "fulfillment_orders_opt_in": true,
    "include_pending_stock": false,
    "provider_id": null,
    "location_id": 35885383761,
    "callback_url": "...",
    "tracking_support": true,
    "inventory_management": false
  }
}

I don't see a requires_shipping_method property. X-Request-ID: 761d3504-ebf7-4469-9dd0-452a33e4936a, if that helps.

jordanholmes
Shopify Expert
12 1 4

Hi @_JB 

 

I find the 'requires_shipping_method' to be slightly confusing. I have an app that only fulfills non shippable products.

 

When I create a new fulfillment service on a store that has multiple shipping profiles it puts my location in the 'not shipping from' section in the profiles and so blocks people checking out when that product is in their cart.

 

For requires_shipping_method should I be using true or false in this situation? Or are stores really required to manually add the location to a shipping profile even though there is nothing to ship

 

Thanks

 

 

 

_JB
Shopify Staff
834 99 190

Hey @jordanholmes,

If your fulfillment services manages digital products, you'll want to use requires_shipping_method= false.

Using true here means the checkout will only show your fulfillment service's rates for physical products.

Using false here means the checkout will show your fulfillment service's rates for physical and non-physical products.

JB | Developer Support @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit Shopify.dev or the Shopify Web Design and Development Blog

nick-clyde
New Member
4 0 0

Hey @jordanholmes,

Were you able to resolve the issue you described?


I find the 'requires_shipping_method' to be slightly confusing. I have an app that only fulfills non shippable products.

When I create a new fulfillment service on a store that has multiple shipping profiles it puts my location in the 'not shipping from' section in the profiles and so blocks people checking out when that product is in their cart.

Our app works in the same way, and we're experiencing the same issue in which customers can't check out. So far, changing 'requires_shipping_method' setting doesn't seem to fix the issue.

Thanks!

jordanholmes
Shopify Expert
12 1 4

@nick-clyde 

We only have one product that we need to fulfill so we just told any stores that are having this problem to make sure that the product was in the correct shipping profiles manually from their admin.

I will probably be trying to find a better solution once we upgrade to a newer api version. It was only affecting a low percentage of stores (i believe ones with multi shipping profiles) so that was our solution for now

 

nick-clyde
New Member
4 0 0

Thanks @jordanholmes ,

That's also looking like the route we'll be taking, at least in the short term. Will continue to investigate a programmatic solution and let you know if we get anywhere on that front. 

@_JB Let us know if you have any suggestions! Thanks again

_JB
Shopify Staff
834 99 190

Hey @nick-clyde and @jordanholmes,

Can you clarify exactly where the issue lays here? Is it that your app isn't automatically added to a shipping profile, or is it that customers can't checkout with digital items despite requires_shipping_method being set to false? If you can share the name of your app and steps to replicate, I'll install on my test store and see what I can find.

JB | Developer Support @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit Shopify.dev or the Shopify Web Design and Development Blog

nick-clyde
New Member
4 0 0

Hey @_JB ,

Thanks for your reply! The issue is that our app's fulfillment service is sometimes not added to a shipping profile, and, when that happens, that customers can't checkout with digital items despite `requires_shipping_method` being set to false. It seems that despite being digital/non-shipping products, checkout is prevented if they're not a part of a shipping profile. This only has occurred for a few of our clients, I believe just in the case described above by jordanholmes: 

When I create a new fulfillment service on a store that has multiple shipping profiles

For now, we're solving this like jordanholmes described above – instructing the client on how to get our location into the shipping profiles – but we'd like to fix the problem from our end if possible, so user's don't need to do additional setup/we don't ever run the risk of preventing a client's customers from checking out.

Our app is linked here https://apps.shopify.com/clyde-warranty-platform if you'd like to try installing. Let me know and I'll complete your setup from our end after you install. Since the issue only occurs for a certain subset of shops, you may need to ensure you have multiple shipping profiles before installing (or remove our location from your shipping profile after the fact, if you're just trying to reproduce the checkout issue)

Thanks again!