Free Shopify store auditSpeed, SEO and conversion leaks — no cost, no obligation.
Claim it
Thriftizer Solutions LLPShopify Select Partner
Book a Growth Audit
Shopify Nov 6, 2026 11 min read

WooCommerce to Shopify for Kerala Export Brands: A Migration Map

A WooCommerce to Shopify migration plan built around export catalogues: HS codes, Ayush and FSSAI fields, AED price lists, redirect maps and what actually breaks.

WooCommerce to Shopify for Kerala Export Brands: A Migration Map

Most of a WooCommerce to Shopify migration is boring: products, variants, customers, orders, a redirect file. For a Kerala export brand it's the other 20% that decides whether launch week is calm or miserable. HS codes sitting in a custom field that no importer app reads. Ayush licence numbers and FSSAI label data stored as WooCommerce product meta. AED and SAR price lists maintained by hand in a currency switcher plugin. Arabic or Malayalam descriptions in a translation table that has no Shopify equivalent. Get those four mapped before you export a single CSV and the rest of the move is mechanical.

What follows is the sequence we use for spice, ayurveda, coir, handloom and snack exporters shipping out of Kochi, Kozhikode and Thrissur. It assumes you sell domestically and to the Gulf, and that losing organic traffic in the first fortnight is not acceptable.

What a WooCommerce to Shopify migration actually moves

Standard objects transfer cleanly with a migration app or a well-built CSV: products, variants, images, collections (from Woo categories), customers without passwords, and historical orders as records. Blog posts move, though formatting usually needs a pass.

What does not move on its own:

  • Anything stored in wp_postmeta by a plugin rather than by WooCommerce core. That's where your HS code, net weight, shelf life, batch prefix and licence numbers almost certainly live.
  • ACF field groups, WPML or Polylang translations, and any PDF spec sheet attached through a media field.
  • Currency-switcher price tables. Those are plugin data, not product data.
  • Customer passwords. Never, on any platform. More on that below.
  • Subscription or wholesale pricing rules, which have to be rebuilt as Shopify catalogs or B2B price lists.

So the first job is an inventory of your Woo product meta keys. Export one product as JSON from the WP REST API and read every key. On a typical exporter's site we find somewhere between 12 and 30 custom keys, of which maybe eight matter. Decide which eight.

Mapping WooCommerce product metafields to Shopify custom fields

Shopify's equivalent is metafields, and for anything reusable, metaobjects. For an export catalogue the definitions we create first are almost always the same set:

  • HS code (single line text, namespace custom.hs_code) plus country of origin. Shopify has built-in harmonised system code and origin fields on the inventory side too, and if you ship DHL or Aramex through a Shopify shipping app, that built-in field is the one the commercial invoice reads. Fill both. We've seen a parcel held at Dubai customs because the metafield had the code and the inventory field was empty.
  • Net weight and gross weight as separate numeric fields. Woo stores one weight. Export documentation wants both, and your food labels want net quantity in grams, not kilograms rounded to two decimals.
  • FSSAI licence number, Ayush manufacturing licence, batch code format, best before in months. A metaobject called "Compliance" holding licence number, issuing authority and validity date is cleaner than repeating the same 14-digit FSSAI number across 400 SKUs. Reference it from the product.
  • Ingredients and allergen statement as rich text, rendered in the theme under a tab. Gulf buyers of banana chips, pickles and ready masalas read this before they buy, and so does the importer's QA team.
  • Certification flags: organic, Spices Board registration, GI tag for the handful of Kerala products that carry one. Boolean or list.

Create the definitions in Shopify first, with the exact handles you want, then map the Woo meta keys to them in your import file. Doing it the other way round leaves you with fields named _wc_cog_cost in your admin forever.

Catalogues over roughly 300 SKUs should also plan the filter layer at this point, because metafields are what good filtering runs on. Filtering a spice catalogue by form (whole, ground, extract), grade and pack size is worth more to a wholesale buyer than any homepage banner. We publish FilterPro for exactly this, and whichever tool you choose, the metafield structure decides what it can do.

Migrating multi-currency prices to Shopify Markets

Woo exporters usually run one of two setups: a plugin converting INR at a live rate, or a hand-maintained AED/USD price table. Shopify Markets handles both patterns, but the mechanics differ enough to cause real pricing errors.

Markets gives you per-market price adjustments (a percentage on top of your base price) and, better, fixed price lists uploaded by CSV per market. Use fixed lists for the Gulf. Live conversion from INR gives you prices like AED 23.29, and it ignores the fact that your landed cost to Sharjah is not your landed cost to Kannur.

