I'm happy to be wrong, but I believe I found a bug in how shipping rates are calculated with multiple profiles. Overall scenario, shipping products that require next day air. Our products (vendor a) vs. another supplier's products (vendor b). Desired goal is to have each vendor's products have their own separate but simple shipping rate. Flat rate under $250, Free over $250. For my testing I picked a flat rate of $25 for vendor A, $26 for vendor B (just to know for sure which rate was being applied). Our stuff, vendor A is in the general shipping profile. Vendor B is in the vendor B profile. Both only have 2 rules for shipping cost, as mentioned above.
Scenario 1 - both below free shipping threshold. Desired shipping cost - $51. Success. Calculated shipping is $51
Scenario 2 - Vendor A over free shipping threshold, Vendor B not. Desired shipping cost - $26. Failure. Calculated shipping is 0
Scenario 3 - Vendor B over free shipping threshold, Vendor A not. Desired shipping cost - $25. Failure. Calculated shipping is 0
Scenario 4 - Both over free shipping. Desired shipping cost - $0. Possible success, but due to miscalculations above, not sure it's success.. Calculated shipping is 0
When over $250 total (either vendor when combined), the separate shipping profiles are not calculated correctly. It appears to be related to free shipping.
In a slightly different test, where vendor B had flat rate shipping of $26 no matter what, Shopify always calculated correctly, whether vendor A qualified for free shipping or not. Always correct.
I'm quite happy to find out that I'm missing something... but honestly it looks like a Shopify bug to me. Thoughts?
Update - spoke with Shopify support, they suggested posting it here as a development request. Frankly, I believe it's a bug. General shipping profile for Vendor A, Vendor B shipping profile for Vendor B. Here's the quick summary of why:
(Tldr; logic of applying each shipping profile and adding them not consistently applied).
Approach 1 - Vendor A (us), flat rate shipping of $25 if under $250, free shipping if over. Vendor B - flat rate of $26 no matter what.
If the cart has 1 of our products (under FF level) and 1 of the others (under FF), shipping profiles are processed individually and combined, as expected. $51.00 shipping.
If the cart has 6 of our products (free freight) and 1 of the others, shipping profiles are processed individually and combined, as expected. $26 shipping.
Approach 2 - the bug. Vendor A: $25 shipping under $250, free shipping over $250 for their products. Similar, $26 shipping under $250, free shipping over $250 for their products
Both below $250, both profiles added to each other, works as expected. $51 shipping.
Either vendor's products above $250, logic changes, shipping profiles are no longer added together as they are in approach 1, or in non-free freight scenarios. The logic does not work the same way. Freight goes to $0 for the whole order, not just for that vendor. Individual shipping profiles are no longer processed individually. This is a bug.