<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Satyam Mishra</title>
    <description>The latest articles on DEV Community by Satyam Mishra (@satyammishradev).</description>
    <link>https://dev.to/satyammishradev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4175112%2Fca35f967-27a8-4d42-a258-01c215d22bd3.jpg</url>
      <title>DEV Community: Satyam Mishra</title>
      <link>https://dev.to/satyammishradev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/satyammishradev"/>
    <language>en</language>
    <item>
      <title>Shopify Migration in Ireland: WooCommerce to Shopify Checklist</title>
      <dc:creator>Satyam Mishra</dc:creator>
      <pubDate>Tue, 27 Oct 2026 11:11:27 +0000</pubDate>
      <link>https://dev.to/satyammishradev/shopify-migration-in-ireland-woocommerce-to-shopify-checklist-4f46</link>
      <guid>https://dev.to/satyammishradev/shopify-migration-in-ireland-woocommerce-to-shopify-checklist-4f46</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://satyam-mishra-dev.tech/guides/woocommerce-to-shopify-ireland" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Almost half of Irish online stores still run on WooCommerce. Moving to Shopify usually means fewer plugins to patch, a faster checkout and less time spent on hosting. Done carelessly, it also means lost Google rankings and broken customer accounts. This is the checklist I follow for Irish stores.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Audit the store before you touch anything
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Count products, variants, categories, customers, orders and blog posts, so you can check the numbers match after the move.&lt;/li&gt;
&lt;li&gt;List every WooCommerce plugin and what it does. Most map to a Shopify feature or app; a few (custom pricing rules, bespoke integrations) need custom work.&lt;/li&gt;
&lt;li&gt;Export a crawl of every live URL, and note your top pages in Google Search Console. Those pages must keep their traffic.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Know what moves and what doesn't
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Data&lt;/th&gt;
&lt;th&gt;Moves?&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Products, variants, images&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;With a migration app or CSV import. Check variant options and image order afterwards.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Categories&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Become Shopify collections.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customers&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Passwords cannot be transferred. Customers activate their new account with an emailed invite.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Order history&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Imported as historical orders, useful for customer service and repeat-purchase data.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Product reviews&lt;/td&gt;
&lt;td&gt;Usually&lt;/td&gt;
&lt;td&gt;Exported from the WooCommerce review plugin and imported into a Shopify review app.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blog posts and pages&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Formatting and embedded shortcodes need cleaning up by hand.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  3. Protect your Google rankings with redirects
&lt;/h2&gt;

&lt;p&gt;Shopify uses fixed URL patterns, so almost every WooCommerce URL changes. Each old URL needs a 301 redirect to its new address, set up before launch, not after.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;WooCommerce&lt;/th&gt;
&lt;th&gt;Shopify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Product&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/product/linen-shirt/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/products/linen-shirt&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Category&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/product-category/shirts/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/collections/shirts&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blog post&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/2025/03/spring-edit/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/blogs/news/spring-edit&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Page&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/about-us/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/pages/about-us&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Keep product and collection handles identical to the old slugs, so only the prefix changes.&lt;/li&gt;
&lt;li&gt;Bulk-import the redirects as a CSV in Shopify under URL redirects, then test the top 50 URLs by hand.&lt;/li&gt;
&lt;li&gt;After launch, submit the new sitemap in Search Console and watch the Pages report for 404s for the first few weeks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Set up VAT for Ireland
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Irish shoppers expect VAT-inclusive prices, so turn on tax-inclusive pricing in Shopify.&lt;/li&gt;
&lt;li&gt;The standard rate is 23%. Some products are charged at reduced or zero rates, which Shopify handles with tax overrides per collection.&lt;/li&gt;
&lt;li&gt;If your sales to consumers in other EU countries pass €10,000 a year, you charge each customer's local VAT rate and file through the EU One-Stop Shop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I configure VAT the way your accountant specifies. Confirm rates and OSS registration with them; this guide is not tax advice.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Shipping and payments Irish shoppers expect
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Shipping zones for Ireland with An Post and DPD Ireland rates, plus a separate zone for the UK and Northern Ireland, where post-Brexit customs rules apply to many goods.&lt;/li&gt;
&lt;li&gt;Shopify Payments is available in Ireland: cards, Apple Pay and Google Pay, paid out in euro. Add PayPal and Klarna if your customers use them.&lt;/li&gt;
&lt;li&gt;If you sell across the EU, Shopify Markets shows local currency, language and delivery times per country.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Carry GDPR consent over correctly
&lt;/h2&gt;

&lt;p&gt;Only customers who opted in to marketing in WooCommerce should be marked as subscribed in Shopify. Importing everyone as subscribed breaks GDPR and can get your email domain flagged. Set up a cookie banner on the new store before launch.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Launch day
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Freeze product edits on WooCommerce and run a final sync of new customers and orders.&lt;/li&gt;
&lt;li&gt;Place real test orders with each payment method and shipping zone, then refund them.&lt;/li&gt;
&lt;li&gt;Point your domain's DNS to Shopify and wait for SSL to issue.&lt;/li&gt;
&lt;li&gt;Test the redirects again on the live domain, and check analytics and the Meta pixel are firing.&lt;/li&gt;
&lt;li&gt;Send customers the account activation email with a short note on why it changed.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  8. How long a Shopify migration takes
&lt;/h2&gt;

&lt;p&gt;The calendar time depends less on the platform than on how much has to be checked by hand. As a rough guide for an Irish store moving with its own domain:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Store&lt;/th&gt;
&lt;th&gt;Typical time&lt;/th&gt;
&lt;th&gt;What takes the time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Under 100 products, standard theme&lt;/td&gt;
&lt;td&gt;1 to 2 weeks&lt;/td&gt;
&lt;td&gt;Theme set-up, VAT and shipping, redirects for every product and category URL.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100 to 2,000 products, a few integrations&lt;/td&gt;
&lt;td&gt;2 to 4 weeks&lt;/td&gt;
&lt;td&gt;Variant clean-up, reviews and order history, email platform and accounting connections.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Large catalogue or custom features&lt;/td&gt;
&lt;td&gt;4 to 8 weeks&lt;/td&gt;
&lt;td&gt;Custom sections or apps, B2B pricing, subscriptions, and a longer test phase.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are estimates, not quotes. The store stays live on WooCommerce for the whole build, so the only switch-over moment is the DNS change on launch day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shopify migration questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Will I lose my Google rankings?
&lt;/h3&gt;

&lt;p&gt;Not if every old URL redirects to its new Shopify URL (step 3). Rankings usually wobble for a week or two while Google recrawls, then settle. Missing redirects are what cause lasting drops.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will the store go offline during the migration?
&lt;/h3&gt;

&lt;p&gt;No. Shopify is built on a separate preview store while WooCommerce keeps selling. Customers move over when the domain is pointed to Shopify.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can customers keep their passwords?
&lt;/h3&gt;

&lt;p&gt;No. Passwords cannot be transferred between platforms, so customers activate their Shopify account from an emailed invite. Their order history comes across.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I keep my .ie domain?
&lt;/h3&gt;

&lt;p&gt;Yes. You keep the domain at your registrar and point it to Shopify, or transfer it in. Email hosted on the domain keeps working if its MX records are left alone.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I do it myself?
&lt;/h3&gt;

