Internationalization

Read time81 min

One Website (USA & Canada)

The Dakine North American website is hosted by a single shopify+ website and admin. This allows for a streamlined management process for operating commerce in multiple regions at once. As this is a somewhat new opportunity in ecommerce we will explain this further below and in greater detail in the follow-up sections.

Structural Setup

Domains

The site uses 4 main domain / cnames.

Domain

Priority

Location

Language

www.dakine.com

Default

USA

English

dakine.com

Secondary

USA

English

ce.dakine.com

Secondary

Canada

English

cf.dakine.com

Secondary

Canada

French

SEO Rules

To facilitate hreflangs we use Shopify attributes in liquid to ensure that these are all set correctly on page render for all experiences.

HTML



On Site

Visual Customization

For specific sections like homepage slideshow we have integrated a location picker where you can define what region or regions should be able to see that art. This can be added to whatever sections you would like, just let us know if you need additional access.

Search

We are currently leveraging "Omega Instant Search" to ensure that relative links are being presented to customers in their search results. By this we mean that with many apps would show results that linked back to www.dakine.com even if a customer was shopping on ce.dakine.com.

In addition Omega will adjust the UX verbiage based on the page language further unifying our multilanguage experience.

Due to the complex integration of price books, we are not presenting prices within search results at this time.

Related Products

Related products are being personalized by 4tell. The prices and availability within their results are being pulled from the pricebooks metafields to be localized. Product availability is being sync'd from the product feeds.

Checkout Rules

Locational Restrictions

If a customer is shopping the site in USA then when they get into the checkout experience they will have the option of shipping to Canada removed and vice versa. This makes sure that we don't get into any over selling issues based on warehouse availability.

Visual Adjustments

As you'll read more about later in this document ( see:pricing ), all prices are actually discounted from Shopify's standpoint as the pricebook adjustments are lowering the price to meet the MAP rules. Due to this shopify checkout will want to show discount lines on everything which is not the experience we are lookign to deliver to the customer. Of note this will apply to the Cart & Minicart scenarios as well. So to make sure we deliver the set prices we're looking for we need to adjust the labels within the checkout experience. Happily this is relatively simple.

HTML

Pricing

Ruby

Location Switching

In the top left corner of the website you can swap between locations. This will change your:

  • domain
  • currency
  • availability
  • language



Available to sell rules

Dakine's available to sell is based on 3 warehouse locations

  1. Dakine US - only ships to US
  2. Dakine Canada - only ships to Canada
  3. GBGSAL - ships to both US and Canada

Every morning at 9am our middleware will sweep the site to see if a product is availablt to sell in the USA and again for Canada. This takes into effect any inventory buffers that might be running. A product will be tagged as soldoutcanada or soldoutusa based on it's availability.

So if a single variant is available to sell then that product will stay online for that specific region. Otherwise it'll be removed.

Hide Out of Stock - Customization

Collections

Product grid items on the collection / PLP pages are filtered by if the product is available in that region which is determined by the Available to Sell rules above - generated daily.

Navigation

We currently do not give different navigational items per region.





Language

Selection

  1. The consumer can choose french from the dropdown in the header and they will be loaded into the french Canadian experience.
  2. They can visit the site at the specific subdomain - cf.dakine.com and will be loaded into the experience.

Website Copy & Verbiage

Defined Translations

On the website we have defined translations for

  • Product title
  • Product Description (including details)
  • Meta Description
  • Meta Title

French Defined Translations https://docs.google.com/spreadsheets/d/1pnW7nSp7Y7f4n8IT4rWE4hDlLPt5jeAVm5SV8nF1rQo/edit?usp=sharing

General Translations

For copy outside of the product data we are leveraging google translate natively within the code to translate the additional copy points. This is using the google api & has the inpage elements (popups & additional bars) removed.

No Translate

For items that we do not want translated we leverage the no translate tag. <span class="notranslate" translate="no"> </span>

Checkout Language

