inconsistent behaviour with new multi-location shipping rules and CarrierServiceAPI

Highlighted
Shopify Partner
68 1 33

Hi,

 

There seems to be some inconsistencies with the way Shopify treats manually created rates and CCS rates when the store has multi-origin shipping activated.

 

Say i had

product A - list price $8 - only available at location A

product B - list price $8 - only available at location B

 

and setup a single delivery profile which contains all products and all locations, in this profile i setup 3 rates

1. standard shipping, for orders $0-$10 - $10

2. free shipping, for orders > $10 - $0

3. App implemented using carrier service API

 

If i place 1x product A and 1x product B in the cart, Shopify will send two requests to the App, one for each product as they are in different locations. However, the two rates setup in Shopify will be calculated off the entire cart total and show free shipping.

 

Few issues here:

1. any apps using CCS won't ever see the entire cart contents now in this situation and unable to apply a generic rule such as free shipping > $10 (for the entire cart), and any merchants who have been using an app to achieve customised rules (for example free shipping > $10 but for a given postcode range only) can no longer achieve this. Furthermore as some merchants have unwittingly upgraded their stores to use this, they cannot go back and hence they lose the ability to control their rates.

2. the behaviour is inconsistent and causes confusion.

 

Anyone have any suggestions as to how we can get the original functionality back?

Highlighted
Shopify Staff
Shopify Staff
1041 140 170

Hey @Parcel_Intellig,

 

There's a similar thread here: https://community.shopify.com/c/Shopify-APIs-SDKs/What-triggers-a-call-to-Custom-Carrier-Service/td-...

 

A new API is in the works to better handle this. No ETA yet.

I'll leave this thread open in case others have suggestions/work arounds.

Notice; Out of office, replies will be delayed until my return. Thanks!
0 Likes
Highlighted
Shopify Partner
68 1 33

Hi Scotty,

 

Yes same root cause, but different use case here, if you guys are working on better APIs for carrier service, is there a way we can have a high level overview of what is proposed and a chance to provide some feedback?

 

Thanks

Min

0 Likes
Highlighted
Shopify Staff
Shopify Staff
1041 140 170

Hey Min,

 

I'll shoot you a DM.

Notice; Out of office, replies will be delayed until my return. Thanks!
0 Likes
Highlighted
Shopify Partner
68 1 33

Hi Scott,

 

Following up on this topic, is there a way we can detect if a store has multi-origin shipping enabled via the API?

 

I was looking at shop.json's multi_location_enabled parameter however this doesn't seem to be the correct parameter.

 

Thanks

Min

0 Likes
Highlighted
Shopify Staff
Shopify Staff
1041 140 170

@Parcel_Intellig I would've suspected the same property - can you provide an example of it not working?

Notice; Out of office, replies will be delayed until my return. Thanks!
0 Likes
Highlighted
Shopify Partner
68 1 33

Hi Scotty,

 

The parameter shows when multi-locations is enabled rather than multi-origin.

 

I'll PM you some details of a store with the parameter set to true but multi-origin not enabled.

 

Thanks

Min

Highlighted
Shopify Partner
68 1 33

Hi Scott,

 

looking at the graphql spec, perhaps the legacyMode is what i'm after? are you able to confirm what exactly this represents?

 

query {
  deliveryProfiles (first: 1) {
    edges {
      node {
    legacyMode
      }
    }
  }
}
 
testing on a store with multi-origin shipping enabled has this param set to false, and a store with multi-origin shipping disabled, has this param set to true. At face value it looks like it's the parameter i'm after.
0 Likes
Highlighted
Shopify Staff
Shopify Staff
1041 140 170

Hey @Parcel_Intellig 

 

The parameter shows when multi-locations is enabled rather than multi-origin.

Ah yeah you're right.

 

perhaps the legacyMode is what i'm after?

That sounds like it: The legacyModeProfiles field returns true if the shop is still using single-origin shipping. More info.

Notice; Out of office, replies will be delayed until my return. Thanks!
0 Likes
Highlighted
Shopify Expert
4270 32 435

Since you went to the effort of introducing CCS I am curious as to when you expect it to kick in? With your explanation as is, the customer has a $16 checkout and there free shipping. If you moved that into the CCS, then you have the issue that one request for $8 would return $10 and another for $8 would also return $10. But interestingly, since you are in fact shipping 2 cheaper items from 2 different places, collecting fees for shipping would make sense so you don't lose money. Can you glue the two requests together to form one response. Nope. So what can you do here.

I guess it boils down to not losing money on shipping, and not losing customers too. Shopify said they are doing this to usher in the era of multi-origin and multi-location orders, so clearly our payloads in CCS need more info too. Do you even see anything? In all my CCS Apps the payload looks same as it has for 8 years now... nothing new. Fun fun fun.

Custom Shopify Apps built just for you! hunkybill@gmail.com http://www.resistorsoftware.com
0 Likes