Shipping Limits: ship each product only where you allow.
Limit where each product can ship by state, ZIP or city. Your lists, applied at checkout, on the classic checkout and the checkout block.
$49a year, one store
Per product or per categoryLocal pickup never blockedTest an address first

Test any address with the same check checkout uses. Screenshot from our test store.
The facts
- What it is
- A WooCommerce plugin that stops an order when a product cannot ship to the address the customer entered, using lists you write.
- Places
- Country, state, city and ZIP. State names such as California match the code CA. A city matches the whole name.
- ZIP matching
- 90210 matches 90210 and 90210-1234. An exact ZIP+4 matches only that value. A trailing star is a prefix, so 902* matches every ZIP that starts with 902.
- Groups
- Two to start: one blocks unless a rule allows it, one allows unless a rule blocks it. Map your categories onto a group.
- Per product
- Only these places, not these places, or no limit. The product setting wins over the category.
- Conflicts
- The most specific match wins. A tie goes to block.
- Price
- $49 per year for one store. Renews yearly; cancel any time from your account. Updates and support included while active. The plugin keeps working if you stop renewing; it just stops getting updates. Made by MMJ eCommerce, a QWEBMASTER product.
- Not
- A rules database. The plugin does not know where a product may ship and does not decide what the law allows. It applies your lists.
Is it right for your store?
For stores that ship some products, to some places.
A good fit if
- You ship CBD, hemp or accessories, and each product has its own list of places it may go.
- You need different rules for different categories, such as THC and CBD.
- You want the order stopped at checkout with a clear message, not cancelled later.
- You also offer local pickup and do not want it limited.
Not the right tool if
- You want the plugin to tell you where a product may ship. It only compares addresses with your lists.
- You need to limit by billing address alone. It checks the shipping address.
How it works
Write your lists, test, switch on.

- Map your categories.Put each category in the group that blocks by default or the one that allows by default.
- Add rules.Allow or block by country, state, ZIP or city. Leave a field blank when it should not matter.
- Test an address.The tester runs the same check as checkout and shows which rule matched. It places no order.
- Switch the check on.It ships switched off. From then on, checkout stops any product that cannot go to the shipping address.
A missing ZIP, state or city stops the order with a message asking for the address. It does not say the place is blocked.

A rule matches when every field you fill in matches the shipping address. The most specific match wins.
What you get
Your lists, checked at every checkout.
The customer sees which products cannot ship to their address, and their cart stays as it was.
- State, ZIP or cityPlus country. Full state names and two-letter codes both match.
- Category groupsBlock by default or allow by default, with your own rules on top.
- Product overridesOnly these places, not these places, or no limit for a single product.
- Clear messagesThe message names every blocked product. Cart lines stay, so the customer can change the address or remove an item.
- Pickup stays openLocal pickup is not limited, and a cart with nothing to ship is not checked.
- Address testerCheck any address against your rules before the check goes live.
Straight answers
What it does not do.
We would rather you know before you buy.
Requirements
- WordPress
- 6.0 or later, tested to 7.0
- WooCommerce
- 7.0 or later, tested to 10.5
- PHP
- 7.4 or later
- Version
- 1.0.0
- It does not look up where a product may ship. It compares the shipping address with the lists you wrote.
- It does not decide what the law allows. Keep your lists current when rules change or you add products.
- It does not guess partial ZIPs. 9021 does not match 90210. Use a trailing star for a prefix.
- It does nothing until you switch it on. Installing it changes nothing at checkout.
Does this look up where a product may ship?
No. It compares the shipping address with the lists you wrote.
Can one product follow different rules from its category?
Yes. A product can say only these places, not these places, or no limit, and the product setting wins over the category.
How do ZIP codes match?
90210 matches 90210 and 90210-1234. An exact ZIP+4 matches only that value. A trailing star is a prefix. 9021 on its own does not match 90210.
What does the customer see?
A message at checkout that names every product that cannot ship to the address. Their cart stays as it was.
Is local pickup affected?
No. Local pickup is not limited, and a cart with nothing to ship is not checked.
Does the license have to be active?
No. The license only offers updates. The check works the same without one.
More plugins
Works well with.

Card Payments
Take card orders online and charge them on your own terminal.
See Card Payments
Age Gate
Ask a yes or no question or a date of birth before visitors see the store.
See Age Gate
Patient Registration
Patients upload a recommendation and a driver license. You review and approve.
See Patient Registration
Add Shipping Limits to your store today.
$49 a year for one store. Install it, set your rules, switch it on when you are ready. Cancel any time.
