WOOCOMMERCE DEVELOPMENT

Canadian WooCommerce development needs provincial tax logic, French-English WPML, and a migration path to Shopify when the platform stops scaling

Canadian WooCommerce stores carry configuration problems that are specific to the Canadian market and are not resolved by default WooCommerce installation. Provincial tax calculation across HST, GST, QST, and PST jurisdictions requires correct rate input and province-based application logic — errors here create CRA compliance risk on every order. Bilingual French-English stores need WPML configured to transmit consent correctly to both language versions and to generate French-language transactional emails for Quebec buyers, not just French-language product pages. Shipping needs Canada Post calculated rates based on actual parcel dimensions and weight, not flat rates. And every Canadian WooCommerce store that is growing needs a clear-eyed assessment of when WooCommerce's scalability ceiling will become a constraint and what the migration path to Shopify looks like before that point is reached. Ignited Nepal builds and maintains WooCommerce stores for Canadian brands with these requirements understood from the start.

This is for you if

WooCommerce development in Nepal is relevant to you if any of the following describes your situation.

You are a Nepali retail or export brand that built on WordPress because your developer was familiar with it, and you added WooCommerce as the shopping layer. Your store works at a basic level but you are noticing that payment failures are increasing, pages load slowly, or your multilingual configuration is not sending the right traffic to the right language version.

You are running eSewa or Khalti as your payment gateway and have either installed the official WooCommerce plugin and found it breaks periodically, or you have not yet set up payment gateways at all and are handling transactions manually.

You have more than 500 products on your WooCommerce store and you are experiencing noticeably slower performance on product listing pages, the cart, or checkout — particularly during higher-traffic periods.

You have a Nepali/English store configured with WPML and you suspect — or have been told — that your hreflang implementation is incorrect and is affecting your organic search visibility with international buyers.

You know your WooCommerce installation has not been maintained properly: plugins are outdated, the WordPress version is behind, and you are uncertain whether your hosting configuration is adequate for your current traffic.

What's broken

Problems We Fix

Canadian provincial tax rates not configured correctly

WooCommerce requires manual configuration of Canadian tax rates by province. The current Canadian tax rates are: HST at 13% in Ontario, New Brunswick, Newfoundland, Nova Scotia, and Prince Edward Island; HST at 15% in New Brunswick, Nova Scotia, Newfoundland and Labrador, and PEI (rates vary by province within HST); GST at 5% in British Columbia, Alberta, Saskatchewan, Manitoba, and the territories; QST at 9.975% in Quebec (applied on top of GST); and PST at varying rates in BC (7%), Saskatchewan (6%), and Manitoba (7%). WooCommerce must be configured with the correct compound tax calculation for QST in Quebec and the correct rate for each province. Errors in this configuration result in under-collection or over-collection of tax on every order shipped to the affected province, which creates a CRA reconciliation problem at year end.

WPML French/English not passing CASL consent correctly

Canadian Anti-Spam Legislation (CASL) requires documented, per-contact opt-in for commercial email. On bilingual WooCommerce stores using WPML, a buyer who opts in to marketing emails during checkout on the French-language site may have their consent recorded against a CRM entry that does not match the English-language CRM record, or the consent flag may not pass correctly through the integration between WooCommerce, WPML, and the email marketing platform (Klaviyo, Mailchimp, or ActiveCampaign). This creates a situation where a contact appears in both the French and English segment lists but with different consent states. The correct configuration ensures that CASL consent is recorded at the contact level and is consistent across both language versions of the store.

No Canada Post calculated shipping rates

WooCommerce's default shipping methods are flat rate, free shipping, and local pickup. Canada Post shipping rates are calculated based on parcel weight, dimensions, origin postal code, and destination postal code. Without Canada Post integration, WooCommerce stores either charge flat rates that under-recover shipping costs on heavy or bulky items, or offer free shipping that absorbs margin. Canada Post provides an official WooCommerce plugin through their developer portal that queries the Canada Post Rating API in real time. Configuration requires a Canada Post business account, API credentials, and product weight and dimension data entered against each WooCommerce product. The plugin supports Regular Parcel, Expedited Parcel, Xpresspost, and Priority services.