&lt;p&gt;A small store with a standard theme can, using a migration app or CSV import and this checklist. A developer is worth it when there are thousands of URLs to redirect, custom features to rebuild, or integrations with accounting and stock systems.&lt;/p&gt;




&lt;p&gt;I'm &lt;a href="https://satyam-mishra-dev.tech" rel="noopener noreferrer"&gt;Satyam Mishra&lt;/a&gt;, a software developer in Pune working with stores and startups in Ireland, Europe and the US. More guides at &lt;a href="https://satyam-mishra-dev.tech/guides" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech/guides&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>shopify</category>
      <category>woocommerce</category>
      <category>ecommerce</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Setting Up Shipping on Shopify for Ireland, the UK and the EU</title>
      <dc:creator>Satyam Mishra</dc:creator>
      <pubDate>Tue, 27 Oct 2026 11:09:25 +0000</pubDate>
      <link>https://dev.to/satyammishradev/setting-up-shipping-on-shopify-for-ireland-the-uk-and-the-eu-1ggo</link>
      <guid>https://dev.to/satyammishradev/setting-up-shipping-on-shopify-for-ireland-the-uk-and-the-eu-1ggo</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://satyam-mishra-dev.tech/guides/shopify-shipping-ireland" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Shipping is where a lot of Irish stores lose orders: surprise costs at checkout, confusing rates for Northern Ireland, and UK parcels stuck in customs. Shopify can handle all of it, but its defaults are not built around Ireland. This is how I set shipping up for Irish stores.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Plan your zones before you add rates
&lt;/h2&gt;

&lt;p&gt;In &lt;strong&gt;Settings → Shipping and delivery&lt;/strong&gt;, rates are grouped into zones. For most Irish stores, four zones cover everything:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Zone&lt;/th&gt;
&lt;th&gt;What is different&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ireland&lt;/td&gt;
&lt;td&gt;Your main market. Cheapest, fastest rates and usually a free-shipping threshold.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Northern Ireland&lt;/td&gt;
&lt;td&gt;Part of the UK, but goods move from Ireland without the customs paperwork Great Britain needs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Great Britain&lt;/td&gt;
&lt;td&gt;Outside the EU: customs declarations, possible duties and UK VAT rules apply.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rest of the EU&lt;/td&gt;
&lt;td&gt;No customs, but longer delivery times and higher carrier prices.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Northern Ireland addresses come under the United Kingdom in Shopify, but you can now split the UK into England, Scotland, Wales and Northern Ireland and give each its own shipping rates. Use that to give Northern Ireland the cheaper, customs-free rate it should have.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Choose carriers and rate types
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;An Post&lt;/strong&gt; reaches every address in the country and suits small, light parcels. A business account gets better prices than counter rates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DPD Ireland&lt;/strong&gt; suits larger or higher-value parcels, with tracking and delivery-time notifications that cut “where is my order” emails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flat rates&lt;/strong&gt; are the simplest and what most shoppers prefer. Set them from your average parcel cost, not your cheapest one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weight-based rates&lt;/strong&gt; fit stores where parcel sizes vary a lot. They only work if every product has an accurate weight in Shopify.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Make the address work for Irish shoppers
&lt;/h2&gt;

&lt;p&gt;Shopify’s checkout asks Irish customers for an Eircode. Keep it, because carriers use it to route parcels, especially to rural addresses that share a townland name. If you print labels through an app, check the Eircode is carried across to the label.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Set a free-shipping threshold that makes money
&lt;/h2&gt;

&lt;p&gt;Free shipping over a set amount is one of the most effective ways to raise average order value. Set the threshold a little above your current average order, so shoppers add one more item to reach it. Show it in the announcement bar and the cart, so people know how close they are.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Offer local pickup if you have a shop
&lt;/h2&gt;

&lt;p&gt;If you have a shop or a unit customers can visit, turn on local pickup for that location. It removes the shipping cost entirely for local customers and often brings them in to buy more.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Prepare for UK customs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add an HS (tariff) code and country of origin to each product in Shopify. Carriers need them for customs declarations.&lt;/li&gt;
&lt;li&gt;Decide who pays duties. Without setup, the customer pays on delivery, which leads to refused parcels and angry reviews.&lt;/li&gt;
&lt;li&gt;Check the UK VAT rules for parcels of £135 or less; see my&lt;a href="https://satyam-mishra-dev.tech/guides/shopify-vat-oss-ireland" rel="noopener noreferrer"&gt;Shopify VAT and OSS guide&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Northern Ireland vs Great Britain at a glance
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Northern Ireland&lt;/th&gt;
&lt;th&gt;Great Britain&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Customs declarations from Ireland&lt;/td&gt;
&lt;td&gt;No. Northern Ireland follows EU rules for goods.&lt;/td&gt;
&lt;td&gt;Yes, for every parcel.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customs duty&lt;/td&gt;
&lt;td&gt;No.&lt;/td&gt;
&lt;td&gt;None on parcels of £135 or less; above that, duty can apply depending on the goods and their origin.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VAT&lt;/td&gt;
&lt;td&gt;Depends on your registrations; confirm with your accountant.&lt;/td&gt;
&lt;td&gt;£135 or less: the seller charges UK VAT at checkout and needs a UK VAT registration. Above £135: collected from the customer at import.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Duties at checkout in Shopify&lt;/td&gt;
&lt;td&gt;Not supported for Northern Ireland.&lt;/td&gt;
&lt;td&gt;Possible with Shopify’s duties and import taxes settings.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Parcels the customer has to pay on before delivery are the ones that get refused. For Great Britain, either collect VAT at checkout under the £135 rules or say clearly on the product and checkout pages what the customer may pay on arrival.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Make returns simple
&lt;/h2&gt;

&lt;p&gt;Under EU consumer law, online shoppers can usually cancel within 14 days of receiving their order. Write a clear returns policy, add it in Shopify’s policy settings so it shows at checkout, and turn on self-serve returns so customers can request one from their account instead of emailing you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test every zone before launch
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Place a test order to a Dublin address, a rural Eircode, a Belfast BT postcode, a London address and an EU address.&lt;/li&gt;
&lt;li&gt;Check the right rates show, the free-shipping threshold works, and pickup only appears where it should.&lt;/li&gt;
&lt;li&gt;Print a real label for one order and check the address and customs details are complete.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Shopify shipping questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can I charge different shipping for Northern Ireland?
&lt;/h3&gt;

&lt;p&gt;Yes. In your UK shipping zone, split the UK into its regions and give Northern Ireland its own rates. Its postcodes start with BT.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do parcels to Northern Ireland need customs forms?
&lt;/h3&gt;

&lt;p&gt;No. Goods moving between Ireland and Northern Ireland do not need customs declarations, which is why it should not be priced like Great Britain.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who pays customs on parcels to England, Scotland and Wales?
&lt;/h3&gt;

