Настройка Shopify Markets & мультивалютности для темы Vertex
Vertex полностью интегрирован с Shopify Markets из коробки — никаких приложений, никаких сторонних конвертеров валют, никаких FX-скриптов. Если вы продаёте отделам закупок в нескольких странах, дилерским аккаунтам в разных валютах или управляете торговыми каталогами для отдельных регионов, это руководство приведёт вас от начального магазина с одним маркетом к отполированной мультимаркетной B2B + B2C витрине примерно за 30 минут.
B2B-покупатели в Shopify привязаны к одному маркету через назначение их компании — они не могут своб одно переключать валюты. Vertex всё равно отображает плашку валюты для них (информационно), так что они всегда видят в какой валюте они платят с первого взгляда. Отделы закупок это любят — это убирает одно письмо-уточнение на цитату. Выпадающий список будет содержать только один вариант.
Что на самом деле контролируют «Markets»
Shopify Markets — это нативная подсистема, которая контролирует, на каждую страну / группу регионов:
- Валюту, которую покупатель видит и в которой платит (авто-конвертируется из валюты магазина ИЛИ переопределяется через список цен для конкретного маркета)
- Язык, на котором отображается витрина (из вашего
locales/JSON; Vertex поставляется с английским, французским, итальянским, немецким, испанским) - Стратегию ценообразования — автоматическая конверсия по реальным FX-курсам с опциональной процентной корректировкой ИЛИ фиксированный ручной список цен для каждого маркета
- Домен / подпапку —
example.com/fr-ca/или полностью отдельный домен.ca - Геолокационное перенаправление — авто-предложение или авто-перенаправление несоответствующих посетителей на их ближайший маркет
- Налоги + пошлины (в маркетах, поддерживающих DDP, например, Shopify Markets Pro)
Задача Vertex — отображать эту конфигурацию точно: плашку валюты, плашку языка, теги hreflang, форматирование цен для каждого маркета и полосу приветствия B2B — все они обращаются к live-объекту localization на каждый запрос.
Предварительные требования
| Требование | Зачем |
|---|---|
| Тарифный план Shopify: Basic или выше | Markets включён на каждом платном плане, но для вторичных маркетов нужен минимум Basic. Shopify Plus разбло кирует неограниченное число маркетов + Markets Pro (пошлины + DDP). |
| Хотя бы один опубликованный Secondary market | Плашка валюты Vertex отображается, когда localization.available_countries.size > 0. Без вторичного маркета существует только одна страна, и в выпадающем списке нечего переключать — хотя сама плашка всё равно отображается для B2B-покупателей (см. Особый случай: B2B + Markets ниже). |
| Тема опубликована ИЛИ просматривается в предпросмотре | Некоторые настройки Markets (геолокационное перенаправление, маркет по умолчанию) корректно отображаются только когда тема опубликована или просматривается через кастомайзер. |
| Установлены локали | Если вы хотите переключатель языков (не только валют), опубликуйте соответствующую локаль в Settings ▸ Languages. Vertex поставляется с полными UI-переводами для английского, французского, итальянского, немецкого и испанского. |
Markets — включая мультивалютность и мультиязычность — включён на каждом тарифе Shopify. Вы платите только за FX-конверсию через комиссии Shopify Payments (уже часть вашей транзакционной комиссии), а не за саму функцию Markets. Сбор пошлин + DDP (Markets Pro) — это платное дополнение.
Пошагово: включение Markets
Шаг 1 — Откройте Markets в админке Shopify
В вашей админке Shopify перейдите в Settings ▸ Markets.
Вы попадёте на страницу, которая перечисляет ваш Primary market (создан автоматически при открытии вашего магазина, обычно ваша страна регистрации) пл юс любые Secondary markets, которые вы добавили.

