Hi everyone,
I wanted to share an update from a fairly extensive shipping-architecture project we’ve been working through on our Shopify store. Hopefully this saves another merchant some time if they sell a combination of parcel-shippable products and oversized/freight products from the same fulfillment location.
We manufacture handcrafted furniture, outdoor products, garden products, décor, and other items. Some products can ship through UPS, while larger products may require local delivery or individually quoted freight.
Our goal was straightforward: make as much of our catalog nationally purchasable as possible while still using the correct shipping method for each product.
Our starting architecture
We first spent considerable time cleaning up our product assignments and shipping profiles. 83hrs to be exact.
Products capable of normal parcel shipping were moved into a dedicated National Parcel Shipping profile using carrier-calculated UPS rates.
Oversized/non-UPS products were kept in a Local Delivery/Pickup/No UPS profile.
We also have existing B2B/customer-company logic and regional delivery rules layered over the available shipping methods.
After normalizing the catalog, we identified a customer-experience problem:
A customer outside our local/regional delivery area could select an oversized product that we were perfectly willing to freight to them, but Shopify would simply return:
“Shipping not available.”
From the customer’s perspective, that looks like we won’t sell or ship the product to them. In reality, we simply need to obtain a freight quote.
The proposed solution
We created a new shipping profile called Quoted Freight Shipping.
The concept was:
Parcel-capable product → UPS
Eligible regional customer → appropriate local/regional delivery
Outside those automatic delivery areas → $149.99 Freight Deposit — Final Shipping Cost Billed Separately
We intentionally tested this with one product variant before migrating the larger catalog.
That pilot worked extremely well when the freight product was purchased by itself.
Our actual guest-checkout tests were:
Tier 1 ZIP 30240 → Shopify Local Delivery — PASS
Tier 2 ZIP 30230 → Extended Delivery $99.99 — PASS
Tier 3 ZIP 30220 → Regional Delivery $149.99 — PASS
Outside-tier ZIP 30318 → $149.99 Freight Deposit — PASS
Company/B2B-specific shipping methods also remained hidden from guest customers as intended.
At that point, the architecture appeared ready to scale.
Then we tested a mixed cart
This is where we found the important limitation.
At ZIP 30318:
Tapered Planter Boxes by itself
→ National Parcel Shipping
→ UPS Ground returned correctly at $74.50
5’ Rollback Garden Bench by itself
→ Quoted Freight Shipping
→ Freight Deposit returned correctly at $149.99
Both products in the same cart
→ Shipping not available
We stopped the migration immediately and investigated rather than attempting to fix the problem by changing rates or rules.
What Shopify Support confirmed
After working through the scenario with Shopify Support, we received some very useful clarification.
The problem was not inventory, product availability, fulfillment location configuration, B2B rules, or our shipping-customization rules.
The issue is the interaction between different shipping profiles using incompatible shipping methods from the same fulfillment location.
Shopify confirmed that when both products are fulfilled from the same location, Shopify attempts to combine the applicable shipping rates.
In our situation, one profile is returning a carrier-calculated UPS rate, while the other is returning a manual Freight Deposit rate.
Shopify cannot natively present those as two independent selectable shipping charges from the same fulfillment location.
Shopify Support also confirmed:
1. Enabling Split Shipping does not solve this particular problem.
Split-shipping presentation does not correct a rate-combination failure.
2. Different shipping profiles do not automatically create separate delivery groups when the products originate from the same fulfillment location.
3. There is no native configuration that will display our UPS carrier-calculated charge and manual freight charge as two separate shipment charges from that one location.
4. Shopify combines rates across shipping profiles.
Rate-name compatibility and available rates affect how Shopify constructs the resulting shipping option, but our carrier-calculated UPS rate could not produce a valid result for the combined cart.
5. Shopify’s documented native way to force separate delivery groups is using separate fulfillment locations.
That was not an attractive solution for us because creating an artificial second location could affect inventory allocation, order routing, fulfillment workflows, Local Delivery, Store Pickup, and other existing operations.
Our decision
We decided not to redesign our fulfillment architecture around an artificial second location.
More importantly, we discovered this during a one-variant pilot, before moving the approximately 1,799 active retail variants we had identified as potential freight-eligible products.
We rolled the pilot product back to its original profile and preserved the working shipping architecture.
For now, oversized/non-parcel products will remain protected from automatic UPS checkout. We will instead work on a customer-facing Request a Freight Quote pathway for products that can be shipped nationally but cannot receive an automatic Shopify shipping calculation.
Shopify Support confirmed that Shopify does not currently provide a native pre-checkout warning, incompatible-cart restriction, or automatic redirect to a freight-quote form for this scenario.
One native option is customizing the “Shipping not available” checkout message so the customer understands that special shipping arrangements may still be available.
Shopify also advised that third-party cart-validation solutions can potentially provide a more sophisticated pre-checkout workflow.
Feature request submitted to Shopify
I also asked Shopify Support to submit this situation as a merchant feature request.
I believe there is a significant opportunity here for Shopify.
Imagine a merchant selling:
Product A → UPS carrier-calculated shipping
Product B → individually quoted freight
Both → physically fulfilled from the same warehouse/workshop
Both products are nationally shippable. Yet putting them together in the cart can result in “Shipping not available.”
Ideally, Shopify would recognize the incompatible shipping requirements and allow the products to remain in separate delivery groups even though they originate from the same physical fulfillment location.
That could benefit merchants selling furniture, outdoor furniture, machinery, building materials, agricultural products, large décor, wholesale merchandise, and many other mixed parcel/freight catalogs.
Biggest lesson from the project
Pilot major shipping changes with ONE product before performing a bulk migration.
Our individual checkout tests looked perfect. Had we stopped there, we could have migrated nearly 1,800 variants and discovered the mixed-cart limitation afterward.
Instead, we tested:
Single parcel product → PASS
Single freight product → PASS
Local/regional delivery → PASS
Outside-area freight → PASS
Guest/customer-specific method visibility → PASS
Mixed parcel + freight cart → FAIL
That final test prevented a very large cleanup project.
For our business, the philosophy remains “Handmade to the Nation.” An oversized product not qualifying for UPS doesn’t necessarily mean we won’t ship it—it may simply mean we need to arrange and quote the freight separately.
Hopefully this helps another Shopify merchant working through a similar parcel + freight shipping architecture. And if anyone has successfully implemented a mixed carrier-calculated parcel + quoted freight workflow from a single physical fulfillment location without creating artificial inventory locations, I’d be very interested to hear how you approached it.