&lt;p&gt;On parcels of £135 or less, you charge UK VAT at checkout and there is no duty. Above £135, the courier collects VAT and any duty from the customer before delivery, unless you have set up Shopify to collect it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.gov.uk/guidance/trading-and-moving-goods-in-and-out-of-northern-ireland" rel="noopener noreferrer"&gt;Trading and moving goods in and out of Northern Ireland, GOV.UK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gov.uk/guidance/vat-and-overseas-goods-sold-directly-to-customers-in-the-uk" rel="noopener noreferrer"&gt;VAT and overseas goods sold directly to customers in the UK, GOV.UK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gov.uk/goods-sent-from-abroad/tax-and-duty" rel="noopener noreferrer"&gt;Tax and customs for goods sent from abroad, GOV.UK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://changelog.shopify.com/posts/create-shipping-zones-within-the-united-kingdom" rel="noopener noreferrer"&gt;Create shipping zones within the United Kingdom, Shopify changelog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://help.shopify.com/en/manual/international/duties-and-import-taxes/considerations" rel="noopener noreferrer"&gt;Duties and import taxes considerations, Shopify Help Center&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;I'm &lt;a href="https://satyam-mishra-dev.tech" rel="noopener noreferrer"&gt;Satyam Mishra&lt;/a&gt;, a software developer in Pune working with stores and startups in Ireland, Europe and the US. More guides at &lt;a href="https://satyam-mishra-dev.tech/guides" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech/guides&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>shopify</category>
      <category>ecommerce</category>
      <category>webdev</category>
    </item>
    <item>
      <title>GDPR Cookie Consent on Shopify: What EU Stores Need</title>
      <dc:creator>Satyam Mishra</dc:creator>
      <pubDate>Mon, 19 Oct 2026 20:45:06 +0000</pubDate>
      <link>https://dev.to/satyammishradev/gdpr-cookie-consent-on-shopify-what-eu-stores-need-34d1</link>
      <guid>https://dev.to/satyammishradev/gdpr-cookie-consent-on-shopify-what-eu-stores-need-34d1</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://satyam-mishra-dev.tech/guides/shopify-gdpr-cookie-consent" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If your Shopify store sells to people in Ireland or anywhere in the EU, you need their consent before analytics and advertising cookies run. Many stores have a banner that looks right but loads the Meta pixel and Google tags before anyone clicks anything. This is how to set it up so it actually works.&lt;/p&gt;

&lt;p&gt;This guide explains the technical setup. It is not legal advice: for your privacy policy and data processing, speak to a solicitor or data protection adviser.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rules in plain terms
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Cookies that are strictly needed for the store to work, like the cart and checkout, do not need consent.&lt;/li&gt;
&lt;li&gt;Analytics, advertising and most marketing cookies do need consent, given before they load.&lt;/li&gt;
&lt;li&gt;Rejecting must be as easy as accepting. A big “Accept all” next to a hidden “Settings” link is not a fair choice.&lt;/li&gt;
&lt;li&gt;No pre-ticked boxes, and no “by continuing to browse you agree”.&lt;/li&gt;
&lt;li&gt;In Ireland, the Data Protection Commission’s cookie guidance also says consent should not be assumed to last forever; asking again after around six months is a sensible default.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Turn on Shopify’s own cookie banner
&lt;/h2&gt;

&lt;p&gt;Shopify has a built-in cookie banner under &lt;strong&gt;Settings → Customer privacy&lt;/strong&gt;. It connects to Shopify’s Customer Privacy API, which is what Shopify’s own analytics, the Google and YouTube app, the Facebook and Instagram app and many other apps listen to. Set it to show to visitors in the EU and UK, and include a clear reject button.&lt;/p&gt;

&lt;p&gt;If you use a third-party consent app instead, check it passes the shopper’s choice to the Customer Privacy API. If it doesn’t, your apps cannot see the choice and keep tracking anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Find tracking that ignores consent
&lt;/h2&gt;

&lt;p&gt;The banner only controls the tags that ask it for permission. Code pasted straight into the theme usually doesn’t ask. Look for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Analytics or Google Ads tags hard-coded in &lt;code&gt;theme.liquid&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A Meta pixel added by hand on top of the Facebook and Instagram app, which also double-counts purchases.&lt;/li&gt;
&lt;li&gt;Old scripts in Settings → Checkout or in the order status page, left over from previous apps.&lt;/li&gt;
&lt;li&gt;Chat widgets, heatmaps and review apps that set their own cookies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Move tracking into Shopify’s customer events (pixels) or the official apps, which respect consent, and delete the hard-coded copies.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Set up Google Consent Mode v2
&lt;/h2&gt;

&lt;p&gt;Since March 2024, Google requires Consent Mode v2 for advertisers who want remarketing and conversion measurement for users in the European Economic Area. Without it, your Google Ads audiences shrink and conversions go missing. The Google and YouTube app on Shopify supports Consent Mode and reads the shopper’s choice from Shopify’s privacy settings, so with the built-in banner this is mostly a case of connecting the official app instead of pasting tags.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Test what actually loads
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the store in a private window from an EU location, or with a VPN set to Ireland.&lt;/li&gt;
&lt;li&gt;Before clicking the banner, open the browser’s developer tools and check the Network tab. No requests should go to Meta, Google Ads, TikTok or analytics tools.&lt;/li&gt;
&lt;li&gt;Click reject and browse a few pages. Still nothing should fire.&lt;/li&gt;
&lt;li&gt;Open a new private window, click accept, and check the tags now load and record a page view.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  5. Email marketing consent is separate
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Cookie consent does not give you permission to send marketing emails.&lt;/li&gt;
&lt;li&gt;Use an unticked box at checkout or signup for marketing emails, and record who ticked it. Shopify stores this on the customer record.&lt;/li&gt;
&lt;li&gt;Existing customers can sometimes be emailed about similar products without a fresh opt-in, provided they had a clear chance to opt out, but check this with your adviser.&lt;/li&gt;
&lt;li&gt;When moving from another platform, only import customers who opted in as subscribed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Shopify’s banner or a cookie consent app?
&lt;/h2&gt;

&lt;p&gt;Shopify’s own banner is enough when every tracking tool on the store runs through Shopify: the official Google, Meta and TikTok apps and pixels added under customer events. They all read the shopper’s choice from the Customer Privacy API. A consent app earns its place when the store also loads scripts Shopify does not control, or when you need features the built-in banner does not offer.&lt;/p&gt;