Шаг 2 — Настройте Primary market
Кликните на Primary market. Подтвердите:
- Country / region правильный (это управляет налогами + пошлинами по умолчанию)
- Currency — это валюта вашего магазина (нельзя изменить после появления заказов)
- Language — это ваш язык по умолчанию (локаль, помеченная как «Default» в Settings ▸ Languages)
Это резервный маркет — каждый посетитель, не сопоставленный со вторичным маркетом, видит цены и язык Primary.
Шаг 3 — Добавьте Secondary market
Кликните Add market вверху справа.
Для каждого нового маркета вы настроите:
| Поле | Что ввести |
|---|---|
| Market name | Внутренняя метка — «European Union», «Canada», «Asia-Pacific Wholesale» |
| Countries / regions | Одна или несколько стран, которые делят ценообразование + валюту + язык этого маркета. Покупатели ЕС могут разделять один маркет; UK + ЕС можно разделить, если хотите разное обращение с НДС. |
| Currency | Местная валюта (например, EUR для ЕС, GBP для UK, CAD для Канады). Shopify будет авто-конвертировать из валюты магазина по live-курсам, если вы не загрузите ручной список цен. |
| Languages | Одна или несколько локалей, опубликованных в Settings ▸ Languages. Язык по умолчанию для этого маркета автоматически определяется по стране, если у вас есть соответствующая локаль. |
| Pricing strategy | Adjust prices by % from store currency (например, +5% для покрытия FX-риска) ИЛИ Use a manual price list для этого маркета. |
| Domain / subfolder | example.com/fr-fr/ (подпапка, рекомендуется для SEO) ИЛИ отдельный ccTLD вроде example.fr. |
URL с подпапками (example.com/fr-fr/) консолидируют авторитет домена, автоматически связываются с тегами hreflang в Vertex и не требуют работы с DNS. Отдельные ccTLD-домены разделяют ваш авторитет и требуют ручной настройки hreflang. Рекомендуем подпапки, если у вас нет сильной налоговой или юридической причины использовать ccTLD.