Here's the trap we see most often. Your Woo price is GST-inclusive. Say a 100g cardamom pack sells at ₹560 including 5% GST, so ₹533.33 is the actual product price. Exports under a Letter of Undertaking are zero-rated, so the AED price should be built from 533.33, not 560. At ₹22.90 to the dirham that's AED 23.29 against AED 24.45. If you copy the inclusive price into your export list you hand the buyer 4.8% and never notice. Across a 400-SKU catalogue, that is a line item.

Two more things to settle before launch:

  • Rounding. Set it per market. AED prices ending in .00 or .95 convert better than AED 23.29, and they make your pick-list arithmetic easier.
  • What currency the money actually settles in. Shopify Markets will show AED. Whether the customer can pay in AED depends entirely on your payment gateway. Razorpay, Cashfree and PayU settle INR. A buyer in Dubai sees AED 69, pays the INR equivalent on an international card, and their bank adds a cross-border fee you didn't quote. Check what your Shopify account can actually settle in before you promise a dirham checkout, and keep your FIRC/BRC trail intact for LUT compliance either way. Domestic COD, meanwhile, stays with your Indian gateway and a COD app; that part of the stack rarely changes during migration.

If you sell gold or kasavu-and-gold combinations, metal pricing is its own problem: the Woo plugin that repriced by the day's rate has no direct Shopify twin, and manual daily edits across variants fail within a week. We built Gold & Silver Live Rate for that, with the metal, making charge, wastage and GST shown as a breakup. Jewellers migrating with live-rate pricing should solve this in the build, not after.

How to migrate WooCommerce to Shopify without losing SEO

The entire answer is: a complete 301 redirect map, uploaded before DNS changes, covering every URL that has a backlink or an impression.

The URL structures don't line up, so every path changes shape:

  • /product/cochin-black-pepper/ becomes /products/cochin-black-pepper
  • /product-category/spices/ becomes /collections/spices
  • /shop/ becomes /collections/all
  • /2023/08/onam-sadya-guide/ becomes /blogs/news/onam-sadya-guide
  • /product-tag/ and attachment pages have no equivalent and should point to the nearest relevant collection or product

Build the source list from three places, not one: the WordPress sitemap, Google Search Console's 12-month page report, and Ahrefs or Semrush for pages with referring domains. Deduplicate. A mid-sized Kochi exporter's list typically comes out around 1,800 URLs: say 620 products, 55 categories, 140 posts, and the remaining thousand made up of tag archives, paginated category pages, author pages and image attachment URLs. Those last thousand mostly collapse into a handful of destinations, which is why writing the map takes a day rather than a week.

Shopify takes redirects as a CSV in the URL Redirects admin, two columns, old path and new path. Upload in batches. Then, after go-live, re-crawl the old URL list with Screaming Frog and confirm every one returns a single 301 to a 200, with no chains. Redirect chains are where this quietly goes wrong.