&lt;p&gt;Before installing one, check four things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;It writes the choice to Shopify’s Customer Privacy API.&lt;/strong&gt; Otherwise Shopify’s own apps and checkout cannot see what the shopper decided.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It sends Google Consent Mode v2 signals&lt;/strong&gt;, including the newer &lt;code&gt;ad_user_data&lt;/code&gt; and &lt;code&gt;ad_personalization&lt;/code&gt;, or Google Ads and GA4 lose EU data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It blocks scripts until consent&lt;/strong&gt;, not just hides the banner. On some apps this is only on paid plans.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reject is as easy as accept.&lt;/strong&gt; A “Reject all” button next to “Accept all”, not hidden behind “Settings”.&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;What stands out&lt;/th&gt;
&lt;th&gt;Watch for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Shopify cookie banner&lt;/td&gt;
&lt;td&gt;Free, built in, connected to the Customer Privacy API by default.&lt;/td&gt;
&lt;td&gt;Only controls tracking that goes through Shopify. Scripts pasted into the theme are not blocked.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pandectes GDPR Compliance&lt;/td&gt;
&lt;td&gt;Uses Shopify’s privacy API, highly rated on the App Store, free plan for the banner.&lt;/td&gt;
&lt;td&gt;Consent Mode, automatic blocking and IAB TCF sit on higher paid plans.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cookiebot&lt;/td&gt;
&lt;td&gt;Consent Mode v2 and blocking before consent on its free plan.&lt;/td&gt;
&lt;td&gt;Its Shopify app is new, with few reviews so far.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CookieFirst&lt;/td&gt;
&lt;td&gt;Google-certified consent platform with euro pricing, installed with its own script.&lt;/td&gt;
&lt;td&gt;Check how it is installed on your theme and that it passes consent to Shopify’s API.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Plans and prices change often, so check each app’s current listing before you choose. The four checks above matter more than the brand.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common mistakes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A banner with “Accept” and “Close”, where closing still loads every tag.&lt;/li&gt;
&lt;li&gt;A banner that only shows on the home page, while shoppers from Google land straight on product pages.&lt;/li&gt;
&lt;li&gt;A privacy policy that doesn’t list the apps and tools the store actually uses.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Shopify GDPR cookie questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does Shopify have a built-in cookie banner?
&lt;/h3&gt;

&lt;p&gt;Yes, under Settings → Customer privacy. It can be shown only to visitors from regions that need it, such as the EU and the UK.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is a cookie banner legally required for an Irish store?
&lt;/h3&gt;

&lt;p&gt;Yes, if the store sets any non-essential cookies, which includes analytics and ad pixels. The Irish Data Protection Commission’s cookie guidance requires consent before those cookies are set, and does not accept pre-ticked boxes or “by continuing to browse you agree”.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need a paid consent app?
&lt;/h3&gt;

&lt;p&gt;Not always. If all tracking runs through Shopify’s official apps and customer events, the free built-in banner covers it. Paid plans are mainly for blocking outside scripts automatically and for advanced Consent Mode.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens if Consent Mode is missing?
&lt;/h3&gt;

&lt;p&gt;Google Ads and GA4 cannot use EU visitors’ data for measurement and remarketing in the way they expect, so reported conversions drop and audiences shrink.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://shopify.dev/docs/api/customer-privacy" rel="noopener noreferrer"&gt;Customer Privacy API, Shopify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.google.com/google-ads/answer/13695607" rel="noopener noreferrer"&gt;EU user consent policy and Consent Mode, Google Ads Help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dataprotection.ie/sites/default/files/uploads/2020-04/Guidance%20note%20on%20cookies%20and%20other%20tracking%20technologies.pdf" rel="noopener noreferrer"&gt;Guidance note on cookies and other tracking technologies, Data Protection Commission (2020)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://apps.shopify.com/gdpr-cookie-consent" rel="noopener noreferrer"&gt;Pandectes GDPR Compliance, Shopify App Store&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://apps.shopify.com/cookiebot-cmp-gdpr-compliance" rel="noopener noreferrer"&gt;Cookiebot, Shopify App Store&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cookiefirst.com/shopify/" rel="noopener noreferrer"&gt;CookieFirst for Shopify&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;I'm &lt;a href="https://satyam-mishra-dev.tech" rel="noopener noreferrer"&gt;Satyam Mishra&lt;/a&gt;, a software developer in Pune working with stores and startups in Ireland, Europe and the US. More guides at &lt;a href="https://satyam-mishra-dev.tech/guides" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech/guides&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>shopify</category>
      <category>gdpr</category>
      <category>ecommerce</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Shopify vs WooCommerce for Irish Businesses: The Real Costs</title>
      <dc:creator>Satyam Mishra</dc:creator>
      <pubDate>Mon, 19 Oct 2026 20:44:04 +0000</pubDate>
      <link>https://dev.to/satyammishradev/shopify-vs-woocommerce-for-irish-businesses-the-real-costs-3a2</link>
      <guid>https://dev.to/satyammishradev/shopify-vs-woocommerce-for-irish-businesses-the-real-costs-3a2</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://satyam-mishra-dev.tech/guides/shopify-vs-woocommerce-ireland" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;WooCommerce looks free and Shopify has a monthly fee, so WooCommerce often looks cheaper. Once you count hosting, plugins, security and the hours someone spends keeping it running, the answer changes for most stores. Here is the honest comparison I give Irish business owners.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short answer
&lt;/h2&gt;

&lt;p&gt;For most Irish stores selling physical products, &lt;strong&gt;Shopify costs less to run&lt;/strong&gt; once you count time, and it is harder to break. WooCommerce makes sense when you need something Shopify does not allow, already have a developer looking after WordPress, or your store is really a content site with a small shop attached.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the money actually goes
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;WooCommerce&lt;/th&gt;
&lt;th&gt;Shopify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Platform&lt;/td&gt;
&lt;td&gt;Free plugin&lt;/td&gt;
&lt;td&gt;Monthly plan, billed in euro, cheaper if paid yearly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting&lt;/td&gt;
&lt;td&gt;You pay for it. Cheap shared hosting struggles on sale days; good managed WordPress hosting costs real money.&lt;/td&gt;
&lt;td&gt;Included, with SSL and a global CDN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Theme&lt;/td&gt;
&lt;td&gt;Free or a one-off premium theme&lt;/td&gt;
&lt;td&gt;Free or a one-off premium theme&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extensions&lt;/td&gt;
&lt;td&gt;Many plugins are paid yearly licences: subscriptions, bookings, product filters, backups, security&lt;/td&gt;
&lt;td&gt;Many apps are monthly subscriptions; a lot of what needs a plugin on WooCommerce is built in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payment fees&lt;/td&gt;
&lt;td&gt;Your payment provider’s fees only&lt;/td&gt;
&lt;td&gt;No extra fee with Shopify Payments; an extra platform fee if you use another payment provider&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security and updates&lt;/td&gt;
&lt;td&gt;Your job: WordPress, plugin and PHP updates, backups, malware clean-ups&lt;/td&gt;
&lt;td&gt;Handled by Shopify&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Your time&lt;/td&gt;
&lt;td&gt;Regular hours on updates, conflicts and fixes&lt;/td&gt;
&lt;td&gt;Mostly spent on products and marketing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Plan prices change, so check Shopify’s Irish pricing page and your hosting provider for current figures before deciding.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hidden cost: maintenance
&lt;/h2&gt;

&lt;p&gt;A WooCommerce store is WordPress plus WooCommerce plus every plugin, each updated on its own schedule. An update that breaks checkout on a Friday evening costs more than a year of Shopify fees for many small stores. If nobody in your business wants to own that, you will be paying a developer to.&lt;/p&gt;

&lt;h2&gt;
  
  
  When WooCommerce is the better choice
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Your site is mostly content, like a magazine or a blog, and the shop is a small part of it.&lt;/li&gt;
&lt;li&gt;You need full control of checkout logic that Shopify does not allow on your plan.&lt;/li&gt;
&lt;li&gt;You already pay a developer or agency to look after WordPress and they do it well.&lt;/li&gt;
&lt;li&gt;You sell a handful of products and are comfortable maintaining WordPress yourself.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When Shopify is the better choice
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You want to spend your time selling, not keeping a website running.&lt;/li&gt;
&lt;li&gt;You get traffic spikes from sales, Black Friday or social media and cannot afford downtime.&lt;/li&gt;
&lt;li&gt;You want fast mobile checkout with Apple Pay, Google Pay and Shop Pay without extra setup.&lt;/li&gt;
&lt;li&gt;You plan to sell across the EU and want currencies, languages and VAT handled per country.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it costs to build
&lt;/h2&gt;