Шаг 4 — Выберите стратегию ценообразования
У вас есть три варианта для цен в каждом вторичном маркете:
Вариант A — Авто-конверсия из валюты магазина (по умолчанию)
Shopify конвертирует цены валюты вашего магазина в валюту маркета по live FX-курсу, округляя до выбранного вами формата (например, окончания .99). Обновляется раз в день. Бесплатно; без ручного обслуживания.
Вариант B — Авто-конверсия + корректировка То же, что A, плюс процентная корректировка (например, +5%, -10%), применяемая к каждому товару в этом маркете. Полезно, когда вы хотите абсорбировать FX-риск или единообразно применить региональную скидку/наценку.
Вариант C — Ручной список цен на маркет Загрузите CSV (или используйте UI админки) с явными ценами на каждый вариант на маркет. Требуется, когда у вас есть фиксированное контрактное ценообразование в регионе — часто для B2B-дистрибьюторов с согласованным региональным дилерским ценообразованием.
Если B2B-покупатель авторизован и его компании назначен каталог, цены каталога имеют приоритет над ценообразованием Markets для этого покупателя. Ценообразование Markets является резервным, когда B2B-покупателю не назначен каталог или для B2C / гостевых покупателей в этом маркете.
Шаг 5 — (Опционально) Включите геолокационное перенаправление
Всё ещё в Settings ▸ Markets, прокрутите до карточки Geolocation.
Два варианта:
- Recommend a different market — показывает небольшую полосу в верхней части витрины («Looks like you're in France. Visit our French store?») с выбором Visit / Stay. Менее агрессивно — рекомендуется для B2B, потому что некоторые покупатели и з отделов закупок намеренно используют US-витрину для сравнения цен.
- Automatically redirect — сервер перенаправляет посетителя на его ближайший маркет без выбора. Выше конверсия в чистом B2C, но может раздражать B2B-покупателей и ботов.
Выберите Recommend, если у вас нет сильной причины поступать иначе. Vertex уважает то, что вы выберете — никаких изменений кода темы не требуется.
Шаг 6 — Опубликуйте ваши вторичные маркеты
У каждого маркета есть переключатель Active / Inactive в списке маркетов. Переключите на Active, когда вы готовы, чтобы покупатели его увидели. Плашка валюты в Vertex начнёт показывать валюту нового маркета в своём выпадающем списке немедленно при следующей загрузке страницы.
Как Vertex отображает переключатель
Плашки валюты + языка Vertex отображаются одним общим сниппетом — snippets/localization-switchers.liquid — который включён в двух местах:
- Шапка десктопа (≥1170px) — инлайн в кобальтово-синей полосе приветствия B2B для авторизованных B2B-покупателей ИЛИ инлайн в основной белой шапке для гостей + B2C-покупателей
- Мобильный дровер + планшет (<1170px) — вверху дровера-гамбургера, как две плашки в 2-колоночной сетке для удобного доступа одной рукой
![]()
Анатомия плашки
Каждая плашка — это компактная кнопка со скруглёнными углами с тремя элементами:
- Круговой аватар флага — флаг страны, взятый из спрайта или с возвратом к ISO-коду страны
- 2-строчный стек текста — eyebrow-метка («Currency» или «Language») над ISO-кодом («EUR», «FR»)
- Шеврон — указывает, что плашка открывает выпадающую панель
Нажатие на плашку открывает пользовательскую выпадающую панель — Vertex намеренно не использует нативных элементов <select> нигде в хроме. Каждый выпадающий список использует общий паттерн <details> + <summary> + пользовательской панели, который:
- Отображает значок галочки рядом с текущим выбранным вариантом
- Подсвечивает hover-состояние
- Закрывается по Escape / клику снаружи / открытию соседнего выпадающего списка (взаимное исключение)
- Анимируется появлением с fade в 120 мс
Это означает полную клавиатурную навигацию и поддержку AT (assistive technology), при этом не выглядя как стандартный браузерный выпадающий список.
Правило «всегда отображать»
Критическая деталь: localization-switchers.liquid проверяет localization.available_countries.size > 0 — а не > 1.
Это означает:
- Магазины с одним опубликованным маркетом — плашка отображается, выпадающий список содержит один вариант (ваш домашний маркет)
- Магазины с двумя или более маркетами — плашка отображается, выпадающий список содержит все опубликованные маркеты
- B2B-покупатели, привязанные к одному маркету — плашка отображается (информационно), выпадающий список содержит один вариант (их маркет)
Это решение намеренное. B2B-покупатели, платящие в EUR, хотят видеть EUR на каждой странице, даже если они не могут переключиться — это уверенность, что с них не вот-вот спишут USD. Отделы закупок неоднократно отмечали опасения по поводу молчаливого переключения валют в пользовательском тестировании; отображение бейджа валюты предотвращает эту путаницу.
Если вы хотите полностью скрыть плашку валюты (например, у вас один маркет и вы хотите разгрузить интерфейс), откройте Customize, кликните на секцию Header и откл ючите Show currency switcher (в разделе Localization switchers). Плашка языка (Show language switcher) независима.
Особый случай: B2B + Markets
Shopify B2B имеет строгое правило: каждая компания привязана ровно к одному маркету. Когда вы создаёте компанию в Settings ▸ Customers ▸ Companies, вы выбираете маркет, к которому она принадлежит. Покупатели в этой компании будут всегда видеть валюту, язык и каталог этого маркета — они не могут переключаться.
Vertex учитывает это сквозь весь процесс:
| Что отображается для B2B-покупателя | Поведение |
|---|---|
| Плашка валюты | Отображается. Выпадающий список имеет 1 вариант (валюту их маркета). Показывается как валюта, в которой они будут оплачивать при оформлении заказа. |
| Плашка языка | Отображается, если в их маркете опубликован более чем один язык. Иначе отображается с одним вариантом. |
| Переключатель адресов доста вки | Отображается, если у покупателя есть более одного адреса доставки, авторизованного для их компании. Независимо от маркета. |
| Переключатель компаний | Отображается только если покупатель привязан к более чем одной компании (редкость; обычно сотрудники отдела расчётов в материнских компаниях). |
| Объёмное ценообразование + NET-30 + освобождение от налогов | Всё берётся из назначения маркета + каталога компании. Не меняется ничем в переключателях локализации. |
Если покупатель спрашивает «почему моя плашка валюты не меняет валюту?», ответ — потому что B2B-покупатели привязаны, а не потому что плашка сломана. Удаление плашки, чтобы избежать вопроса, создаёт худшую проблему — покупатели больше не видят, в какой ва люте они платят. Оставьте её включённой.
Проверка вашей настройки
После публикации Markets + темы Vertex пройдите по этому чек-листу:
- Откройте витрину в окне инкогнито. По умолчанию вы должны увидеть свой Primary market (USD, если US, GBP, если UK, и т.д.).
- Кликните на плашку валюты в шапке десктопа. Должны появиться все ваши опубликованные маркеты. Выбор одного должен перезагрузить страницу в новой валюте.
- Переключитесь на мобильный breakpoint (или откройте на реальном телефоне). Откройте дровер-гамбургер. Плашки валюты + языка должны появиться в верхней части дровера в 2-колоночной сетке.
- Войдите как тестовый B2B-покупатель. Плашка теперь должна отображаться в кобальтово-синей полосе приветствия (десктоп) или оставаться в дровере (мобильный). Выпадающий список должен показывать только валюту маркета покупателя.