Virtual Product is charging customers for shipping

Topic summary

A virtual product was incorrectly charging shipping fees at checkout despite having “This is a physical product” unchecked.

Initial Workaround:

  • Marked the product as physical with 1000 lb weight
  • Created a “shipping not applicable” option at no charge
  • Set up a shipping rule for free shipping on items 1000-100,000 lbs

Root Cause & Solution:
The issue stemmed from having two ship-from locations configured. When one location wasn’t checked/enabled for the virtual product, Shopify charged shipping fees. Enabling the product at both locations resolved the problem.

Additional Troubleshooting Steps Suggested:

  • Toggle physical product setting on/off with wait periods between changes
  • Clear browser cache or check for server-side caching issues
  • Verify no duplicate products exist in admin
  • Review all shipping profiles to ensure product isn’t mistakenly included
  • Check apps affecting carrier rates or shipping settings

Status: Resolved. A follow-up question asks whether the fix involved removing the second location or enabling the digital product at both locations.

Summarized with AI on October 29. AI used: claude-sonnet-4-5-20250929.

We have several virtual services on our website. All but one is working perfectly. The one we are having an issue with is charging a shipping fee at checkout.

We have the box unchecked for “This is a physical product”

What else could be causing this issue?

I figured out a workaround. I checked the box that it’s a physical product and put the weight in at 1000 pounds.

I then created a shipping option called “shipping not applicable” at no charge.

I then created a shipping rule that offered free shipping for any item that is 1000 pounds up to 100,000 pounds.

No other product that we offer weighs more than 1 pound and nobody is ordering a thousand of any of our products so the rule will never affect our shipping charges other than for this 1 item.

If anyone else has any other ideas, we will keep this work around activated.

1 Like

Hello @direct007 For digital good oddities like this go through the following:

  • Toggle the setting “this is a physical product” on wait a few minutes then toggle it off and wait a few.
    • If this resolves the problem it could have just been a shopify server cache hiccup or indicate a problem with your local browser needing it’s cache fully cleared. Platform agnostic General Troubleshooting: in some cases it can just be easier to duplicate the product and delete the original that’s misbehaving to see if that changes anything /shrug.
  • Ensure the product being edited in the admin is the only one of that product in the admin to ensure your not working on duplicates, or that copies are published to the channel and it’s the copies at that are setup incorrectly.
    • If the product uses a personalization app (like putting a photo on product) then check the behavior without that apps interference.
  • Check ALL your shipping profiles to ensure this product was not mistakenly added to a shipping profile.
  • If there are any apps affecting carrier rates or shipping profiles check that apps settings.
  • Unlikely but check any carrier service integrations where the setup is not in the shopify-admin but the carriers service website.
1 Like

Thank you Paul,

The actual issue was that we have two ship from locations and because one of the locations was not checked, the shipping fee was charged even though it was for a virtual product. Not sure why that would be, but it solved the issue.

Thanks for your response.

direct007

2 Likes

I know this is a long resolved issue, but I am running into something similar. Did you fix it by removing the 2nd location or telling shopify that both locations carried the digital product?