&lt;p&gt;Building either platform properly costs roughly the same in development time: design, product setup, payments, shipping, VAT and testing. Moving an existing store is a separate job, mostly spent on data and redirects. If you are already on WooCommerce and thinking of switching, my&lt;a href="https://satyam-mishra-dev.tech/guides/woocommerce-to-shopify-ireland" rel="noopener noreferrer"&gt;WooCommerce to Shopify checklist&lt;/a&gt;covers what moves, what doesn’t and how to keep your Google rankings.&lt;/p&gt;




&lt;p&gt;I'm &lt;a href="https://satyam-mishra-dev.tech" rel="noopener noreferrer"&gt;Satyam Mishra&lt;/a&gt;, a software developer in Pune working with stores and startups in Ireland, Europe and the US. More guides at &lt;a href="https://satyam-mishra-dev.tech/guides" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech/guides&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>shopify</category>
      <category>woocommerce</category>
      <category>ecommerce</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Shopify VAT and OSS for Irish Stores: How to Set It Up</title>
      <dc:creator>Satyam Mishra</dc:creator>
      <pubDate>Mon, 19 Oct 2026 20:42:36 +0000</pubDate>
      <link>https://dev.to/satyammishradev/shopify-vat-and-oss-for-irish-stores-how-to-set-it-up-570l</link>
      <guid>https://dev.to/satyammishradev/shopify-vat-and-oss-for-irish-stores-how-to-set-it-up-570l</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://satyam-mishra-dev.tech/guides/shopify-vat-oss-ireland" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Shopify can calculate VAT for you, but only if it is told the right things: where you are registered, whether you use the One Stop Shop, and whether your prices include VAT. Get these wrong and you either overcharge customers or owe Revenue the difference. This is how I set it up for Irish stores.&lt;/p&gt;

&lt;p&gt;This guide explains how Shopify’s settings work. It is not tax advice: confirm rates, thresholds and registrations with your accountant or Revenue.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Know which rates apply to your products
&lt;/h2&gt;

&lt;p&gt;Ireland has a standard VAT rate of 23%, reduced rates of 13.5% and 9%, and a 0% rate on things like children’s clothes and shoes and printed books. Most stores sell at 23%, but if you sell anything at another rate, those products need their own tax override in Shopify. Otherwise everything is charged at the standard rate.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Show prices with VAT included
&lt;/h2&gt;

&lt;p&gt;Irish and EU shoppers expect the price they see to be the price they pay. In &lt;strong&gt;Settings → Taxes and duties&lt;/strong&gt;, turn on the option to include tax in prices. If you sell to several EU countries, Shopify can either keep one VAT-inclusive price everywhere or adjust the price to each country’s VAT rate. Decide which before launch, because it changes your margin per country.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Understand the €10,000 EU threshold
&lt;/h2&gt;

&lt;p&gt;Since July 2021, if your total sales to consumers in other EU countries stay under €10,000 a year, you can charge Irish VAT on them. Once you pass €10,000 across all EU countries combined, you must charge the VAT rate of the customer’s country instead.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Your EU cross-border sales&lt;/th&gt;
&lt;th&gt;VAT you charge&lt;/th&gt;
&lt;th&gt;Where you report it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Under €10,000 a year&lt;/td&gt;
&lt;td&gt;Irish VAT&lt;/td&gt;
&lt;td&gt;Your normal Irish VAT return&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Over €10,000 a year&lt;/td&gt;
&lt;td&gt;The customer’s country’s VAT&lt;/td&gt;
&lt;td&gt;The One Stop Shop (OSS) return, through ROS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  4. Register for the One Stop Shop (OSS)
&lt;/h2&gt;

&lt;p&gt;OSS saves you from registering for VAT in every EU country you sell to. You register once through Revenue Online Service (ROS), file one quarterly OSS return covering all EU countries, and Revenue passes the VAT on. In Shopify, add your Irish VAT number, mark that you are registered for OSS, and Shopify starts charging each customer their own country’s rate.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Check shipping and discounts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In Ireland, delivery charges generally follow the VAT rate of the goods. Make sure Shopify is set to charge VAT on shipping rates.&lt;/li&gt;
&lt;li&gt;Discounts reduce the price VAT is calculated on. Test a discount code on a real order and check the VAT on the receipt.&lt;/li&gt;
&lt;li&gt;Gift cards are not taxed when sold; VAT is charged when they are spent on products.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Business customers
&lt;/h2&gt;

&lt;p&gt;When you sell to a VAT-registered business in another EU country, the sale is usually zero-rated under the reverse charge: they account for the VAT, not you. To do this you need their VAT number, checked against the EU’s VIES database. Shopify can handle this through its business-customer settings or a VAT-number app, depending on your plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Northern Ireland and Great Britain
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Northern Ireland&lt;/strong&gt; follows EU rules for goods, so parcels go there without customs declarations. How VAT works on sales to consumers in Northern Ireland is less clear: UK and EU guidance describe it differently, and Shopify charges different VAT depending on which registrations you hold. Confirm the treatment with your accountant before turning on Northern Ireland tax in Shopify.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Great Britain&lt;/strong&gt; is outside the EU. For parcels worth £135 or less, you generally need to register for UK VAT and charge it at checkout. Above £135, VAT and any duty are collected at import. Set Great Britain up as its own market in Shopify so prices and taxes are handled separately.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. Test before you trust it
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Place test orders to Ireland, another EU country and the UK.&lt;/li&gt;
&lt;li&gt;Check the VAT on each receipt matches what your accountant expects.&lt;/li&gt;
&lt;li&gt;Check a product with a reduced rate shows the right amount.&lt;/li&gt;
&lt;li&gt;Download Shopify’s tax report and confirm it has what you need for your returns.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Shopify VAT and OSS questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What VAT rate do I charge Irish customers?
&lt;/h3&gt;

&lt;p&gt;The standard rate is 23%. Some goods qualify for the reduced rates of 13.5% or 9%, so check each product category against Revenue’s rates database before setting product overrides.&lt;/p&gt;

&lt;h3&gt;
  
  
  When do I need to register for OSS?
&lt;/h3&gt;

&lt;p&gt;Once your sales of goods to consumers in other EU countries pass €10,000 in a calendar year across the whole EU, VAT is due in each customer’s country. OSS lets you declare all of it in one quarterly return through ROS instead of registering in every country.&lt;/p&gt;

&lt;h3&gt;
  
  
  When are OSS returns due?
&lt;/h3&gt;

&lt;p&gt;By the end of the month after each quarter: 30 April, 31 July, 31 October and 31 January. A return is due even if you made no sales in the quarter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need IOSS?
&lt;/h3&gt;

&lt;p&gt;Not if you ship from Ireland. IOSS is for goods imported into the EU from outside it, in orders of up to €150.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to register for UK VAT?
&lt;/h3&gt;

