Overview
iTrainHockey runs hockey training camps across North America. Their WooCommerce store was initially set up with a single currency, U.S. dollars, for all transactions. As Canadian sales grew, this setup created friction. Canadian customers had to pay in USD, which meant incurring conversion fees and dealing with non-preferred exchange rates. Meanwhile, all payments were deposited into a U.S. bank account, making it more difficult for the business to manage Canadian revenue effectively. To fix this, iTrainHockey worked with Virtina to implement a custom WooCommerce solution that would support both USD and CAD transactions with proper routing.
Project Objective
The goal was to enable iTrainHockey to list camps in local currencies and receive payments directly into the appropriate bank accounts, USD to a U.S. account, and CAD to a Canadian account. This would help reduce conversion-related losses and simplify cross-border reconciliation without complicating backend operations.
Requirements and Challenges
The store needed a way to assign the correct currency per product —U.S. or Canadian dollars —so that shoppers would see and pay in their local currency. The bigger challenge was to route payments to the correct bank account without relying on plugins or disrupting existing WooCommerce functionality. Stripe also had to be configured to process and settle payments in the correct currency without conversions.
Solutions
Virtina developed a custom field in the WooCommerce product editor, allowing the team to set prices in either USD or CAD, depending on the camp location. This ensured that U.S. customers saw and paid in U.S. dollars, while Canadian customers saw and paid in Canadian dollars. Custom code was added to manage price display, checkout, and payment routing. Virtina also worked with Stripe support team to ensure that payments in each currency were deposited directly into the corresponding bank account.
Technical Implementation
The system used a currency field at the product level, integrated with WooCommerce’s pricing and checkout flows. Custom logic ensured that the correct currency was displayed and maintained throughout the checkout process. Stripe’s API was configured to route each transaction based on its currency, without applying conversions.
Results
The updated setup now displays local prices and avoids conversion charges for customers. Canadian buyers pay in Canadian dollars (CAD), and their payments are deposited directly into a Canadian bank account. U.S. buyers pay in USD as before. For iTrainHockey, this means cleaner revenue tracking and fewer losses due to exchange rates. The solution also removed the need for currency conversion during settlement, improving both transparency and financial efficiency.
Conclusion
Viritna implemented a custom multi-currency system in WooCommerce, helping iTrainHockey reduce avoidable costs and simplify operations. Customers now pay in their own currency, and the business can manage cross-border transactions more effectively without relying on third-party tools or complex workarounds.