French-language checkout and transactional emails

WPML translates WooCommerce product and category content into French, but WooCommerce system emails — order confirmation, processing notification, shipping update, and completed order email — are generated by WooCommerce core and default to English. A Quebec buyer who browses and purchases through the French-language version of the store receives their order confirmation email in English. The fix uses WPML's WooCommerce Multilingual module, which provides translated versions of all WooCommerce email templates. Each email template needs to be translated into French and configured to send in the language of the buyer's session. This applies to all transactional emails, not just order confirmation.

What we engineer

What We Build

Canadian provincial tax rate configuration — HST, GST, QST, PST — with correct compound tax logic for Quebec

Canadian provincial tax rate configuration — HST, GST, QST, PST — with correct compound tax logic for Quebec

WPML French/English bilingual WooCommerce store with CASL-compliant consent handling across both languages

WPML French/English bilingual WooCommerce store with CASL-compliant consent handling across both languages

Canada Post calculated shipping rates via official plugin — weight and dimension mapping across product catalogue

Canada Post calculated shipping rates via official plugin — weight and dimension mapping across product catalogue

French-language WooCommerce transactional emails via WPML WooCommerce Multilingual

French-language WooCommerce transactional emails via WPML WooCommerce Multilingual

Custom WooCommerce theme development with bilingual layout support

Custom WooCommerce theme development with bilingual layout support

Payment gateway integration: Stripe, PayPal, and Interac e-Transfer (via compatible processor)

Payment gateway integration: Stripe, PayPal, and Interac e-Transfer (via compatible processor)

Shopify migration planning and execution when WooCommerce reaches a scaling constraint

Shopify migration planning and execution when WooCommerce reaches a scaling constraint

WooCommerce REST API integrations with Canadian fulfilment and ERP systems

WooCommerce REST API integrations with Canadian fulfilment and ERP systems

What changes

What a correctly built and maintained WooCommerce store looks like

