• Resolved bdegarmo53

    (@bdegarmo53)


    I’ve been searching the forum and documentation articles for an answer without success. Here’s my problem. Previously, I sold my novels from my website and offered free mailing anywhere within the US. No problem there. Now, I’m adding products that require UPS shipping, also just within the US. I’ve set up UPS Ground, as well as Local Pickup, as shipping classes. My books have their shipping listed as Free Shipping, while the other products have their shipping set to UPS Ground. Under Shipping Zones, I have the zone for free shipping set to the US. For the UPS Ground shipping, I’ve set up 4 zones based on distance from my place, plus zones for AK and HI separately. I also have a zone for local pickup using all zip codes within 25 miles of me. Plus, people within those zip codes have the option to have the product shipped. The order of my zones is: local pickup (includes pick up or shipping to zone 1), UPS zone 1 (10 states), zone 2 (15 states), zone 3(15 states + DC), zone 4(8 states), HI, AK, and free shipping (the US).

    In testing this, I’m running into two problems. I live within the zip codes for local pickup, so if I order a product that requires shipping, I am correctly given the choice to pick up or ship. But if I choose to ship, the fee -$20 x [qty] in the UPS Ground box- isn’t added to the total in the cart or at checkout. It’s never even displayed. The second problem is that if I only order a book (which should be free shipping), I also get the choices to pickup or ship by UPS. It doesn’t default to free shipping, as designated for the product. I suspected that this was all related to the order of my shipping zones, but I’ve not found any order that corrects these problems.

    I’m currently hiding all of the products for shipping to avoid someone ordering them with no shipping fee added, so any help in getting this to work would be greatly appreciated. Thanks.

