How do I handle all Canadian provincial tax rates correctly in Shopify — including Quebec QST?
Shopify's native tax configuration handles the basic HST and GST+PST rates for most provinces. Quebec QST is more complex because it applies at 9.975% on top of GST for most goods, but certain product categories have different rules. To handle Quebec QST correctly for all product categories, including exemptions for basic groceries, children's clothing (in provinces where applicable), and prescription medication, a Shopify Functions-based tax override is required. The Function evaluates the product's tax category (set via a product metafield), the buyer's province, and the applicable exemption rules, and applies the correct tax rate or exemption. This replaces the standard Shopify tax calculation for the affected product-province combinations.
How do I build complete French-language order notification emails for Quebec customers?
Complete French-language order notifications for Quebec require a custom app that intercepts Shopify order lifecycle webhooks (orders/create, orders/fulfilled, orders/cancelled) and sends French-language email notifications via a transactional email provider (Postmark, SendGrid, or Klaviyo). The app detects the customer's preferred language from their Shopify customer record or from the store locale they used at checkout, and sends the appropriate language version. Abandoned cart recovery emails require integration with Shopify's cart abandonment webhook or a custom scheduled job. The French copy should be reviewed by a native French-Canadian speaker to meet the standard expected under Quebec's Charter of the French Language.
How do I integrate Canada Post API for real-time calculated shipping at checkout?
Canada Post calculated shipping at checkout uses Shopify's Carrier Service API. The integration is a custom app that registers a carrier service with Shopify, receives rate calculation requests at checkout (containing the package weight, dimensions, and destination postal code), queries Canada Post's Rating API with the merchant's Canada Post account credentials, and returns the available service levels (Expedited Parcel, Xpresspost, Priority) with live rates and estimated delivery times. Canada Post's Rating API requires a registered Canada Post business account and an API key. The Carrier Service API is available on Shopify's Advanced plan and above, or on Shopify Plus.
How do I automate duty calculation for cross-border US-Canada orders on Shopify?
Cross-border duty calculation requires a duty and landed cost API integrated into the Shopify checkout via a Cart Transform Function. The integration works as follows: when a buyer in the US (or a Canadian buyer importing from the US) proceeds to checkout, the Cart Transform Function calls a duty calculation API (Avalara AvaTax Cross-Border, for example) with the product's HS tariff code (stored as a product metafield), the shipment origin and destination country and state/province, and the order value. The API returns the estimated duty and tax amounts, which the Cart Transform Function adds to the cart as a line item before the buyer reaches the payment page. The HS code metafield must be populated for all products in the catalogue for the calculation to work.
When does a Canadian Shopify brand need a custom app versus a third-party app from the Shopify App Store?
A custom app is needed when the requirement is specific to the Canadian market and no App Store app handles it correctly: Quebec QST edge cases, French-language transactional notification coverage, Canada Post real-time rate comparison at checkout, or cross-border US-Canada duty calculation. A third-party App Store app is sufficient when the requirement is a standard e-commerce function — reviews, loyalty programmes, email marketing, basic shipping labels — that works the same way in Canada as in the US. The deciding question is whether the App Store app was built with Canadian provincial tax law, French language requirements, or Canada Post's API in mind. Most were not.