The checkout experience leverages the google api as well to deliver a translated experience if the customers language preference is FR, again this comes from the cart attribute that was set, in checkout this becomes a checkout attribute and is activated in checkout.liquid

Customer Preferences

When a customer visits the site they are given 2 cart tags.

  1. Cart language
  2. Cart location

These tags will dictate:

  1. the cart contents (meaning a cart built in Canada will not be available in the US and vice versa.) Though one customer can actually have 2 carts going, 1 for each region and they will be remembered between the sessions.
  2. The post purchase communication. The cart language will catalog what language that order was checked out in. Yes this does mean if the next cart they wanted to shop english then that purchases emails would switch to english.

These tags are switched when someone switched locations along with their presentment currency.

Transactional Emails

Emails are available in both French and English and will be sent to the customer based on the language they were using in checkout. You can see the verbiage for these in the shopify admin. The translations are the default communication for each language provided by Shopify.

VIEW IN ADMIN

This does affect both copy & subjects. it uses {% if attributes.language == "FR" %} to adjust the language as needed.



Pricing

Price Books

The Dakine site is run using price books designed by Wick Creative. These run using variant metafields to facilitate all pricing both regional MAP and Sale or off-MAP.

Metafields Used

Name

Description

dkprice-us

MSRP pricing for US

dkprice-us-sale

Sale price (if exists) for US

dkprice-ca

MSRP pricing for Canada

dkprice-ca-sale

Sale price (if exists) for Canada

Important Notes

  1. These prices should be set as the number in the desired currency and not a converted price. We will use shopify scripts to confirm customers will always see the MAP price no matter the current conversion rate for the currency.

Price Considerations / Warnings

  1. The price for the product will be an infladed price = 1.5x the US MAP. WHY?? Well the shopify price can only be lowered in checkout, so the shopify price is intentionally inflated on the variant to leave room for flucuations in prices due to currency conversions.
  2. Default price visualizations will be generally incorrect while using price books as we will not be using the default shopify pricing system this applies, but isn't limited to:
    1. Search apps
    2. email notifications
    3. discounts
    4. feeds
  3. Shopify Launchpad can be used but the price adjustments aspect of the app CAN NOT be used. As our shopify prices are bloated to make room for the MAP price books we don't want anythign adjusting those prices.

Admin Order Price Books

When looking at an order in Shopify's admin it's important to understand how to read the pricebooks data that comes along with the item. If we see this item we can notice a few things.

  1. The "inflated" shopify price is $375 - never shown to the customer.
  2. The US price was $250 as was charged to the customer & shown as price-us
  3. The price in Canadian was $299.99 but not used.
  4. Both the pro prices are set to MSRP price as this consumer was not a pro.
  5. FR Title is the title this customer would have been shown if they were shopping in french.
  6. Inv-us is the stock that was available in the US available to sell (see inventory rules for deeper info) at the time of purchase.
  7. Inv-ca is how much stock was available at the time of sale, again for this order that was not referenced, whch is a good thing as it would have been an oversell.

Pro Program

The pro program works for all customer types and have the same % discount but the base prices changes based on the specific price book.

For further information on pro pricing rules you can visit the Pro Program tab in the left hand navigation here.

Discounts

Discounts are facilitated through updating the price books. This is done in bulk using spreadsheets. For the time being these requests should be sent to Wick Creative, but we'd be happy to transition this access to your team in the future.



Promotions

To run a promotion you can submit a promotion request or issue a Discount Code.

Promotion Request Form

This type of promotion is an overal adjustment to the price rules running the site. This is the most flexible type of promotional pricing and will allow for very specific customization. In addition this can be scheduled to go live with Shopify Launchpad.

Benefits of a Promotion Request

  • Can be region specific
  • Can be customer group specific
  • Can be a variable price discount
  • Can be Scheduled
  • Can work alongside warranty
  • No customer action needed, auto applied

Create a Discount Code

