• Skip to primary navigation
  • Skip to main content
pragati logo

Pragati Tech Services

  • Home
  • About
  • Services
    • Ecommerce Solutions
    • Back Office Support
    • Business Central
    • Customer Support
  • Blog
  • Contact
  • Show Search
Hide Search
You are here: Home / 2026 / Archives for September 2026

Archives for September 2026

From WooCommerce to Shopify in a Month

Sachin · September 29, 2026 ·

We moved showbags.com.au from WooCommerce to Shopify in under a month, and the store went live in August 2026. Showbags is a family-run Australian retailer of novelty showbags, party bags and confectionery, backed by Bensons Trading and has a loyal Instagram following.

This was never a simple migration. The store runs on Microsoft Dynamics 365 Business Central, so stock, pricing, discounts, orders and tracking all had to flow cleanly between Shopify and the ERP from day one. Customers also expected their order history, wishlists and back-in-stock requests to still be there when they logged in.

Here is how we did it, and what we would tell any business planning the same move.

Why leave WooCommerce

The biggest single saving was hosting. Showbags was running on WP Engine’s P2 plan, a premium managed tier needed to keep a large-catalogue WooCommerce store fast under seasonal traffic. Shopify includes hosting, security, SSL and scaling in the subscription, so that bill disappeared entirely.

The less visible cost was maintenance. Plugin updates, PHP upgrades and compatibility testing took time every month. On Shopify that work shrinks to managing apps and the theme, which we keep in a GitHub repository so every change is versioned and reversible.

Business Central stays the single source of truth

We set up the Shopify and Business Central integration so the team keeps working in BC and Shopify simply reflects it. Nobody re-keys a price, a stock level or a tracking number.

DataDirectionWhere it comes from in BC
InventoryBC → ShopifyStock held at the online-fulfilment location, not the whole business
Regular pricesBC → ShopifyThe retail price list
Sale pricesBC → ShopifyA dedicated discount price list, written to Shopify’s Compare-at price
OrdersShopify → BCEvery web order lands in BC as a sales order
TrackingBC → ShopifyShipment tracking flows back, and Shopify emails the customer

Syncing inventory by location matters for a business like Bensons Trading, where most volume is wholesale. Online shoppers only ever see stock that is actually available to ship to them.

Shopify Flow runs the merchandising

On WooCommerce, keeping the Sale, New and Coming Soon pages accurate was manual work that was easy to forget. We rebuilt all three with Shopify Flow so they maintain themselves.

Sale page. When a discount price arrives from BC’s discount price list, Flow adds the product to an automated Sale collection. When the discount ends, it drops off. The Sale page is always exactly what is on sale, nothing more.

Coming Soon to New. Products created before stock arrives go onto Coming Soon automatically. The moment BC reports stock, Flow moves them from Coming Soon to New.

New expires on its own. Two months after a product lands in New, Flow removes it. The New page stays genuinely new without anyone keeping a calendar.

The result is a storefront the client’s team never has to tidy. They receive stock and set prices in BC, and the website follows.

Customers kept their history

A returning customer should not notice the platform changed. We imported every past WooCommerce order, so customers can still see what they bought and the team can still look up old orders in one place.

We also brought across wishlists and waiting lists. People who had saved products or asked to be notified when something came back in stock kept those requests, and the back-in-stock notifications carried on after launch.

We spot made several migration tools (Thanks Claude) to handle the bulk of the product and customer data and handled things such as WooCommerce categories becoming Shopify collections, sale prices mapping to Compare-at price, and short descriptions moving to metafields etc.

SEO rankings survived the move

Shopify uses a fixed URL structure, so every WooCommerce address changes. A product at /product/ninja-showbag becomes /products/ninja-showbag, and a category becomes a collection. Without redirects, years of Google rankings and backlinks would point at 404 pages.

We built a full 301 redirect map covering products, nearly 200 category and collection URLs, and the store’s content pages. Each old URL was checked against the live WooCommerce sitemap before it went in, and the map was implemented alongside the client’s SEO agency.

