The client requested that the store should accept both USD and CAD. We decided the best solution to this request would be to have a Multisite WordPress installation. Using the broadcast plugin allowed all the content to be synced with the exception of the product prices and stock.
The search needed to be fast but also return use Algolia as the search engine. This would index all the pages and products and apply machine learning to return relevant results to the user.
We needed to filter products by category, price, and other attributes. In order to accomplish this, we used FilterJS on the product listing page. We outputted the product data in a JSON format which was then rendered on the page using the FilterJS plugin.