Viewing 11 replies - 1 through 11 (of 11 total)
  • Hi @bdegarmo53

    Great to hear that you’re expanding your offerings! For the first issue, ensure that your “Local Pickup” shipping method is set up correctly depending on these guides:

    For the second problem, it sounds like free shipping isn’t set as the default method. To fix that, you can prioritize free shipping by dragging it to the top in the shipping zones. Remember, WooCommerce picks the first matching zone based on customer’s address and listed zones order/heirarchy. More about this can be found on this guide.

    If these tips don’t resolve the issues, feel free to share a bit more detail on your settings, or even some screenshots, so we can take a closer look. You can use snipboard.io to take a screenshot then paste the link here.

    Thread Starter bdegarmo53

    (@bdegarmo53)

    Thanks, Reynier C. I figured out why my shipping costs weren’t being applied, and my Local Pickup option was set up according to the article you provided.

    However, I had previously tried moving the “Free Shipping” option to the top of the list in my shipping zones. Since I offer Free Shipping for my books to the entire US, when it’s the default, then ALL of my products show up with free shipping. It’s as if whatever I list as the shipping class in the record for any specific product is ignored and only the shipping zones count. Example: I order a book, and no matter where I live in the US, I get free shipping. That’s correct. However, say I order Product A and live in UPS Zone 2 (ex: Georgia), and Product A’s shipping class is set for UPS Ground, since Free Shipping is at the top of zone list and Georgia is in the US, Product A gets free shipping when the order should get charged for UPS Zone 2. Whatever shipping class I list in the product’s record seems to make no difference. Clearly, I’m missing something in how Woo handles shipping classes and zones, and in how to structure my zones.

    Hi @bdegarmo53

    Thanks for the additional info! This really helps. It seems like we need to fine-tune your shipping class settings. Make sure each product is assigned to the correct shipping class, and that each shipping class has its conditions defined within the relevant shipping zones.

    From what you described, it sounds like the Free Shipping is overriding the shipping classes. One way around this (just an idea) is to set up a Free Shipping method that has a requirement. For example, only activated when a free shipping coupon is used. This way, it won’t automatically apply to all products.

    Another potential solution is to use the ‘shipping classes’ to differentiate between products that should get UPS Ground and those that should have free shipping. Then within your Shipping Zone settings, you can set different rates for different shipping classes. Here’s our shipping classes guide just in case you need it.

    Lastly, you can try adding specific zone regions that don’t have free shipping. Then, limit them by ZIP or postcodes in this part of the settings: https://snipboard.io/wBG795.jpg. Make sure to drag them to the top of the shipping zones hierarchy list so it would filter it first before those with “Free Shipping” which is other parts of the US.

    Let me know if this helps!

    Thread Starter bdegarmo53

    (@bdegarmo53)

    Reynier, thanks again. Your reply just confirmed what 3 hours or trial and error led me to. haha

    So, yes, I set up a coupon that gets automatically applied to all paperbacks for free shipping. Then I reorganized my shipping zones so that the local pickup zone is first, followed by the shipping zones I had previously set up. The local pickup zone includes all zip codes within 25 miles of me and offers free shipping, flat rate shipping, and local pickup options. All of the rest of the zones also offer the free shipping option, which requires the valid coupon. Each of the zones also has its flat rate option where the “UPS Ground” class is set for the appropriate $amt *[qty]. The UPS Ground class is used by all of the products that require shipping. So, this seems to be working now.

    I did have to make one compromise. I have products that are simply too awkward for shipping or that I don’t have or sell enough of yet to invest in the required packaging. I want them to be available for local pickup only and their shipping classes are all set to local pickup. But if someone orders one, the cart still gives them the shipping option to choose from, which is confusing since shipping is NOT available for these products. It doesn’t set up a charge for shipping, but makes it look as if shipping is available, when it’s not. I haven’t figured out to make these “local pickup ONLY” so I’m only displaying them to make folks aware they are available and can be purchased locally from me, but not through my website.

    Thank you again for your help.

    Hi @bdegarmo53

    You’ve made great progress, and I’m glad to hear the initial issue is solved!

    About the local pickup-only items, if you’re using the new Local Shipping Block, unfortunately, the current version of the Checkout Block doesn’t allow for conditionally hiding the shipping option. Since the Checkout Block inherently shows both local pickup and shipping options when both are available, getting the functionality you desire might require a workaround or an extension.

    I can suggest a few things, but first, can you share which type of local pickup settings you’re using? Is it the local pickup blocks or legacy local pickup?

    Looking forward to your response!

    Thread Starter bdegarmo53

    (@bdegarmo53)

    I’m using the legacy local pickup. Thanks.

    Hi @bdegarmo53,

    Thanks for sharing your setup with us!

    Regarding your question, the shipping class, such as “Local Pickup,” doesn’t restrict shipping methods directly. Shipping methods like Local Pickup are determined by shipping zones and not by the product’s shipping class. If your zone includes multiple shipping methods (e.g., Local Pickup and UPS Ground), all methods will appear for the user, even if the product has a specific shipping class like “Local Pickup.”

    To restrict Local Pickup for specific products:

    • Ensure the shipping zone for local pickup only includes the Local Pickup method.

    • Avoid adding conflicting methods (e.g., UPS Ground) in that zone.

    • For products that are local pickup only, you can use third-party plugins or custom code to restrict other shipping methods, but please note that we can’t provide direct support for custom code, as per our support policy. For custom code advice, based on the feedback we get from our customers we highly recommend contacting one of the services on our Customization page.

    Feel free to reach out if you need further clarification!

    Thread Starter bdegarmo53

    (@bdegarmo53)

    Mahfuzur, thanks for the comment. Unfortunately, that doesn’t really help. I consider my local pickup zone to be a 25 mile radius from where we are. Some of my products can be shipped easily within that area, and some people would prefer to pay for the shipping than to drive here. So I don’t wish to limit them to local pickup only, as you suggest. However, some of my products ARE local pickup only. Even though those products are given Local Pickup as their shipping class, I see no way to show that limitation in the cart/checkout pages without also limiting the products I can offer shipping for. Woo prioritizes shipping zones over shipping classes. Greater flexibility, IMO, would be to prioritize shipping classes and allow users to define shipping zones/costs for each class.

    Plugin Support shahzeen(woo-hc)

    (@shahzeenfarooq)

    Hi there!

    Thanks for sharing more details about your situation! I understand the challenge you’re facing with balancing shipping flexibility for certain products while restricting others to local pickup only.

    You’re correct that WooCommerce prioritizes shipping zones over shipping classes, which can limit the granularity of shipping options for specific products. Unfortunately, there isn’t a built-in feature to prioritize shipping classes in the way you’ve described.

    However, you can achieve this through customization or by using a custom plugin. Additionally, you can refer to this article: How to Disable Shipping Methods for Certain Products, which may help you skip specific shipping methods for certain products.

    Please note that we do not provide support for customizations. If you need more in-depth support or want to consider professional assistance for customization, I can recommend WooExperts and Codeable.io as options for getting professional help. Alternatively, you can also ask your development questions in the  WooCommerce Community Slack as custom code falls outside our usual scope of support.

    Thread Starter bdegarmo53

    (@bdegarmo53)

    Thanks, Shahzeen. I had come to the conclusion that I would need to find a 3rd party plugin to deal with this issue. Your recommendation on the article for disabling shipping methods is a big help toward that goal.

    Zee

    (@doublezed2)

    Hello bdegarmo53,

    Thank you for your reply.

    We are glad to be of your assistance.

    Please don’t hesitate to contact us again if you have more questions or concerns.
    We are here to help 🙂

    Best regards.

Viewing 11 replies - 1 through 11 (of 11 total)

The topic ‘Shipping Zone order?’ is closed to new replies.