We also fixed the Open Graph tags on the new store, so product links shared on Instagram and Facebook show the right image, title and type.

What we learned along the way

  • Don’t trust a green tick in Flow. Flow’s Send internal email action only reliably reaches registered staff accounts. Sent to a shared support inbox, it reported success and delivered nothing.
  • Pick the theme on evidence. We trialled several premium themes, then launched on a customised version of Shopify’s own Dawn theme. It was faster to build on, and it keeps updating with Shopify.
  • Shipping is its own project. We built a bulk export into Australia Post Parcel Send, so the warehouse can lodge a day’s orders in one step instead of one at a time.
  • Check plan features, not just fees. Upgrading a Shopify plan rarely pays for itself through card-fee savings alone. Features such as live carrier-calculated shipping are the real reason to move up.

The result

  • Live on Shopify in under a month, with no break in trading
  • Premium WP Engine hosting cost removed entirely
  • Stock, prices, discounts, orders and tracking synced with Business Central, with no double entry
  • Sale, New and Coming Soon pages that run themselves
  • Full order history, wishlists and waiting lists preserved
  • Search rankings protected with a complete 301 redirect map

The store is also ready for what comes next. Shopify now offers native B2B features on standard plans, which opens a path to serving Bensons Trading’s wholesale and fundraising customers from the same platform.

Planning your own move?

Pragati Tech Services is a boutique agency that helps SMEs in Australia and the UK move from WooCommerce to Shopify, and connect their store properly to Microsoft Dynamics 365 Business Central. If your store is outgrowing WordPress, or your team is re-keying data between the website and the ERP, talk to us. Also since we are a registered Shopify Partner, you don’t need to pay until your store goes live as we can keep working on a Dev store which we transfer to you once ready to go live and then you can choose a plan and start paying to Shopify directly.

Microsoft calls it a trojan. It’s still in the Chrome Web Store.

Sachin · September 8, 2026 ·

In August, Microsoft Defender flagged two trojans on a colleague’s laptop. Both were inside one Chrome extension — an AI sidebar offering ChatGPT, Claude and DeepSeek beside whatever page you’re reading.

Trojan:JS/ChatGPTStealer.GVA!MTB
Trojan:Win32/Qwexlafiba!rfn
  extension ID  fnmihdojmnkclgjpcoonokmkhjpjechg

She installed it in June 2024 from the official Chrome Web Store. It had a Featured badge and four stars from thousands of reviews.

It is still there. 400,000 users. Updated three days after Defender flagged it. The listing still says the developer will not collect or use your data. (I’m linking the listing so you can verify that claim, not so you can install it. If that link is dead by the time you read this, good.)


Nobody blinked at the permissions, and they were right not to

host_permissions:  <all_urls>        read and change every page you visit
content_scripts:   <all_urls>
permissions:       storage, scripting

That’s alarming written down and completely unremarkable in context — an AI sidebar genuinely needs it. It can’t summarise the page without reading the page. For this category, the permission that enables total compromise is indistinguishable from the permission that enables the feature. There is no anomaly to spot and no prompt a careful user should refuse.


Google has known since January

LayerX, OX Security, Malwarebytes and Microsoft have all published on this family — sixteen or more extensions sharing a codebase, impersonating real AI assistants, harvesting session tokens. Microsoft’s own threat entry for the detection has been public since January.

Above links document these extensions taking AI conversations, tab URLs and ChatGPT account tokens. They do not document them reaching unrelated sites. But that’s what happened with one of our sites. They lifted our hosting credentials, logged-in, created a SFTP user, then installed files and finally injected JS into our website which started showing a fake pop-up to our visitors about a ‘Chrome Update‘, unsuspecting visitors if not careful, would be installing a malware being distributed using our site as distribution channel. When we found it out, we did fix it but it was a really scary experience.

