Opti Plaza switch guide
Shopify to the new store (WordPress + WooCommerce + Stripe). Written 4 Nov 2026, late evening your time. I update this page as items close.
The short answer
- The switch is one DNS change. Visitors move to the new store within 1 to 2 minutes. The site never goes down: Shopify keeps selling right up to the flip.
- Cutover session: about 3 hours of my work at the quietest hour, Wednesday 15:30 your time (Thursday 04:00 in India). Your part is 30 minutes: be reachable and place one real order, which I refund.
- Earliest go-live: 4 to 7 days after you finish steps 1 to 3 below. If you do them Thursday, the earliest cutover is Wednesday 11 Nov.
- Nobody lands on Shopify afterwards. The domain points only at the new store, every old Shopify link is caught by it, and Shopify sits locked behind a password page for about 4 months (only for chargebacks and payouts). Then we close it.
- Already working on the test store tonight: today's Shopify data copied in (973 customers, 73 orders, 59 changed products), sitemaps and robots, Google Analytics and Klaviyo tags, live shipping prices, account pages, order numbers carrying on from #1075, and shipping emails with tracking.
Your steps, in order
Each step ends with what to say to me. Type the money and DNS ones (2, 3 and 12) in the laptop chat, not WhatsApp: the laptop blocks those actions without a typed go there.
- Stripe account. Gurpreet applies for Opti Plaza Ltd with the answers file on your Desktop (Opti Plaza folder: Stripe-application-answers). Website optiplaza.co, payouts to RBC. Once approved, invite
trejon@simplifygenai.com in Stripe (Settings, Team) with the Developer role. Stripe's rules use the same "brand-name goods" wording Shopify did, so keep the authorised-retailer papers handy in case they ask.
Then say: Stripe connectedAbout 30 minutes. Shopify keeps selling until a live Stripe payment works.
- Server. A small Hetzner server for the store, about EUR 8.50 a month with backups. I build it the same day.
Say: go Hetzner
- Domain to Cloudflare. (a) In your personal Cloudflare, Add a site:
optiplaza.co, Free plan. Cloudflare copies the current records; visitors see no change. Tell me, and wait for my OK: I check every record first, including the 2 Google Search Console records. (b) In the GoDaddy account that holds optiplaza.co (it is not in either GoDaddy account I have), change the nameservers to the 2 that Cloudflare shows.
Say: Cloudflare added, then after my OK: nameservers done15 minutes. After this I do all DNS myself.
- Merchant Center access. merchants.google.com, account 5329074243, gear icon, People and access, Add person:
optiplaza-seo@optiplaza-seo-2026.iam.gserviceaccount.com with Standard access. Without this I cannot move your Google Shopping listings.
Say: Merchant access done2 minutes.
- Order email sender. The new store has to send order, shipping and password emails from optiplaza.co. I recommend Resend on the free plan (3,000 emails a month, 100 a day; we send a few dozen). I make the account with trejon@ and add its DNS records.
Say: go Resend
- Klaviyo. Log in to Klaviyo once in Chrome on the laptop before cutover day. On the night I connect the new store, so the 750 newsletter subscribers stay and new orders reach Klaviyo.
Say: Klaviyo logged in
- Three Shopify checks. Look only, change nothing. (a) Settings, Plan, Cancel plan: is "Pause and build" in the list? Shopify's help pages disagree on whether this plan still exists. Do not confirm anything. (b) Finances, Payouts: is any balance held? (c) Do Papa or Chacha ring up shop sales on the Shopify POS app?
Say: Pause yes/no, held $___, POS yes/no5 minutes.
- Logins for the new admin. Who needs one (Papa, Chacha, anyone else) and their email.
Say: logins: Papa name@..., Chacha name@...
- Privacy policy line. The live policy still has "NOTE TO MERCHANT" placeholders, and Stripe reads policy pages. I will write: Opti Plaza Ltd, British Columbia, with operations in India.
Say: policy line OK (or the line you want)
- Google Business Profile and Meta. Open the 3 shop profiles (Ludhiana, Jalandhar, Amritsar). Tell me any website, product or order link that is not plain optiplaza.co. In Meta Commerce Manager, check whether a product catalog exists.
Say: GBP links fine, Meta catalog yes/no10 minutes.
- Phone test. I send a link to the hidden test copy on the new server. On your phone: browse, search, add to cart and pay with the test card I give you, once as India and once as another country.
Say: staging OK (or list what looks wrong)20 minutes.
- Pick the time. Type it in the laptop chat. Tell Papa and Chacha: no Shopify edits from 13:30 that day.
Say: go cutover Wed 15:30
- Cutover day. Be reachable 15:30 to 16:30. When I message, place one small real order on optiplaza.co with your card. I refund it.
- After. Use Shopify admin only if a dispute email arrives. Around mid-March 2027 (120 days after the last Shopify order, when card chargebacks run out) close Shopify.
Say: close Shopify
Any time: rollback puts the domain back on Shopify in about 5 minutes (works until Shopify is closed). status gets you where we are in 5 lines.
How fast is the switch
Day 0. Your steps 1 to 3. Nothing changes for visitors.
Day 1. I build the server and put the whole store on a hidden address (password, kept off Google).
Day 2. Rehearsal: a full fresh copy from Shopify, then a crawl of all ~12,900 live pages compared with the new store (status, title, description, canonical, hreflang, structured data, images), and test payments in all 15 markets. We go only when the differences are zero.
Day 3. Your phone test. The day before cutover I set the domain's DNS refresh time to 60 seconds, so the flip spreads in a minute.
Cutover, Wednesday 15:30 your time. Final copy, flip, checks. Visitors move in 1 to 2 minutes. No downtime.
About 2 hours later. When Shopify's Live View shows no visitors left, Shopify gets its password page and its sales channels are switched off.
About 4 months later. Close Shopify.
How nobody reaches Shopify again
| Door to Shopify | How it gets shut |
| Typing optiplaza.co, Google results, bookmarks | The domain points only at the new store. The DNS refresh time is 60 seconds from the day before, so old answers expire within a minute. The few devices still holding the old answer can still buy on Shopify for those minutes; I copy any such order across, and the password page goes up once Live View is empty. |
| Old links in customer emails (order status, "view your order") | The new store answers the same links and opens the same order on optiplaza.co. fixing tonight |
| Old checkout, cart and discount links (abandoned-cart emails, shared links) | The new store catches /checkouts/..., /cart/... and /discount/CODE: it fills the cart or applies the code. fixing tonight |
| opti-plaza.myshopify.com | We keep optiplaza.co as Shopify's main domain, so this address forwards to the new store. Anything else shows Shopify's password page, where nobody can buy. |
| Google Shopping, Instagram and Facebook products | They already link to optiplaza.co, so they open the new store. Merchant Center gets our own feed with the same product IDs. The Shopify Google, Facebook, Inbox and POS channels are switched off after the flip. |
| Habit: Papa or Chacha edit products or orders in Shopify | They get new admin logins before the night. Their Shopify staff access is removed the day after, so a Shopify edit cannot happen by mistake. |
| Shopify POS in the shops (if used) | Shop sales move to the new admin (manual order) or a Stripe card reader. Your answer in step 7 decides this. |
| Our own sage-1 desks (8 of them write to Shopify) | I stop them before the final copy and point them at the new store after. |
Everything that can go wrong, and the fix
done working on the test store fixing tonight mine, under way needs you waits on a step above cutover night after launch
Data
| What can go wrong | Fix | Status |
| Products, prices or stock change between now and the switch | Final copy on the night with Shopify edits frozen 2 hours. Tonight's test copy took 59 changed products, 56 new customers and 10 new orders cleanly. | done night |
| Stock not going down when someone buys | Found and fixed: tracked items now count down and stop at zero, like Shopify. | done |
| Customers lose their order history | All 73 orders imported against the 973 customers. A test customer logged in and saw order #1074. | done |
| Order numbers restart at 1 | New orders carry on from #1075. | done |
| Shopify signs customers in with an email code; the new store uses passwords | Imported customers set a password through "forgot password". Needs the order email sender (step 5). | step 5 |
| The 3 live discount codes (SAVE10, SAVE12.5, FIRSTPAIR5) stop working | Recreate with the same rules and the same usage counts. | fixing tonight |
| Copy wipes filter names and product videos | Found and fixed: the copy now stops if those files are missing. | done |
| Gift cards, reviews | None to move: 0 gift cards, and the live pages show no review widgets. | checked |
Google search (SEO)
| What can go wrong | Fix | Status |
| Pages Google knows return errors after the switch | Same URLs for every page in all 15 market folders. A full crawl of the live site against the new store is running tonight; the rehearsal must show zero differences before cutover. | audit running |
| Old Shopify redirects lost | All 1,748 redirects copied into the new store. | done |
| Sitemaps or robots rules change shape | Same sitemap index and per-language files at the same addresses; Shopify's crawl rules copied. | done |
| Image addresses Google Images indexed (11,446) break | The new store serves the same /cdn/shop/... image paths. | done |
| Search Console loses its verification when the DNS moves | Its 2 TXT records go into Cloudflare before the nameserver change; I check before you switch them. | step 3 |
| Visitors from Canada, the US, India, the UAE and Serbia are no longer sent to their own folder, as Shopify does today | Copy Shopify's rule: people (not Google) go to their country's folder, and their own country choice is remembered. | fixing tonight |
| The old Shopify copy gets indexed as a duplicate | Shopify password page after the switch. | night |
| We blame the move for a drop that started earlier | Google clicks were already down 44% in the last 28 days (883 against 1,586) before any change. That baseline is saved; after launch I compare daily against it. | watch |
Payments
| What can go wrong | Fix | Status |
| Stripe refuses or holds the account | Apply first, before anything else. No switch until a live Stripe payment has gone through, so Shopify keeps selling if Stripe is slow. | step 1 |
| Buyers in countries without their own folder (UK, Australia, Switzerland, Saudi Arabia, ...) see US dollars, where Shopify shows their own currency. 11 of the 26 orders from outside India were paid that way. | Show and charge their local currency with Shopify's rates and rounding, as today. | fixing tonight |
| A market's checkout fails | Test payments in all 15 markets on the rehearsal, then your phone test, then one real order on the night. | rehearsal |
| A chargeback arrives on an old Shopify order | Shopify stays on (locked) about 4 months so you can answer disputes. | after |
| Money held by Shopify | Check payouts before closing (step 7). | step 7 |
Emails
| What can go wrong | Fix | Status |
| Order and password emails never arrive (optiplaza.co has no email set up) | Resend sender with the domain's DNS signatures; reply-to stays your current address. | step 5 |
| Customers stop getting the "on the way" email with tracking | Tracking box on each order: the team types carrier and number, the customer gets Shopify's "on the way" email with the link. | done |
Google Merchant Center, Ads, Analytics, Business Profile
| What can go wrong | Fix | Status |
| Shopping listings go stale or disapproved (prices and stock stop updating once the Shopify channel stops) | Our own feed with the exact product IDs Google has now, swapped in one step on the night (two feeds with the same IDs clash, so no overlap). | step 4 |
Product IDs changed format inside Google (Shopify moved some stores from shopify_IN_ to shopify_ZZ_) | I read the real IDs from Merchant Center before building the feed. | step 4 |
| The India price feed has been failing since today (a safety check stopped it) | Fix it before the switch so India prices stay right. | mine, this week |
| Analytics tags disappear with Shopify | Same GA4 and Google tag IDs on the new store, production only. | done |
| Old orders counted again as sales in GA4 | Purchase event only fires once, and never for copied Shopify orders. | fixing tonight |
| Google Ads conversions stop | No live campaigns today, so nothing breaks. | checked |
| Business Profile links to a Shopify-only address | Your 10-minute look (step 10). | step 10 |
Klaviyo, Meta, Shopify leftovers
| What can go wrong | Fix | Status |
| Klaviyo stops getting orders and sign-ups | Connect the new store on the night. The 750 subscribers live in Klaviyo and stay. The 6 email flows are still drafts, so nothing live breaks. | step 6 |
| Meta catalog (741 products) stops updating | If a catalog exists, I give Meta a feed from the new store with the same IDs. | step 10 |
| Shopify's "Pause and build" plan no longer exists | Not needed: Shopify stays on Basic, locked behind the password page, for about 4 months. | step 7 |
| Shop chat (Shopify Inbox) and Shop Pay saved details disappear | Expected; the WhatsApp contact stays. Shop Pay buyers type their card once. | known |
The new server
| What can go wrong | Fix | Status |
| Server down means no store | Cloudflare in front, uptime check every minute with a WhatsApp alert to you, nightly backups kept off the server. | step 2 |
| Admin broken into | No default admin names, strong passwords, admin locked down. | step 2 |
Cutover night, step by step
| Your time (India) | What happens |
| 13:30 (02:00) | Shopify edits frozen. I stop the sage-1 desks that write to Shopify, then take the final copy. |
| 14:15 (02:45) | Copy imported, store restarted, spot checks. |
| 15:20 (03:50) | Stripe live keys on. |
| 15:30 (04:00) | Flip. optiplaza.co points at the new server. |
| 15:35 (04:05) | Home, product, cart and checkout checked in India, Canada and the World market. GA4 realtime shows visits. |
| 15:45 (04:15) | Your real order, then my refund. |
| 16:00 (04:30) | Crawl of the top 1,000 pages by Google clicks. Sitemaps resubmitted, Merchant Center feed swapped, Klaviyo connected. |
| ~17:30 (06:00) | Shopify Live View empty: password page on, Shopify channels off. |
Rollback: if anything serious breaks, say rollback. I point the domain back to Shopify and take its password page off; that takes about 5 minutes. Any order taken on the new store meanwhile stays there and is fulfilled from the new admin.
First weeks after
- Every day: Google clicks and impressions against the saved baseline, the error log for missing pages, orders, Stripe disputes. You hear from me only if something moves.
- Changes to the store come after launch, one at a time (returns wording, delivery promise, EU and UK shipping, title cleanup), so any Google movement has one cause.
Full working plan: trejon plans/optiplaza-migration-2026-09/cutover-plan-2026-11.md