&lt;p&gt;If you sell parcels worth £135 or less to consumers in Great Britain, generally yes: the UK expects the seller to charge UK VAT at checkout. Above £135, VAT and any duty are collected at import.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.revenue.ie/en/vat/vat-rates/historical-vat-rates/index.aspx" rel="noopener noreferrer"&gt;VAT rates, Revenue&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.revenue.ie/en/vat/vat-ecommerce/union-scheme/index.aspx" rel="noopener noreferrer"&gt;Union scheme (OSS), Revenue&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vat-one-stop-shop.ec.europa.eu/one-stop-shop/declare-and-pay-oss_en" rel="noopener noreferrer"&gt;Declare and pay OSS, European Commission&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gov.uk/guidance/vat-and-overseas-goods-sold-directly-to-customers-in-the-uk" rel="noopener noreferrer"&gt;VAT and overseas goods sold directly to customers in the UK, GOV.UK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://help.shopify.com/en/manual/taxes/uk/uk-tax-reference" rel="noopener noreferrer"&gt;UK tax reference, Shopify Help Center&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;I'm &lt;a href="https://satyam-mishra-dev.tech" rel="noopener noreferrer"&gt;Satyam Mishra&lt;/a&gt;, a software developer in Pune working with stores and startups in Ireland, Europe and the US. More guides at &lt;a href="https://satyam-mishra-dev.tech/guides" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech/guides&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>shopify</category>
      <category>ecommerce</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why Your Shopify Store Is Slow, and How to Fix It</title>
      <dc:creator>Satyam Mishra</dc:creator>
      <pubDate>Mon, 19 Oct 2026 20:42:34 +0000</pubDate>
      <link>https://dev.to/satyammishradev/why-your-shopify-store-is-slow-and-how-to-fix-it-1ha9</link>
      <guid>https://dev.to/satyammishradev/why-your-shopify-store-is-slow-and-how-to-fix-it-1ha9</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://satyam-mishra-dev.tech/guides/shopify-store-speed" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most slow Shopify stores are not slow because of Shopify. They are slow because of what has been added on top: apps that each load their own scripts, huge images, extra fonts and theme code nobody has looked at in years. This is how I find and fix it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why speed matters for a store
&lt;/h2&gt;

&lt;p&gt;A shopper on a phone decides within a few seconds whether a page is worth waiting for. Slow pages lose visitors before the product even appears, and Google uses loading speed, through its Core Web Vitals, as one of the signals for ranking. A faster store gets more out of the traffic you already pay for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Measure first, properly
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;PageSpeed Insights&lt;/strong&gt; on your home page, a collection page and a product page. Those three templates carry most of your traffic and they are usually slow for different reasons.&lt;/li&gt;
&lt;li&gt;Look at the &lt;strong&gt;mobile&lt;/strong&gt; result. Most shoppers are on phones, and the mobile test runs on a slower device and network, which is where problems show.&lt;/li&gt;
&lt;li&gt;Focus on &lt;strong&gt;Largest Contentful Paint (LCP)&lt;/strong&gt;, the time until the main image or heading appears. Google’s target is under 2.5 seconds.&lt;/li&gt;
&lt;li&gt;If your store has enough visitors, the “real users” section at the top shows field data from Chrome users. That is what Google actually ranks on.&lt;/li&gt;
&lt;li&gt;Write the numbers down. Without a before, you cannot prove an after.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The usual causes
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cause&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;The fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Too many apps&lt;/td&gt;
&lt;td&gt;Each app can inject its own JavaScript and CSS on every page, even pages where it does nothing.&lt;/td&gt;
&lt;td&gt;Remove apps you no longer use, and check their leftover code is gone from the theme. Replace small apps with a few lines of theme code.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oversized images&lt;/td&gt;
&lt;td&gt;A 4,000-pixel product photo sent to a phone screen that shows it at 400 pixels.&lt;/td&gt;
&lt;td&gt;Use Shopify’s image sizes and srcset so each device gets the right size, and lazy-load images below the fold.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lazy-loaded hero image&lt;/td&gt;
&lt;td&gt;The most important image on the page waits until the browser decides it is needed.&lt;/td&gt;
&lt;td&gt;Load the first image eagerly with high fetch priority; lazy-load everything after it.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sliders and videos at the top&lt;/td&gt;
&lt;td&gt;Heavy JavaScript and large files delay the first thing the shopper sees.&lt;/td&gt;
&lt;td&gt;Use one strong static image, or load the video only after the page is interactive.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extra fonts&lt;/td&gt;
&lt;td&gt;Several font families and weights, each a separate download, block text from showing.&lt;/td&gt;
&lt;td&gt;Use one or two weights, preload the main one, and set font-display so text shows straight away.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Old theme code&lt;/td&gt;
&lt;td&gt;Years of edits, unused sections and scripts that run on every page.&lt;/td&gt;
&lt;td&gt;Move to a current Online Store 2.0 theme, or clean the existing one section by section.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  A real example: 11.6 seconds to about 1 second
&lt;/h2&gt;

&lt;p&gt;My own site had the same problem in a different form. The portfolio runs a 3D scene and an animated loader, which is fine for people who come to see my work, but my service pages loaded all of it too. On a mobile test, the main content of those pages took 11.6 seconds to appear.&lt;/p&gt;

&lt;p&gt;The fix was not clever. I gave the service pages a light layout that skips the 3D scene and the loader entirely, so the text and first image are in the HTML from the start and nothing heavy runs before them. The same measurement then came in at about 1 second.&lt;/p&gt;

&lt;p&gt;The lesson carries straight over to Shopify: &lt;strong&gt;find the heavy thing that runs before your content, and stop it running on the pages that need to sell.&lt;/strong&gt; On stores that is usually an app script, a slider or a video, not the platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  What not to do
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Don’t install a “speed booster” app. Adding another app to fix the cost of apps rarely ends well, and some only improve the test score, not the real experience.&lt;/li&gt;
&lt;li&gt;Don’t chase a perfect 100. A product page that loads in 2 seconds and sells is better than a stripped page that scores 100.&lt;/li&gt;
&lt;li&gt;Don’t delete an app before checking what still depends on it, like reviews shown in Google results or a subscription checkout.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A quick checklist
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Test the home, collection and product pages on mobile and write the numbers down.&lt;/li&gt;
&lt;li&gt;List every installed app and what it is for. Remove what you don’t use.&lt;/li&gt;
&lt;li&gt;Check the hero image is not lazy-loaded and is served at the right size.&lt;/li&gt;
&lt;li&gt;Cut fonts to one family and one or two weights.&lt;/li&gt;
&lt;li&gt;Replace sliders and autoplay videos at the top of the page.&lt;/li&gt;
&lt;li&gt;Test again and compare.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;I'm &lt;a href="https://satyam-mishra-dev.tech" rel="noopener noreferrer"&gt;Satyam Mishra&lt;/a&gt;, a software developer in Pune working with stores and startups in Ireland, Europe and the US. More guides at &lt;a href="https://satyam-mishra-dev.tech/guides" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech/guides&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>shopify</category>
      <category>ecommerce</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Typesense for Ecommerce Search: Intent, Open Source, Guardrails</title>
      <dc:creator>Satyam Mishra</dc:creator>
      <pubDate>Sat, 10 Oct 2026 11:14:57 +0000</pubDate>
      <link>https://dev.to/satyammishradev/typesense-for-ecommerce-search-intent-open-source-guardrails-cd8</link>
      <guid>https://dev.to/satyammishradev/typesense-for-ecommerce-search-intent-open-source-guardrails-cd8</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://satyam-mishra-dev.tech/guides/typesense-ecommerce-search" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Shoppers don’t search the way product catalogs are written. They type “back pain”, “60 inch tv” or “something for standing all day”, and most store search boxes answer with nothing. Typesense, an open-source search engine, lets a small team build search that understands what people mean, fast, and on their own terms. This is why it matters and how we put it to work, guardrails included.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search is where buying intent is loudest