There were probably multiple bad actors involved in all this and someone was responsible for lifting our session token, someone else used it to probably create SFTP users on our hosting panel and maybe someone else wanted to distribute the malware using our website. This was a chain of events and actions. In these extensions, permissions aren’t scoped to AI sites, and nothing in the browser makes them so. <all_urls> with content scripts on every page means read access to your webmail, your hosting panel, your bank — the same access, the same session, no additional prompt.

I reported it. The Chrome Web Store’s report form offers six radio buttons and no field for a detection name, a hash or a C2 domain. It’s product feedback, not abuse reporting.

And the shipping version isn’t detected. On one machine, Defender blocked reads on the older Edge copy while the newer Chrome copy hashed cleanly:

SHA256 — v2.0.6, undetected at time of writing
  blueBackground.js   CF4991C1AD1F96244E082091052FC8748C64DCD6ECC4D6E32909F3E33A6C51E7
  setup.html          7B9608084F09550E75E11713AC17CF2EE8FC5B7376160EFA618C089DC55B9BE9

Infrastructure referenced in the extension code
  a.gapier.com                          both versions
  chatgptextension.ai                   both versions
  costgoat.com                          v2.0.6
  agent-marketplace-ot2s.onrender.com   v2.0.6
  chatgptsidebar.pro                    v1.9.6

Probably not negligence: the malicious behavior is server-controlled, so a reviewer installing it sees a working sidebar behaving perfectly. But the consequence stands — a Featured badge (gone now) and 400,000 users tell you nothing.


Five ordinary decisions

An extension like this doesn’t cause a breach by itself. It combines with things nobody considers a problem.

  1. An extension reads every page. Necessary for AI assistants. Granted once, at install.
  2. Web apps hand tokens to the browser. Run Object.keys(sessionStorage) on your control panel. On a lot of platforms there’s an access token in there. There is no HttpOnly for web storage — every script in that origin can read it. This is common enough that the IETF published RFC 10017 this year recommending tokens never reach the browser at all.
  3. Authenticated consoles load third-party scripts. Analytics, chat, session recorders, ad pixels. I counted a dozen suppliers inside one hosting panel, each with the same access as any extension.
  4. Passwords get shared in chat tools. And stay there permanently.
  5. One-time codes get forwarded to the team. So the password and its second factor arrive in the same inbox.

Chaining used to be the expensive part

An extension like this doesn’t cause a breach by itself. It combines with things nobody considers a problem — and combining things is exactly what’s getting cheaper using AI Agents.

This isn’t speculative. Anthropic has disclosed a China-nexus actor that used its own agentic coding tool to run espionage operations against roughly thirty organisations, with 80–90% of the tactical work executed without a human in the loop — reconnaissance, vulnerability discovery, credential testing, exfiltration. It’s catalogued by MITRE ATT&CK as Campaign C0062. Palo Alto’s Unit 42 has separately demonstrated a multi-agent system chaining a four-stage attack from a single prompt, with no human intervention between pivots. The Cloud Security Alliance’s assessment is that automated exploit generation has crossed a threshold.


What you can do?

Well I don’t have a clear answer to be ready for these AI assisted breaches and all the bad actors using them to full extent, however below is what could help you against rogue extensions like the one mentioned here:

  • See what your extensions can already read. In your admin console’s developer tools:
    • document.cookie
    • Object.keys(localStorage)
    • Object.keys(sessionStorage)
      Anything returned is readable by every extension you have installed. If a session token is in that list, any extension can be you — no password, no second factor, no login event.
  • Set site access to “on click.” chrome://extensions → Details → Site access. Built in, free, almost nobody uses it. An AI sidebar works fine this way; it just can’t sit on your admin panel.
  • Audit by ID, not name. Names change — this one shipped under two. IDs don’t.
  • If you run a team, set an allowlist. Chrome Browser Cloud Management is free with Google Workspace. An afternoon’s work.
  • And stop sharing passwords in chat, and stop forwarding one-time codes. If both land in the same inbox, you have one factor with extra steps.

Extension indicators published so others can check their own estates. Platform findings reported to the vendors concerned and withheld pending response.

Pragati Tech Services

Copyright © 2026