Shopify problems, solved

Specific things Shopify cannot do, and what actually fixes each one — the free workaround where there is one, the app worth paying for with its real price, and the point where building your own starts to make sense. If an existing app solves your problem, these pages say so.

Cart & checkout rules

One per customer, and the guest who ordered five

A guest checkout carries no customer record, so order-count rules cannot fire. Requiring sign-in closes it and costs you Apple Pay in the cart.

Stop pre-order and in-stock items being bought together

The split-shipping toggle does not do what its name suggests. What actually blocks a combination, and the plan rule no competing page publishes.

Stopping orders when you can only make so many a day

No daily order limit exists. Stock caps a product per date, and Shopify's Bundles app shares it across products. Orders and a customer-picked date are the gaps.

Customers & accounts

A monthly allowance, when Shopify only counts per link

The native limit is per download link, not per person or per month. What every app's "monthly" actually means, and the allowance that has to be built.

Cleaning up duplicate customers in Shopify

The admin merges two profiles at a time and never tells you which ones are duplicates. What survives a merge, and how to handle thousands.

Making a subscriber stay for the first three months

The minimum-commitment field is real and nothing enforces it. Which apps actually hold a subscriber to three months, and why none of the listings read for this page mentions it.

Merged a customer in Shopify, still two people in Klaviyo

Shopify announces every merge; Klaviyo's integration documents nothing that acts on it. How to merge the Klaviyo side, and the trap that undoes it.

When Shopify refuses to merge two customers

Nine conditions block a merge, and five of them are permanent. For those duplicates the answer is linking the two profiles, not merging them.

Why your POS keeps creating duplicate customers

POS makes a profile from the name on a card, with no email or phone, so it never matches an existing customer. Shopify can find them; merging is the hard part.

Your customer lost the email, and the files were in it

The download link lives in an email and on the order status page. Nothing native gives a buyer a library of their own, and the apps that do are mostly built on classic customer accounts.

Inventory & stock

Automatically mark down Shopify products that don't sell

Shopify's markdown tips skip slow lines and Flow cannot reprice. What the two apps do, and the ladder that keeps your own exceptions.

Finding the Shopify products that have never sold at all

The reports exclude zero-sale products by design. The export that works, the two free tricks, and how the list stops being a monthly chore.

Keeping the last few units for the people who walk in

There is no per-channel quantity in Shopify, and safety stock hides the units from the till too. The honest fix is a threshold, not a fake number.

Retiring a product without breaking the links to it

Archiving hides the page; Unlisted keeps it reachable by link; a Flow workflow can redirect it the moment it is archived. None of them knows the replacement.

The 404s left behind by products you already archived

Google keeps crawling archived products long after they are gone. The native clean-up, the ones worth redirecting, and the ones Google itself says to leave as 404s.

The closing stock figure, and the stock it leaves out

The native month-end report totals cost per item against closing quantity. It covers only variants adjusted or ordered in the last three years, and only back to October 2023.

What a stocktake discrepancy actually cost you, after Stocky

Native counts and adjustment reports give you units. Stocky gave you the cost of the discrepancy too. The value is now a calculation you run yourself.

Writing down why the stock moved, when there is no box

The admin offers seven reasons and no way to add your own; the API accepts seventeen, including "other". What survives 180 days, and what a report can never tell an auditor.

Your second-hand stock is going to Google as brand new

Google requires a condition on used and refurbished products and disapproves what breaks the rule; Shopify documents a Condition column and says the Google channel ignores it. The barcode demand is a second, separate fault.

Orders & fulfilment

A longer window for exchanges than for refunds

One window, one shipping setting, one restocking fee, whatever the customer asked for. The cheap apps give the shopper an exchange button; the rule behind it is a different product at a different price.

Four people on one order, and nowhere for their names

Quantity four on one line is one record in Shopify. Collecting a name per person needs theme code, a Plus checkout block that asks once, or an app — and the most recommended app shape asks after payment.

Staff who can see every location's orders