&lt;/h2&gt;

&lt;p&gt;Someone who types into your search box has already told you what they want. That makes search the most valuable box on the page, and the one most stores get wrong. Baymard Institute benchmarks ecommerce search every year across more than 170 sites and apps. Its 2026 numbers say 56% of sites fail to adequately support what users search for, and roughly half of shoppers prefer search over the menu to find products.&lt;/p&gt;

&lt;p&gt;The failures are not random. Baymard splits searches into eight query types, and the gap shows up exactly where shoppers stop typing product names and start describing their problem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6gxibxzcjmbi7g963jpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6gxibxzcjmbi7g963jpq.png" alt="Bar chart: share of ecommerce sites with search issues by query type. Exact 12%, product type 20%, symptom 37%, feature 39%, use case 43%, compatibility 44%, abbreviation 54%, non-product 66%." width="799" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Searching by name mostly works. Searching by need, symptom or use mostly doesn’t. Source:&lt;a href="https://baymard.com/research-articles/ecommerce-search-query-types" rel="noopener noreferrer"&gt;Baymard Institute, Ecommerce Search UX (2026)&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A keyword engine can only match words that are in your product data. “Back pain” is not in the title of an ergonomic chair. “Footwear” is not in the title of an insole, and that is a good thing, because a shopper looking for shoes does not want insoles. Good search has to understand both what a query means and what it doesn’t.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Typesense brings to the table
&lt;/h2&gt;

&lt;p&gt;Typesense is a search engine written in C++ that keeps its index in memory. Its own description is a “fast, typo tolerant, in-memory fuzzy search engine”, and its features list targets searches under 50 milliseconds. For an online store, a handful of features carry most of the weight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Typo tolerance on by default.&lt;/strong&gt; Up to two typos per word, with prefix matching so results update as the shopper types. “Insloe” still finds insoles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Synonyms.&lt;/strong&gt; Tell the engine that two words mean the same thing in your shop, including local words your customers use and your catalog doesn’t.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Curation.&lt;/strong&gt; Pin chosen products to the top for a specific query. The query that brings the most traffic deserves a hand-picked answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built-in vector search.&lt;/strong&gt; Typesense can create embeddings itself with a bundled model such as &lt;code&gt;all-MiniLM-L12-v2&lt;/code&gt;, both when it indexes products and when a query arrives. No separate machine-learning service to run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid search.&lt;/strong&gt; One request runs a keyword search and a semantic search together and fuses the two rankings. You choose how much weight the semantic side gets, and a distance threshold that drops weak semantic matches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Natural-language search.&lt;/strong&gt; Since version 29, an LLM can turn “a Honda or BMW with at least 200 hp” into real filters and sorts. More on that, and its risks, below.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Hybrid search: matching words and matching meaning
&lt;/h2&gt;

&lt;p&gt;Keyword search is precise and fast. Semantic search understands meaning, but on its own it drifts: everything is a little bit similar to everything. Hybrid search uses each for what it is good at. Researchers describe the same idea in a 2024 paper on hybrid semantic search: combining keyword matching with semantic embeddings captures both the explicit and the implicit intent behind a query.&lt;/p&gt;

&lt;p&gt;In practice that means the shopper who types a product name gets the exact product first, because the keyword side wins. The shopper who types a symptom or a use case still gets relevant products, because the semantic side finds them when no keyword matches. The tuning comes down to two decisions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;How much to trust meaning over words.&lt;/strong&gt; Typesense’s default fusion gives 70% weight to keyword rank and 30% to semantic rank. For a store where people often search by product name, keeping keywords in charge is usually right.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How far is too far.&lt;/strong&gt; A distance threshold cuts semantic matches that are only loosely related. Set it too loose and a search for “chair” starts showing cushions. Set it too tight and “back pain” finds nothing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why open source matters for a store
&lt;/h2&gt;

&lt;p&gt;Typesense is licensed under GPL-3.0 and is free to self-host as a single binary. That changes the conversation in three ways.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Open source (Typesense)&lt;/th&gt;
&lt;th&gt;Closed SaaS search&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;What do you pay for?&lt;/td&gt;
&lt;td&gt;Your own server, or Typesense Cloud billed hourly by cluster size, with no per-search or per-record charges&lt;/td&gt;
&lt;td&gt;Often per search request and per record, so cost grows with traffic and catalog size&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A new sort order (price, rating)?&lt;/td&gt;
&lt;td&gt;Sort fields are chosen at query time on one index&lt;/td&gt;
&lt;td&gt;Some providers need a duplicate index per sort order, which adds billable records&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can you leave?&lt;/td&gt;
&lt;td&gt;Yes. Same engine on your server or theirs, and you can read the code&lt;/td&gt;
&lt;td&gt;Your ranking logic lives in someone else’s dashboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where does the data live?&lt;/td&gt;
&lt;td&gt;Where you choose, which helps with EU data rules&lt;/td&gt;
&lt;td&gt;Where the provider runs it&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a growing store, the first row is the big one. A sale weekend multiplies searches. With per-request pricing, your best days cost the most. With a fixed-size cluster, they cost the same.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we put it to work
&lt;/h2&gt;

&lt;p&gt;At Frido we rebuilt product search on Typesense. I won’t share the internals, but the shape is one any store can copy, and the lessons were the useful part.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frwiqmc8hr1pr85s7nioi.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frwiqmc8hr1pr85s7nioi.webp" alt="Architecture diagram: shopper types into a debounced search box, which calls a search API with limits, cache and timeout, which runs hybrid search on Typesense. The browser can also query Typesense directly with a search-only scoped key. A sync job indexes changes from the store catalog. On error or timeout the API falls back to plain keyword search." width="799" height="247"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A generic shape for open-source product search. The catalog stays the source of truth; the search index is a copy you can rebuild at any time. Diagram made with Archify.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The index is a copy, never the truth.&lt;/strong&gt; Products live in the store platform. A sync job pushes changes into Typesense as they happen, and a full rebuild takes seconds. If the index is ever wrong or empty, we rebuild it instead of fixing it by hand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Each result carries its own card.&lt;/strong&gt; We store what the product card needs next to the searchable fields, so a hit renders straight away with no second lookup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Typeahead stays keyword-only.&lt;/strong&gt; Suggestions while typing need to be instant. In our measurements a keyword lookup returns in a few milliseconds, while embedding a new query adds roughly a tenth of a second. So the dropdown skips the semantic step and the full results page uses hybrid search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero results get a second chance.&lt;/strong&gt; If the hybrid search finds nothing, we retry with semantic search alone and a looser threshold. Shoppers almost never hit a dead end, and the extra cost is only paid on misses.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What the data taught us
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep marketing copy out of keyword fields.&lt;/strong&gt; Long benefit bullets mention every related word, so they make products match searches they have nothing to do with. We keep keyword matching on titles, categories and tags, and let the embedding read the descriptive text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feed the embedding less, not more.&lt;/strong&gt; Adding noisy fields pulled one product’s meaning away from what it actually was. Removing them made it find its own category again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use synonyms only where meaning fails.&lt;/strong&gt; Embeddings are not perfect. In ours, “table” sat closer to chairs than to desks. A one-way synonym fixed it. The rule we follow: only true equivalents, never two different categories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your copy limits your intent search.&lt;/strong&gt; Semantic search can only find “for standing all day” if somewhere in the product text it says what the product is for. Better product descriptions improve search more than any setting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Guardrails: fast is good, reliable is better
&lt;/h2&gt;