Before
After
Before eSewa has an official WooCommerce plugin, but it is updated irregularly. When eSewa updates its ePay API — which it has done multiple times — stores relying on the official plugin begin experiencing payment failures that are difficult to diagnose because the error messages from the plugin are not specific. Customers reach the eSewa payment screen and are either unable to complete the transaction or are returned to the WooCommerce store with an order status that does not match what happened in eSewa's system. For production WooCommerce stores that depend on eSewa as a primary payment method, a custom plugin built directly against eSewa's ePay API is more reliable than the official plugin. It gives your development team direct control over the integration logic and means a future eSewa API update does not break checkout until an official plugin update is eventually released.
After Payment failures from eSewa drop significantly. Orders that were previously getting stuck at the payment gateway — or completing on the eSewa side but not updating in WooCommerce — are processed correctly and order statuses are reliable. Your operations team stops spending time manually reconciling eSewa payments against WooCommerce orders.
Before WooCommerce is a database-heavy platform. Every product page, cart update, and checkout step triggers database queries. On a correctly configured server with Redis or Memcached object caching, many of those queries are served from cache rather than hitting the database on every request. On a shared hosting environment — such as those commonly used by Nepali WooCommerce stores on Vianet, Subisu, or similar providers — object caching is typically not enabled by default. The result is that your WooCommerce store runs every query against the database on every page load. Product pages are slower than they need to be. The cart and checkout are particularly affected because they involve non-cacheable operations that stack on top of the already uncached database queries. Customers experience slow load times that are not a code problem — they are a server configuration problem. Configuring Redis or Memcached object caching, combined with a page caching plugin such as WP Rocket or LiteSpeed Cache, significantly reduces database load and improves page response time without changing any of your WooCommerce code.
After Product pages load faster. The combination of object caching, page caching, and database optimisation means your store is not running unnecessary database queries on every page load. The improvement is most visible on product listing pages and checkout, which are the two points in the purchase path where slow performance most directly affects conversion.
Before WPML is the most widely used multilingual plugin for WooCommerce and WordPress. When it is set up correctly, it creates separate Nepali and English versions of your product pages and tells Google which version to serve to which audience using hreflang tags. When it is configured incorrectly — which happens frequently because the WPML hreflang settings interact with both your WordPress permalink structure and your SEO plugin — Google does not receive clear signals about which page is for which language. The consequence for a Nepali e-commerce brand targeting both domestic Nepali buyers and international English-speaking buyers is that Google may serve the Nepali-language page to an English-language searcher from Australia or the US, or it may index both versions as duplicate content and reduce the ranking authority of both. Fixing WPML hreflang configuration requires auditing your current hreflang output, correcting the WPML language settings, ensuring your SEO plugin (Yoast or Rank Math) is not overriding WPML's hreflang, and validating the output with Google Search Console.
After Your multilingual store sends the right traffic to the right page. English-speaking buyers from international markets reach your English product pages. Nepali-speaking buyers reach your Nepali pages. Google Search Console shows correct hreflang implementation and you stop seeing international organic traffic going to Nepali-language pages.
Before WooCommerce stores accumulate database weight over time. Every product update creates a post revision. Every session creates a transient. Orphaned product metadata from deleted or edited products accumulates in the wp_postmeta table. Stores that have been running for two or more years with 500 or more products, and that have not had a database maintenance pass, typically have wp_postmeta tables three to five times larger than necessary. The effect is slow product listing pages — particularly collection pages that query across many products — and slower checkout performance. This is not a hosting problem and not a code problem. It is a database problem that is resolved by removing post revisions, clearing expired transients, removing orphaned metadata, and running a database optimise pass. Following that, implementing a database maintenance schedule and limiting the number of stored revisions in wp-config.php prevents the problem from recurring.
After Your development team can maintain the store reliably. Custom plugins are documented. Plugin count is rationalised. The WordPress and WooCommerce installation is on a current version with a defined update process. You are not dependent on a single developer who knows the undocumented configuration history of the store.
How it works

How we work on WooCommerce projects in Nepal

  1. 01

    Technical discovery

    Before any development work begins, we audit your current WooCommerce installation. This covers: WordPress and WooCommerce version, active plugin list and last-updated dates, hosting environment and available server-level caching, database size and table health, current payment gateway configuration, and any known issues you have been experiencing. For new builds, we scope the technical requirements based on your product catalogue, payment methods, and any integration requirements.

  2. 02

    Brief and scope

    We document the specific work to be done, the expected outcomes, and the timeline. For complex projects — custom payment gateway plugins, multilingual store configurations, or migration work — we include a technical specification that describes the implementation approach. You review and approve the scope before work begins.

  3. 03

    Development

    Development work is carried out in a staging environment that mirrors your production hosting. For payment gateway integrations, we test against the sandbox environments provided by eSewa and Khalti before going to production. For performance work, we measure before and after using consistent benchmarks so the improvement is documented.

  4. 04

    Testing and quality review

    We test the complete purchase path — product discovery, product page, cart, checkout, payment, order confirmation, and post-order email — in both languages where applicable. Payment gateway integrations are tested for success, failure, and timeout scenarios. We document any edge cases encountered during testing.

  5. 05

    Deployment and handover

    We deploy to production during a low-traffic window and monitor immediately after deployment. We provide documentation for any custom plugins developed, and a written summary of the configuration changes made. If your team needs training on ongoing maintenance tasks, we provide that as part of the handover.

Common questions

Frequently Asked Questions

How do I configure all Canadian provincial tax rates correctly in WooCommerce?

