Migrating to a new Shopify store, and you sell cigars and tobacco. Migrate everything to a new Shopify store.
You are moving to a new Shopify account — whether because a payment processor cut you off, you are restructuring your business, or you simply need a fresh start. The email to yourself feels straightforward: export the old store, import into the new one, done. Here is what actually happens. Shopify's own CSV export cannot carry metafields, metaobjects, orders, gift card codes, videos, themes, menus, discounts or redirects. Those things exist in your store right now. They will not come with you on their own. Even when data does move, reference-type metafields copied naively will still point at objects in the old store, so pages render with sections silently empty — your customer sees a broken layout and you do not know why. This is not a failure of process. It is the real shape of the problem. The only way through is to move deliberately, then run the whole migration a second time and compare counts — products, orders, customers, redirects, all of it — so you know what is actually missing before you flip the switch.
Move all of it into a new store, from $247
One-time packages, no per-record metering, no quotes. The order form unlocks the moment you pay, counts are matched against your old store, and the entire migration then runs a second time — the second pass has to create nothing.
What you are looking at
- CSV export sits in your email, but it contains only SKUs, prices, handles and text fields — no images, no metafields, no order history, no discounts
- The new store builds, products look half-finished, and redirects are gone so search traffic drops immediately
- Gift card codes you issued do not appear anywhere, and no one can tell you how to get them back
- Reference metafields that pointed to collections or pages now point at nothing, leaving theme sections blank
- Custom menus you spent hours building are not there, so navigation is broken
The real urgency is data loss, not speed. A reference-type metafield pointing at the old store will stay broken once you flip traffic to the new one, and by then fixing it means downtime. The genuine deadline is the period before you go live — you must validate everything works while you still have both stores running and can check the old one. After cutover, the old store is usually deleted and there is no way back.
Why it happened — specifically for cigars and tobacco
Stripe's policy treats tobacco as a restricted business, which means Shopify Payments cannot process it without a specialist underwriter. The primary trigger is the category itself — cigars and pipe tobacco sit on Stripe's restricted list, and a merchant flagged as tobacco will be declined by the default processor. The secondary trigger is undocumented age verification: if your checkout does not prove the customer is of legal age, even a licensed merchant will be declined on the grounds of insufficient controls.
Rule out the easy fix first — then deal with the real one
Shopify does not document a route for tobacco, and the reason is straightforward: there is no single pathway that works everywhere. What merchants typically try first is applying directly to Shopify Payments, which fails because Stripe's underwriting team will see the MCC before any other detail. The honest move is to skip that application and go straight to a specialist acquirer who underwrites tobacco accounts on purpose. They exist, they know what paperwork to expect, and they are faster than trying to convince a generalist processor that your case is an exception.
It only helps if all of these are true:
- Your business must hold a state tobacco license and be registered to collect excise tax.
- You must have documented, compliant age verification at checkout — not just a checkbox.
- Your store cannot display or sell to jurisdictions where tobacco sales are prohibited or restricted.
- You must keep current copies of all required state and federal filings.
- Your merchant processing history cannot show prior chargebacks or disputes related to age-restricted sales.
If any one of them does not hold, you are where everyone else on this page is: you need a store built around a gateway that will actually accept you — and everything you have built has to move into it without losing the catalog, the customers, the order history or the rankings.
What this means for a business like yours
🔞 Requires age verification, and shipping is regulated in its own right
Migration means your age-verification flow moves too, and that flow is not just a Shopify setting—it is often a third-party app whose configuration, rules, and API keys do not travel in a standard export. You also need to know which states or countries require you to be registered as an age-restricted seller, because that registration is tied to your business entity, not your store URL. If you are using a carrier with adult-signature rules, those rules apply to the new store the moment you start shipping from it. Before you cut over, test the entire verification and checkout flow on a test order to a high-restriction state. A broken age gate does not just lose sales—it exposes you to carrier penalties and state-level compliance problems.
💎 High average order value, so fraud and disputes cost more per event
A single dispute or fraud event on a high-value order is material to your reserve and your processing relationship, so your new store's fraud rules—velocity checks, address matching, 3D Secure settings—must be configured before you migrate traffic, not after. Those rules live in your payment processor, not in Shopify, so they do not move automatically. Confirm your processor has copied your rule set to the new gateway account. Also confirm that your address verification and CVV matching rules are identical between old and new, because a sudden drop in fraud detection or a change in decline thresholds will show up immediately in your dispute rate. High-value orders attract more scrutiny from underwriters, so any hiccup in fraud screening during migration looks like a control failure. Test a high-value transaction on the new store before you cut over, using the same card type and geography as your typical customer.
📦 Thousands of SKUs, deep variant matrices, distributor feeds
Your metafields and metaobjects do not travel in Shopify's CSV export, which means any custom data—size matrices, distributor stock levels, compliance tags, pricing rules—either gets rebuilt by hand or gets lost. For a catalog of thousands of SKUs, hand-rebuild is impossible. You need a migration tool or script that can read your metafield schema from the old store and write it to the new one, field by field. Also watch for reference-type metafields that point to other products or collections: if they are copied naively, they still point at objects in the old store, so pages render with sections silently empty. Your distributor feeds—if they push data to product fields—will also break during migration because the feed is configured against the old store's API endpoints. Before you migrate, audit which custom fields are reference-type and which are populated by external feeds, then arrange for those to be re-pointed or rebuilt on day one. A catalog-heavy store that loses reference resolution looks live but serves broken pages.
What you actually have to fix
Underwriters do not change their minds because you asked. They change them because the facts changed. For cigars and tobacco, these are the facts that move the decision:
Obtain and file your state tobacco dealer's license
This is the single highest-yield fix, and it is the one document that changes a specialist acquirer's assessment of your application from 'risky' to 'legitimate business'. Most tobacco merchants already have this paperwork because they sell in person or through other channels. If you do not have it, your state's revenue or health department can advise on requirements. An acquirer will ask for a copy certified within the last 12 months. Without it, you will not pass underwriting, regardless of your other documentation.
Implement mandatory age verification at checkout
Your checkout must prove the customer is of legal age before payment is taken. A simple checkbox is not sufficient — you need a documented process such as third-party age verification, ID number capture, or date-of-birth confirmation tied to a validation service. Document your method in writing and be ready to show the acquirer exactly how it works. This is the second-highest-leverage fix because it addresses the specific concern that drove you to restricted status in the first place.
Compile a complete processing history from all prior accounts
If you have processed tobacco sales anywhere else — even a small amount — get statements, chargeback reports and processor documentation from every account you have used. Specialist acquirers want to see that you have not been repeatedly declined or terminated for age-verification failures or fraud. A clean history on a prior account is a strong underwriting signal. If you have had accounts closed, be transparent about why and what you have fixed since then.
Write a clear product and business description for the underwriter
In your application narrative, explain what you sell, how long you have been selling it, what your average order value is, and whether you sell online only or also in a physical location. Tobacco merchants with established retail operations and clear business longevity are treated as lower risk. If you are new online but established offline, say so explicitly. The underwriter is trying to distinguish between a genuine business and a front, and boring operational detail is reassuring to them.
What underwriting will ask you for
- Current state tobacco dealer's license or equivalent state registration document
- Proof of federal excise tax registration and compliance
- Bank statements for the last 3–6 months showing tobacco-related revenue
- Written age-verification methodology describing your checkout controls
- Product list or catalog showing SKUs, descriptions and price points for your top 20 items by revenue
- Ownership and beneficial-ownership documentation for all principals
- Processing history from any previous payment processor, if applicable
Getting underwritten for cigars and tobacco
High-risk acquiring is an entire industry that exists for businesses Stripe declines, and several of them publicly underwrite cigars and tobacco. What none of them will tell you up front is the number that actually matters: what your business gets offered, once they have seen your volume, your claims and your history. Rate, reserve and settlement terms vary enormously between applicants in the same category.
Get real quotes from high-risk processors that accept cigars and tobacco
Six taps and three details. We put it in front of the high-risk acquirers that actually underwrite your category and come back with what they will offer you — rate, reserve and settlement terms — so you are comparing real numbers instead of cold-emailing brokers for a fortnight.
The recovery playbook
- Audit what your store actually containsList everything that matters: products, orders, customers, discounts, redirects, gift cards, navigation menus, theme choice, metafields and metaobjects. Do not assume you know. Log into your current store and count. Orders and gift card codes will not export through CSV — you will need those lists for manual verification later. Make a spreadsheet with baseline numbers for every category. This is the document you will compare against in step 5.
- Get a verified copy of your store out while you still have access — todayBefore you create the new account, request a full backup from Shopify support in case something goes wrong. This is the step people skip, and it is the only one with a deadline you do not control. A migration is not an instant thing — it can take days or weeks, and you will still have the old store running. But the moment you delete it, a full backup becomes impossible. If a metafield is misconfigured in the new store, or a theme does not carry over, or reference data points nowhere, you may need to look at the old store to understand why. Once it is gone, that information is gone. Backups are the only insurance you have.
- Export and move what CSV can carry, manually handle what it cannotRun Shopify's CSV export. It will contain products, variants, prices, handles and text fields. It will not contain metafields, metaobjects, orders, gift card codes, videos, themes, navigation menus, discounts or redirects. Move the CSV into the new store. Then handle the missing categories one by one: metafields must be recreated (some third-party apps can help, but none are universal); orders must be exported from reports as a separate archive; gift card codes cannot be read through any Shopify API and must be re-issued; videos and media must be re-uploaded; themes must be selected and configured again; navigation menus must be rebuilt; discounts must be recreated; redirects must be re-entered or exported from a third-party SEO app if you used one.
- Check reference metafields point to the new store, not the old oneIf you use reference-type metafields — fields that link to collections, pages, products or other objects — those references will still point at the old store after migration. Pages will render with sections blank or broken. You must systematically update each reference to point at the equivalent object in the new store. If a metafield references a collection called 'Summer Dresses', find that collection in the new store and re-link it. This is tedious. There is no way around it. Skipping it is why new stores launch with invisible sections.
- Run the migration again, count everything, and compareBefore you go live, treat this as a full second migration. Export the old store's data again. Import it into the new store again, overwriting what is there, so you capture any changes made in the old store since you started. Then count: products in old store versus new store, orders in old store versus new store, customers, redirects, discounts, everything. If all counts match, you have moved what can be moved and you know what is missing. If a count does not match, find out why before you switch traffic over. Once the old store is deleted, you cannot go back. This step is what separates a successful move from a move that looks successful until customers and search engines find the broken pieces.
And then there is the part that actually loses businesses
If you do need a new store, the payments problem turns out to be the easy half. This is what is sitting in your current store right now, and what happens to each piece when someone tries to move it by hand:
Why this category in particular
A tobacco store's catalog is dangerous to move by hand because age-verification and compliance metadata live in metafields and custom objects. Restricted-product flags, age-gate rules, state-specific visibility toggles and excise-tax calculations are all stored as reference or boolean metafields that a CSV export cannot carry. If those fields are copied naively, they keep pointing at the old store's data or are silently lost, leaving products visible to minors or lacking required tax data. On a regulated product category, that failure is not cosmetic — it is a compliance breach.
| What you own | How much of it | What breaks doing it by hand | What we do instead |
|---|---|---|---|
| Product images | 5,100images≈ 21 hrsbulk re-upload, ~15 sec each | By handthe CSV carries image URLs and alt text, but they point at your OLD store's CDN — so the moment the old store goes, every image 404s. Re-upload and Shopify appends a dedupe suffix to the filename, which breaks every theme section and product description that referenced the original URL | Automatedevery file re-uploaded through the API with its alt text and variant attachment intact, its content type preserved so image-restricted fields still accept it, and every reference to the old URL rewritten |
| Product descriptions | 850descriptions≈ 2 hrsone pass to repair inline image links — the CSV carries the text | By handdescriptions are full of inline images and links pointing at the old store's CDN. Paste them into the new store and the text survives perfectly while every embedded image quietly dies — which you usually discover from a customer, not from a report | Automatedbodies copied verbatim, then a second pass rewrites every source-CDN URL inside them to the re-uploaded file on the new store |
| Product attributes & variants | 2,550variants≈ 45 minthe CSV carries these; the time is verifying option order | By handoption ORDER is part of the product's identity. Rebuild "Size, Colour" as "Colour, Size" and every theme swatch, saved customer URL and app that keys on variant position breaks — silently, because the product page still renders | Automatedvariants upserted by SKU with option names and order preserved, so swatches, deep links and app data keep working |
| Metafields & metaobjects | 6,800metafields≈ 45 hrsonly the reference, JSON and metaobject fields, ~1 min each | By handthe product CSV carries simple text and number metafields — but not metaobjects, and not reference or JSON types, which is exactly where app data and theme content live. Reference fields are the real trap: copy the value and it still points at objects in the OLD store, so the page renders and the custom block is silently empty | Automatedwritten in dependency order after their targets exist, with embedded references re-pointed at the new store's objects — and any value whose reference cannot be resolved is dropped rather than written broken |
| SEO data & redirects | 1,193records≈ 5 hrsredirects one at a time, plus a handle audit | By handany handle that changes becomes a dead URL with no redirect, and existing 301s are not in the product CSV at all. Years of accumulated ranking and backlinks end up pointing at pages that no longer resolve — the most expensive thing on this page to get wrong, and the slowest to notice | AutomatedSEO titles, meta descriptions and handles carried across, and every existing 301 recreated, so nothing that used to rank starts 404ing |
| Your custom theme | 1theme≈ 6 hrs2–10 hrs depending on how customised it is | By handa theme is not just its files. The settings, section content and block ordering are stored against the store, so a file copy gives you the layout and none of the content. Hardcoded asset URLs and tracking snippets also still point at the old store | Automatedyour live theme pulled and pushed as-is, then scanned for tracking snippets and hardcoded URLs that need re-pointing |
| Product videos | 12videos≈ 48 minre-upload and re-attach, ~4 min each | By handthe product CSV does not carry video or 3D media, so every one is a manual re-upload. They also cannot be pulled straight from a remote URL — the bytes have to be downloaded and staged first, and a wrong content type lands the file as a generic attachment that media-restricted fields then reject | Automatedvideo bytes downloaded, staged through a proper upload target, re-attached to the right product, and verified as processed rather than silently failed |
| Customers | 2,400customers≈ 2 hrsCSV import, then cleaning up the rows that fail | By handthe importer works, but marketing consent is the exposure: the CSV carries the current opt-in state and NOT the timestamp or source behind it. Re-opting someone in is a compliance breach, dropping them burns list revenue you paid for, and you cannot prove which happened afterwards. Default-address designation is also lost | Automatedcustomers upserted by email with every address, the default-address designation, and email and SMS consent states and timestamps preserved exactly as they were |
| Order history | 4,100orders≈ 8 hrsa paid third-party importer, plus a day of mapping and reconciliation | By handShopify's own CSV importer cannot create orders at all, so the hours here assume you buy a third-party importer — key them in by hand instead and 9,400 orders is closer to 390 hours, which is why nobody does that and why order history is simply abandoned in most DIY moves. Then support cannot answer a warranty claim, repeat-purchase segments are empty, and every returning-customer flow starts from zero. Getting the mapping wrong duplicates orders or re-dates them to today, and both are worse than not importing at all | Automatedfull order history recreated through the API with line items, properties, customers re-associated, original dates and tracking numbers intact |
| Navigation menus | 3menus≈ 1 hrsabout an hour to rebuild and relink them all by hand | By handmenu items store resource IDs, not paths, so nothing about them is portable — every link has to be re-pointed at the equivalent collection, page or product on the new store | Automatedmenus rebuilt with their nesting, and every item re-pointed at the equivalent object on the new store |
| Discount codes | 65discounts≈ 1 hrsabout 1 hr via the discount CSV, or ~3 hrs rebuilt by hand | By handthe discount CSV covers basic codes, but automatic discounts, quantity breaks and combination rules are not in it and have to be reconstructed by hand. A subtly wrong rule is worse than a missing one, because nobody notices until it has been over-discounting for a fortnight | Automateddiscounts recreated through the API with their rules, usage limits and dates intact, including automatic and free-shipping types |
| Blogs & pages | 63articles & pages≈ 4 hrsrecreated one at a time, ~4 min each | By handno CSV route for either. Articles also have no SEO fields of their own — their title and description tags live in metafields — so a hand-rebuilt blog loses its SEO even when every word of the text is right | Automatedarticles and pages recreated with authors, tags and publish dates, their SEO written to the metafields Shopify actually stores it in, and inline image URLs rewritten |
| Apps & app data | 12apps≈ 12 hrsabout 1 hr per app to reinstall, reconfigure and re-test | By handmost app data lives in metafields on your products and customers, so reinstalling the app gets you an empty app: reviews gone, subscription plans gone, loyalty balances gone, bundles gone. Flows and automations have to be rebuilt by hand and re-tested, and anything with its own billing has to be re-subscribed | Automatedthe metafield data your apps rely on migrates with the products and customers it hangs off, so a reinstalled app finds its data waiting instead of an empty store |
See these numbers for YOUR store, free
The figures above are a typical store in your category. The demo scan connects read-only to yours and counts the real thing — every product, variant, image, customer, order and metafield — then tells you exactly what a migration would carry across. No card, and it never writes to your store.
▶ Run the free demo scanDoes this need a new company?
You do not need a new legal entity to apply for specialist merchant processing. A new LLC or corporation will not reset your payment history or change an underwriter's view of your compliance posture. What matters is your state tobacco license, your excise documentation and your age-verification controls — those are tied to the business, not the corporate form. If you have been declined once, a new entity does not erase that decline from the processor's memory.
Frequently asked
Which payment gateway will actually take a cigar and tobacco store?
Several high-risk acquirers publicly advertise tobacco underwriting, and they route through gateways Shopify supports natively. Authorize.net on a high-risk merchant ID, PaymentCloud, Corepay and Easy Pay Direct all have tobacco experience. Specialist ISOs focused on nicotine and tobacco are also an option. The gateway is rarely the constraint — the merchant account is. What matters is whether the acquirer's underwriting team believes your age-verification controls and your compliance posture are genuine, not which payment button you use.
Why was I declined if I already have a state tobacco license?
A state license proves you are a legal business, but it does not prove you are a low-risk payment processor's problem. The acquirer is looking for three things: documented age verification at checkout, a clean processing history, and evidence that you understand and comply with the excise-tax obligations in your states. If your prior account was closed for chargebacks or disputes, or if your checkout is a simple clickthrough without age gating, the underwriter will decline you even if your license is current. Fix the verification and reapply with a complete compliance narrative.
Will my product data survive a store migration to a new processor?
Not automatically, and not the compliance-critical parts. Your product-level age gates, state restrictions, excise-tax flags and reserve-calculation rules live in metafields that Shopify's native CSV export cannot carry at all. If you move stores by hand using CSV, those data points are lost, and your new store will sell your restricted products without age verification. A proper migration tool that reads the Shopify GraphQL API can carry metafields forward, but CSV alone cannot. Test the migration on a staging store before going live.
What reserve should I expect, and for how long?
Specialist tobacco acquirers typically hold a rolling reserve of 5–10 per cent of your monthly volume, held for 90–180 days depending on your processing history and chargeback rate. Some acquirers release the reserve in tranches as your history improves; others hold it for the full term and release it all at once. Ask the acquirer explicitly how their reserve schedule works before you sign, because it directly affects your cash flow. A new account with no prior tobacco processing history is more likely to face the higher end of that range.
Can I just export and import the CSV and call it done?
Not unless your store contains only text fields and product SKUs. Shopify's CSV export leaves behind metafields, metaobjects, orders, gift card codes, videos, themes, menus, discounts and redirects. The things most stores rely on. You can move the CSV, but then you have half a store. You need a plan for each missing category before you go live.
What happens to my customer data and order history?
Orders do not export through CSV. You must download them separately from your reports or ask Shopify support for an export. Customer email addresses and account records do not appear in CSV either — those must be exported separately as well. Customer data is critical, especially if you have consent timestamps for email marketing. Treat orders and customers as a separate export, verify the counts match the old store, and keep that list safe before you delete the old store.
Will my gift card codes transfer?
No. Gift card codes cannot be read through any Shopify API — no one can extract them, not even Shopify. That means they cannot be automatically moved. You must issue new gift cards in the new store. If you have outstanding balance on old codes that you want to honor, you will need to track and re-issue manually, or accept the loss. Check what gift cards you have issued before the move so you know what you are dealing with.
What about my theme and navigation menus?
Themes and menus do not export through CSV. You must select a theme in the new store and configure it from scratch, or pay a developer to replicate your current theme's customizations. Navigation menus must be rebuilt manually. If you used a third-party app to manage menus, check whether that app can export and re-import. The theme and navigation are visible to every customer, so do not skip them.
How do I know nothing was left behind?
Count everything. Before you go live, export the old store's data one more time. Import it into the new store again. Then compare: product count, order count, customer count, discount count, redirect count. If counts match, you have moved what can be moved. If a count is off, investigate why before you switch traffic. Do not assume the migration is complete until you have verified it. Once the old store is deleted, verification becomes impossible.
Move everything, verified twice, from $247
Pick a package and the migration order form unlocks immediately. Your existing store is only ever read from — we never write to it, so nothing you still have can be made worse. How the migration runs, step by step →