Admin permissions cannot be narrowed to one location, and the location filter cannot be saved into a view. A Flow tag plus a saved view gives each store its own list — but no app can hide the rest.

Staff who can see every sale the store makes

Reports, Home and Dashboards are three separate permissions. All or nothing is the only choice Shopify offers, and B2B rep restrictions leak through Analytics by Shopify's own admission.

Taking a damage deposit when you cannot hold their card

Nothing that runs through Shopify checkout freezes funds. It either charges and refunds, or stores the card for later — and the two behave very differently when the kit comes back damaged.

Which serial number went to which customer

Stock is a quantity per variant, so no native field holds the serial, IMEI or lot code of the unit that shipped. Of six listings read, the ones that record the serial and the ones that run the warranty are not the same apps.

Point of sale

Hide products not stocked at a location in Shopify POS

Every till shows every product. What Retail Markets fixed in August 2025, what it did not, and why the free workaround never touches search.

Pricing & quantities

Charging by width and height, or by the square metre

Apps calculate a price from a measurement well and cheaply. The part their listings skip is how that figure reaches the checkout — as a real line price, a discount, a hidden variant or a draft order — and each answer changes what your reports say afterwards.

Charging the real weight after you have cut and packed it

You cannot collect more than the customer authorised. Why that makes "price high, refund down" the only workflow that holds, and what the weighing step actually costs you.

Selling in decimal quantities on Shopify — what actually works

Quantity is a whole number everywhere, confirmed by staff four times. The three simulations merchants actually live with, and what each one costs.

Product options & personalisation

A different name on each of the three mugs

A cart line is a variant plus its personalisation, so different text splits it and matching text merges it — and the plus button inherits.

Holding a job until the customer approves the proof

Fulfilment holds are native, free on every plan and work per line. There is no hold reason for waiting on a customer, and they are told nothing.

Letting a customer attach their artwork to the order

The upload field is native and what it attaches is a URL on the line. The size limit and the retention period are undocumented.

Showing a product's country of origin to the shopper

The origin field lives on the inventory item, where no theme can see it. What that means in a tariff year, and the mirror that puts it on the page.

The filter shows a hundred values and you sell eight hundred

A filter displays 100 values on the storefront while the admin app shows you 1,000, and a collection over 5,000 products displays no filters at all. Every published ceiling, and the one you cannot configure around.

The lab report on your product page is not the one in their jar

One file metafield holds one PDF per product, and Shopify has no batch dimension to hang a second one on — so the certificate a shopper downloads is the newest one, not theirs.

What GPSR needs on your product page, and what Shopify gives you

The new Disclosures field covers warnings and cannot be told what "the EU" is. The manufacturer, the responsible person and the batch number have no field at all.

When your product needs a fourth choice

Three options is a ceiling, not a setting. Combined listings, free Bundles, an options app, or splitting the product — and only some of them keep stock per combination.

Purchasing & suppliers

Buying the same product from two suppliers

One Vendor field, supplier codes that default to yours when none is on file, and nowhere native for lead times, minimums or case packs.

Getting freight and duty into what a product actually cost

Freight goes on the shipment and stops there. The two ways to spread it across units, and why your profit report is overstated until you do.

Getting your supplier data out of Stocky

Read-only export lasts "at least 90 days" with no published end date, reinstalling is impossible, and five things about each supplier never come out at all.

Keeping cost per item right when your buying price moves

One static number per variant, nothing recalculates it, and profit uses the cost recorded at the time of sale. Why margins drift and what to do.

Reordering automatically when stock runs low

Flow's low-stock alert is free. What nothing can do is create the purchase order at the end of it — Shopify's API will let an app read one and not make one.

Sending stock back to a supplier

No return-to-supplier button and no supplier credit — but a transfer with a blank destination records the stock leaving. What it captures and what it misses.

Supplier SKUs on Shopify purchase orders: the hidden field

The supplier SKU field exists but is write-only and invisible in the admin. Why merchants raise fake purchase orders, and the Stocky shutdown making it urgent.

Why a short or damaged delivery leaves no record in Shopify