Standard discount code, enter X at Checkout.

Create a Code

Benefits of a Discount Code

  • Fast & easy to make, no scheduling needed
  • Great for a sinigle use or limited use scenario

Automatic Discounts

Launchpad Discount

Taxes

Real time tax calculations are managed on your site using Avalara for every region.

Gift Cards

Currently gift cards have no way to be set specifically for individual currencies and regions so these are only available in the US at this point.

Shipping

Shipping rates are managed in shopify with a profile for standard shipping and a profile for oversized shipping.

https://dakine-prod.myshopify.com/admin/settings/shipping





Logistics

Orders

All orders are split when pulled from ecom manager. These are done by store numbers.

2 = Canada

4 = USA

In addition 2 seperate database numbers are kept with records of what the last Canadian order was that was pulled and what the last USA order was as well.

Admin Visualization

Orders are able to be visualized in the presentment currency for all orders that are not in USD. Go to an order charged in Canadian Dollars and you can reference these fields.

Fulfillment

Fulfillment is sent to our middleware with locational store numbers, this information is mostly ignored as the Shopify install doesn't need the information.

Inventory

Inventory is filtered into our SFTP in a single file with columns for each location. We combine this with the GBGSAL feed to update the shopify location numbers for each variant in the store every 4 hours. You can see more on this process in Inventory section.

In turn these numbers are combined to form our Available To Sell numbers which are passed to each variant as a metafield to facilitate the regional specific ATS options for customers & in checkout.

Metafields

Name

Description

dkinv-us

This is the inventory from the dakine US warehouse + the inventory from the GBGSAL warehouse

dkinv-ca

This is the inventory from the dakine CA warehouse + the inventory from the GBGSAL warehouse

Inventory buffer

As there have been some difficulties with inventory numbers in the warehouse we have added on an adjustable inventory buffer in the theme customizer. This not only affects the item's availability in real time but it also is communicated to the process that dictates whether a product is sold out per country, which will remove it from the collection page for a region specific shopping experience.



Banking

Shopify only allows one bank account to be tied to each store. The currency will be sent into your account in your accounts preferred currency (USD).

Customers

Customers are grouped in shopify by both their region and language. This helps for quick differentiation as well a segmented discounting. Customers are tagged in checkout with their language preference of their last checkout. This does mean a customer can jump between groups as they desire.

This is handled by Shopify Flow and can be viewed here - https://dakine-prod.myshopify.com/admin/apps/15100ebca4d221b650a7671125cd1444/web/flow-summary?shop=dakine-prod.myshopify.com&flowId=69263

Customer

Tag

Region

Quick Link to Group

USA

lang-english

USA

CA English

lang-english

Canada

CA French

lang-french

Canada





Marketing & Communication

Email Marketing

To ensure we bring the most relevant experience to the email marketing platform we are tagging customers with their desired language preference after their order is made using Shopify Flow. Using this tag and their location we can adjust the url that gets put into the emails so that the customer is sent back to their desirec experience.

Feeds

Feeds are built daily by our middleware system and special shopify collections. These are made to facilitate. These include considerations for inventory rules/fulfillment centers, price books, and language.

  • USA
  • Canada English
  • Canada French

The feeds for the 3 regions will all be different.

These can be referenced in the feeds section.

Warranty

All regions warranty and returns will be managed in the same place, via their respective channels. See their specific documents for further details. Warranty Docs

Returns

We are using Returnly to facilitate returns. As this is an international return scenario we can't use their adhoc system and have signed up for the enterprise solution. Part of this scenario includes specific rules for labels and duties as Canadian returns will be required to ship back to our USA warehouse in Missouri at this point in time.

See more information here - Returns Docs

Refunds

Refund processing from the fulfillment warehouse in reguards to shortages will need to accomidate presentment currency in the refund response via API. This is an additional step in calculating the return from the API that will make sure that the refund follows the logic set forth with the presentment currency for the customer.



Doc powered byarchbee