The rest of the SEO work: keep title tags and meta descriptions as they were unless they were bad, carry over your structured data (Shopify themes output Product schema, but your Woo plugin may have been adding review and FAQ markup you'll need to replace), resubmit the new sitemap, and leave the old domain's SSL and DNS alone for at least 48 hours. If you publish Malayalam content, Shopify's Translate & Adapt handles the alternate language with proper hreflang; WPML's directory structure doesn't map one-to-one, so plan those redirects separately.

Expect a dip. Two to four weeks of mild volatility is normal even on a clean move. If traffic hasn't recovered by week six, something in the redirect map is wrong.

Transferring customer passwords and accounts

You cannot move passwords. WordPress stores them as salted hashes and Shopify can't read them, which is correct behaviour, not a limitation to work around. Customer records (name, email, phone, addresses, order history, marketing consent) all transfer.

Two routes. Shopify's classic customer accounts let you send account activation invites in batches; the customer sets a new password once. Or switch to the newer passwordless accounts, where a six-digit code goes to their email and there's no password at all. For Gulf buyers who order twice a year and never remember a password, the code-based login reduces support tickets noticeably.

Either way, email your list before launch and say plainly that accounts have moved and they'll set a password once. Don't bury it. And carry over marketing consent accurately; re-permissioning an entire list because the import flag was wrong is an expensive mistake.

How long a WooCommerce to Shopify migration takes

For a 200 to 600 SKU export catalogue with multi-currency and a custom theme: six to nine weeks from kickoff to launch. Roughly:

  • Week 1: data audit, metafield schema, redirect source list.
  • Weeks 2 to 4: theme build, data import into a development store, compliance fields populated.
  • Week 5: Markets, shipping zones, carrier accounts, tax settings, apps.
  • Weeks 6 to 7: QA, test orders in INR and AED, redirect upload, content review.
  • Week 8: launch, then two weeks of monitoring.

A straight lift-and-shift onto a stock theme with no currency work can be done in two to three weeks. A 5,000-SKU catalogue with B2B price lists and three languages runs to twelve or more. The part people underestimate is never the import. It's the content cleanup: product descriptions written in 2017 that still mention a discontinued pack size.

One Kerala-specific scheduling note. Do not launch in the four weeks before Onam, and avoid the Vishu run-up. The traffic is worth too much to risk on a redirect bug. January and February are the quietest windows for most food and ayurveda exporters. We plan around that whenever the client lets us.

What breaks during a Shopify migration

An honest list, from stores we've moved:

  • Variant limits. Woo tolerates sprawling attribute combinations. Shopify allows three options per product on most plans. A handloom brand with colour, size, border type and blouse-piece option has to restructure, usually by splitting into separate products or using a variant app.
  • Weight units. Woo stores can be set to grams while the theme displayed kilograms. Import both ways and your DHL rates come out 1,000x wrong. Check one product manually.
  • SKU duplicates. Woo allows blank SKUs. Shopify's inventory and your 3PL will not forgive them.
  • Image filenames and alt text. Migration apps often drop alt text. For a catalogue that ranks on image search for "kasavu saree" or "nilavilakku", that's a real loss. Export alt text separately and reimport.
  • Reviews. Judge.me, Loox and Yotpo all import from Woo review exports, but only if you pull the CSV before you shut WordPress down. People forget. Then the reviews are gone.
  • Shipping rules. Woo's conditional shipping plugins do things Shopify's native rates can't. Weight-based tiers are fine; "free shipping to GCC above AED 400 except for liquids" needs Shopify Functions or an app.
  • Pincode serviceability. If your Woo site checked COD pincodes against a Delhivery list, that logic has to be rebuilt.
  • Speed. Not a break, a surprise. People expect Shopify to be fast by default. A heavy theme plus eleven apps lands you right back where WooCommerce was. Budget time to audit the script load after launch.

We get the variant restructuring wrong on the first pass maybe a third of the time, because the real logic lives in someone's head at the warehouse rather than in the data. Ask before you model.

A Kochi export catalogue checklist for launch week

Print this. Tick it in order.

  1. Every product has HS code, country of origin, net weight and gross weight populated. Spot-check 20 at random against your last commercial invoice.
  2. FSSAI and Ayush licence numbers render on the product page for the categories that need them, and on the invoice template if your buyers ask for it.
  3. Test orders placed and refunded: one INR prepaid, one INR COD, one AED card order, one that triggers your GCC shipping rate.
  4. Courier integration tested end to end with a live label for Aramex or DHL, including the customs declaration fields.
  5. GST settings correct: domestic orders charged at the right rate, export orders zero-rated under LUT, and your IEC on file with the carrier.
  6. Redirect CSV uploaded and crawled. Zero 404s on the top 200 old URLs.
  7. Google Search Console: new property verified, sitemap submitted, change of address not required (same domain) but Analytics and Ads conversion tags re-fired and confirmed.
  8. Customer activation emails scheduled, with a plain-language note about the new login.
  9. Malayalam and Arabic content published through Translate & Adapt with hreflang verified in the source.
  10. Inventory reconciled to the warehouse count on the morning of cutover, not the week before.

The full sequence, including the pre-migration data audit, sits on our Shopify migration page, and the team that runs these builds works out of Bengaluru with clients across Kerala; the Kochi page covers how we handle export-heavy catalogues specifically.

Start with the field map, not the theme

Pick ten of your best-selling SKUs. Export them from the WooCommerce REST API as JSON and read every meta key against the list above. If HS code, net weight, licence number and shelf life are all there and consistent, your migration is mostly a build job. If they're inconsistent, or stored as free text with typos, fix that in WordPress first. Clean data imports once. Dirty data imports three times.

If you want a second pair of eyes on the catalogue and the redirect surface before you commit to a timeline, our free audit covers both.

Next post

Ready to scale your D2C brand profitably?

Let's build a growth engine that drives more traffic, more conversions and more profit.

Book a Growth Audit
📅 Free Audit💬 WhatsApp