Rejecting a line while receiving changes no quantity, so it never reaches Shopify's adjustment history. Why short and damaged deliveries leave no trace, why none of the five apps read records the reason, and what you have to capture yourself.

You cannot print labels for the stock you just received

Scan-to-receive is native and free in the admin. Printing labels for what you just received is not, Shopify's own label app sits at 2.3 stars, and none of the fourteen listings read joins the two.

Your cost was wrong for months — what can still be fixed

Fix it forward, rebuild the true history from your own exports, and know the one thing that cannot be done — making Shopify's profit report restate a sale it already recorded.

Shipping & delivery rules

Charging extra postage for one awkward product

Its own shipping profile adds the surcharge. Rates with matching names add up; mismatched ones collapse to the cheapest, named just "Shipping".

Exclude products from Shopify's free shipping threshold

Heavy items qualifying for free shipping, digital goods inflating the cart, and the discount code that overrides every app.

Hiding a shipping method when one item is too heavy

Weight rates look at the whole order, and a weight cap is not a block. A heavy-items profile works natively, an app offers to keep it sorted, and a rule on each item's own weight runs at checkout.

Making one product collection-only

No pickup-only setting exists, but a shipping profile with no rates gets there. Mixing collect-only with shippable items is where it falls over.

Not selling a product in one country

Market catalogs do this natively on every plan. The shopper gets a redirect to your homepage, not an explanation — and new products are included by default.

Not shipping perishables on a Friday

No shipping-days setting exists, but a scheduled hold does the job. A manual delivery estimate still counts the weekend in transit; fulfillment time is the lever.

Refusing orders to addresses you cannot deliver to

No native postcode blocking for posted orders. A checkout rule works, but only once the address is typed, and the message does not always show.

Setting HS codes across a large catalogue

No default HS code exists, and it sits on every variant. The bulk editor, the inventory and duties spreadsheets and a small app fill thousands; the product CSV cannot.

The box is huge and the thing inside weighs nothing

Carrier-calculated rates already carry dimensional weight. What breaks is package selection: one store default box quotes every multi-item order, and the per-variant box you set is ignored.

Where Shopify's commercial invoice went

No removal is documented. The customs form comes only with Shopify Shipping labels, from ten countries, printed only when paper is needed. Apps cover the rest.

Why a subscription and a one-off can cost two lots of postage

Shopify says one chosen method covers both parts. A second charge usually comes from an app supplying its own rate — check that before building a rule.

Wholesale & B2B

Checking a trade licence before you approve the account

The upload is native, the checking is not. One profession has a free app that really queries the state board; the others are sold affiliation checks instead.

Give wholesale customers their own prices on Shopify

Native B2B reached every paid plan in April 2026. The three-catalog ceiling, six apps with verified prices, and where rules of your own take over.

Keeping resale and exemption certificates in order

The exemption flag and 74 named codes are native. The certificate, its expiry and the chasing are not — and the flag does not expire on its own.

Setting a minimum order for wholesale customers

Minimum quantities are native on every plan, per variant. A minimum order value is a Plus feature — and the two get confused constantly.

Showing a product to trade buyers and nobody else

Native, and it needs two gates — published to the online store and in the right catalog. Theme hiding only hides the rendering.

Stopping a wholesale order when the account is over its limit

Payment terms are a due date, not a limit. Checkout can be stopped, but only against a number something else has already written in.

Turn emailed spreadsheets and POs into Shopify orders

No native order import exists. The three routes that do work, why draft orders email your customer whether you like it or not, and what each costs.

What Shopify B2B gives you on each plan

B2B reached every paid plan in April 2026. What is on Basic, what needs Advanced, what stays on Plus — each line dated and sourced.

When one person orders and someone else has to approve it

Checkout to draft holds every order for review — but the reviewer is the merchant. There is no approver role inside the buying company.

When two of your price rules disagree about one product

Overlapping catalogs resolve to the lowest price silently, volume pricing cancels your catalog adjustment, and discount codes stack on top.