In WooCommerce, go to Settings > Tax and enable taxes. Under Tax Rates, add a rate for each Canadian province. For HST provinces, add the combined rate for that province against the province code. For Quebec, add GST (5%) as a standard rate and QST (9.975%) as a compound rate — compound means QST is calculated on the GST-inclusive price. For BC, Saskatchewan, and Manitoba, add GST and PST as separate non-compound rates. Alberta, Nunavut, Yukon, and Northwest Territories have GST only. Set the tax class to standard for all taxable products. After configuration, test by adding a product to the cart and checking the tax calculation for at least three different province addresses to confirm the rates are applying correctly.

How do I set up a bilingual French-English WooCommerce store with WPML for Canadian buyers?

Install WPML and the WooCommerce Multilingual add-on. Set English as the primary language and French (Canada) as the secondary language. Translate all product titles, descriptions, short descriptions, and attributes. Under WPML > WooCommerce Multilingual, translate all WooCommerce checkout field labels and system strings into French. For CASL compliance, ensure the marketing consent checkbox in WooCommerce checkout is present in both language versions and that consent is recorded at the contact level in your email marketing platform with the source language noted. Test the full checkout flow — in French — through to order confirmation email to confirm that a French-session purchase generates French-language emails.

How do I add Canada Post calculated shipping to WooCommerce?

Register for a Canada Post business account and obtain your Customer Number and API keys from the Canada Post Developer Portal. Install the Canada Post WooCommerce plugin. In the plugin settings, enter your origin postal code, Customer Number, and API credentials. Enable the shipping services you want to offer (Regular Parcel, Expedited Parcel, Xpresspost, Priority). In WooCommerce, enter weight (in kg) and dimensions (length, width, height in cm) for every product in your catalogue — the API uses these to calculate rates and to determine if a parcel qualifies for certain services. Create a shipping zone for Canada and add Canada Post as the shipping method within that zone. Test with several destination postal codes, including rural codes, to confirm rates are returning correctly.

How do I make WooCommerce transactional emails French for Quebec customers?

Install WPML's WooCommerce Multilingual plugin. Under WooCommerce > Emails, each email template will now show a language selector. Create French translations of each email template: New Order (admin), Order Processing, Order Completed, Order Shipped, and any other templates you use. WPML WooCommerce Multilingual sends emails in the language of the order, which is set by the language of the buyer's session at checkout. Confirm this is working by placing a test order while browsing the French version of the site and checking that the order confirmation email arrives in French. Also confirm that the admin new order notification is in the language you prefer for internal use.

When should a Canadian WooCommerce brand migrate to Shopify?

The indicators that WooCommerce is becoming a constraint rather than an asset are: hosting costs and maintenance overhead are increasing faster than revenue; plugin conflicts or update failures are causing regular downtime; the development work needed to add new features is disproportionately large; or the team managing the site cannot keep up with WooCommerce's update cadence. Shopify's total cost of ownership is higher at low order volumes but becomes competitive at mid-volume once WooCommerce hosting, plugin, maintenance, and developer costs are included. For Canadian stores, Shopify Payments supports CAD and the bilingual requirements of a French-English store are handled through Shopify Markets. Migration should be planned with a data audit (products, customers, orders, SEO URLs) and a parallel run period before the WooCommerce store is decommissioned.

Our team

The people behind the work

Not a black box. Real specialists you can call, with their names on the work.

Niraj Raut

Niraj Raut

Founder — Ecommerce SEO
Keshab Joshi

Keshab Joshi

PPC Expert
Hawrry Bhattarai

Hawrry Bhattarai

Google Ads Expert
Arogya Rijal

Arogya Rijal

SaaS SEO Expert
Start here

Start with a WooCommerce development brief

If your WooCommerce store has payment gateway failures, performance problems, or a multilingual configuration that is not working correctly, a development brief is the right starting point. We audit what is actually broken before scoping any work.