&lt;p&gt;A search box is a public input on every page. It gets typos, junk, bots and traffic spikes. Typesense is fast, but a good setup assumes that anything can fail and plans for it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5696yb6yet1pptbuv5ve.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5696yb6yet1pptbuv5ve.webp" alt="Workflow diagram of one search query: the browser sends a debounced query, guardrails check length and rate limit, a cache with a normalised key is checked, on a miss Typesense runs hybrid search with a hard timeout, then ranking rules apply. Zero hits trigger a vector backfill. An error or timeout falls back to keyword search." width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Each step either answers the query or hands it on safely. Diagram made with Archify.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Never put an admin key in the browser.&lt;/strong&gt; Typesense supports search-only keys limited to one action on one collection, and scoped keys with filters baked in that users “will not be able to override”. The browser only ever sees that.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debounce and cancel.&lt;/strong&gt; Wait until the shopper pauses typing and cancel the previous request. It cuts load and stops old results flashing over new ones.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set limits.&lt;/strong&gt; A minimum query length (show popular categories instead of searching for one letter), a ceiling on results per page and a rate limit per visitor on public endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Normalise before you cache.&lt;/strong&gt; Lowercase and trim the query, and cap the length of the cache key, so “Insoles” and “insoles ” share one entry and junk queries can’t fill the cache. Typesense also has its own result cache, which is off by default; switch it on.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a hard timeout.&lt;/strong&gt; A failed request throws an error you can catch. A hung request just waits. Without a deadline, your fallback never runs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fall back to plain keyword search.&lt;/strong&gt; If the engine is down, slow or rebuilding, use the store platform’s own search or a simple database match, and render the same product cards. Worse results beat a blank page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep merchandising rules few and visible.&lt;/strong&gt; A handful of pinned results is easy to reason about. Hundreds of hidden rules become a second, undocumented ranking system.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If you add LLM natural-language search,&lt;/strong&gt; treat the model’s output as untrusted input. Typesense’s own guide warns that LLMs can misread a query or produce invalid syntax. Check the generated filters against the fields you actually allow, cap the time it can take, and fall back to a normal search when the output does not validate. We have not needed it yet: hybrid search already handles most intent queries without a model call on every search.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  A checklist to start
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Read your own search logs. Find the top queries and the ones that return nothing.&lt;/li&gt;
&lt;li&gt;Index only what helps matching: title, category, tags, price, stock. Keep long copy for the embedding.&lt;/li&gt;
&lt;li&gt;Turn on hybrid search with keywords in charge, then tune the distance threshold with real zero-result queries.&lt;/li&gt;
&lt;li&gt;Add synonyms for the gaps the embedding misses. Pin the answer to your top two or three queries.&lt;/li&gt;
&lt;li&gt;Add the guardrails: search-only key, debounce, limits, cache, timeout, fallback.&lt;/li&gt;
&lt;li&gt;Measure search speed with the rest of the page. A fast search box on a slow page still feels slow; see &lt;a href="https://satyam-mishra-dev.tech/guides/shopify-store-speed" rel="noopener noreferrer"&gt;why your Shopify store is slow&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is Typesense free?
&lt;/h3&gt;

&lt;p&gt;The engine is open source under GPL-3.0 and free to self-host. Typesense Cloud is the paid hosted option, billed by cluster size per hour rather than per search.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is hybrid search in ecommerce?
&lt;/h3&gt;

&lt;p&gt;It runs a keyword search and a semantic (meaning-based) search on the same query and merges the rankings. Exact product names still come first, and descriptive searches like “back pain” still find relevant products.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need an LLM to understand search intent?
&lt;/h3&gt;

&lt;p&gt;Not for most stores. Typesense can create embeddings itself with a small bundled model, and hybrid search covers most intent queries. An LLM helps when shoppers type filters in plain language, like a price range or brand, and it needs validation before its output reaches the engine.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can Typesense work with Shopify?
&lt;/h3&gt;

&lt;p&gt;Yes. Products stay in Shopify, and a sync process copies them into Typesense whenever they change. The storefront queries Typesense and can fall back to Shopify’s own search if Typesense is unavailable.&lt;/p&gt;

&lt;h3&gt;
  
  
  How is Typesense different from Algolia?
&lt;/h3&gt;

&lt;p&gt;Both are fast, in-memory engines. Typesense is open source and can run on your own servers; Algolia is closed-source SaaS. Their pricing models differ too: per cluster for Typesense Cloud, by requests and records on Algolia’s usage-based plans.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://baymard.com/research-articles/ecommerce-search-query-types" rel="noopener noreferrer"&gt;Ecommerce Search UX: The 8 Query Types, Baymard Institute (updated 2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/typesense/typesense" rel="noopener noreferrer"&gt;Typesense source code and feature list, GitHub (2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://typesense.org/typesense-vs-algolia-vs-elasticsearch-vs-meilisearch/" rel="noopener noreferrer"&gt;Typesense vs Algolia vs Elasticsearch vs Meilisearch, Typesense (2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://typesense.org/docs/30.2/api/vector-search.html" rel="noopener noreferrer"&gt;Vector Search and Hybrid Search, Typesense docs v30.2 (2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://typesense.org/docs/30.2/api/search.html" rel="noopener noreferrer"&gt;Search parameters (typo tolerance, synonyms, curation, caching), Typesense docs v30.2 (2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://typesense.org/docs/30.2/api/api-keys.html" rel="noopener noreferrer"&gt;API Keys and scoped search keys, Typesense docs v30.2 (2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://typesense.org/docs/guide/natural-language-search.html" rel="noopener noreferrer"&gt;Natural Language Search guide, Typesense&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://arxiv.org/abs/2408.09236" rel="noopener noreferrer"&gt;Hybrid Semantic Search: Unveiling User Intent Beyond Keywords, Ahluwalia et al., arXiv (2024)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;I'm &lt;a href="https://satyam-mishra-dev.tech" rel="noopener noreferrer"&gt;Satyam Mishra&lt;/a&gt;, a software developer in Pune working with stores and startups in Ireland, Europe and the US. More guides at &lt;a href="https://satyam-mishra-dev.tech/guides" rel="noopener noreferrer"&gt;satyam-mishra-dev.tech/guides&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>search</category>
      <category>ecommerce</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
