# Проверка локализации Shopify для Канады

Source: https://ipvolt.com/ru/guides/shopify-canada-localization
Markdown: https://ipvolt.com/ru/guides/shopify-canada-localization.md
Language: ru

[ipvolt — главная](https://ipvolt.com/ru.md) / [Руководства](https://ipvolt.com/ru/guides.md) / Проверка локализации Shopify для Канады

Интеграция
Проверено: 2026-09-27
9 мин чтения
Автор: ipvolt

Проверьте локализацию Shopify для Канады по снимку конфигурации и парным визитам. Разделите влияние IP, URL, языка, сохранённого выбора и адреса доставки.

Начните с конфигурации вашего интернет-магазина Shopify, затем сравните первый визит из Канады и первый визит не из Канады на **один и тот же нейтральный URL**. Язык, состояние браузера и товар держите неизменными. Явный канадский URL отвечает на другой вопрос, поэтому проверяйте его отдельно.

Рабочий лист для скачивания содержит шесть пар сравнения и двенадцать пустых записей визитов. Выберите пары, которые относятся к вашей проблеме; запускать все шесть не нужно. Локальный скрипт проверки ловит пропущенные объявления и заданные ошибки контроля условий. Поведение Shopify или прокси в этих файлах не измерялось.

Скачайте [рабочий лист JSON](/downloads/canada-localization/shopify-canada-worksheet.json), [скрипт проверки на Python](/downloads/canada-localization/validate_shopify_canada.py) и [README](/downloads/canada-localization/README.md). Для табличного вида держите [CSV конфигурации](/downloads/canada-localization/shopify-canada-configuration.csv) и [CSV визитов](/downloads/canada-localization/shopify-canada-visits.csv) вместе. Скрипт проверки читает JSON; правка CSV его не обновляет.

## Зафиксируйте конфигурацию до визита

Сохраните копию JSON и заполните `configuration` по магазину, которым вы управляете. Дайте снимку идентификатор, метку времени UTC и закрытую ссылку на доказательства. Запишите:

- Активные рынки и валюты; используют ли URL рынков общие, выделенные или смешанные домены.
- Фактические настройки перенаправления по стране и языку, опубликованные языки по рынкам, селекторы и поведение сохранённого выбора.
- Правила доставки и любую стороннюю маршрутизацию либо `none`.
- Тестовый товар или корзину, версию браузера, размер окна, часовой пояс и короткое окно тестирования.

Используйте браузер без входа в аккаунт и с запрещённым доступом к геолокации. Аккаунт или выданные координаты добавили бы в этот протокол лишние входные данные. Во время пары держите конфигурацию и остатки стабильными; если они меняются, запишите новый снимок.

Прочитайте ту настройку доставки, которая действительно есть в вашем магазине. Shopify постепенно переводит профили и тарифы доставки на варианты доставки по рынкам. Его рынки-субрегионы на уровне штата или провинции сейчас находятся в **раннем доступе**, и независимая настройка ограничена вариантами доставки. Ни одна из этих функций не обязательна для рабочего листа. [Настройка доставки](https://help.shopify.com/en/manual/fulfillment/setup/shipping-rates/setting-up-shipping-rates), [типы рынков](https://help.shopify.com/en/manual/markets/getting-started/market-types).

Для каждой подходящей пары установите `applicable` в `true`, запишите `expected_rule` и доказательства для него и до выполнения задайте обоим визитам `expected_outcome`. Неиспользуемые пары оставьте как `applicable: false` с `inapplicable_reason`. Верным результатом может быть и отсутствие изменений, если настроенное правило сопоставляет обоим входам один и тот же вариант магазина.

## Сначала выполните сравнение IP на одном URL

Укажите в `neutral_entry_url` согласованную точку входа для первого визита, на которой проверяется выбор местоположения. Не подставляйте заранее выбранный канадский домен или путь. Если в вашей настройке нет подходящей общей точки входа, отметьте эту пару как неприменимую и объясните причину.

Заполните `exits.CA` и `exits.control` по своим авторизованным наблюдениям IP. Контрольный выход должен находиться за пределами Канады. Запишите сервис проверки или цель, метку времени UTC, наблюдаемую страну и `egress_id`: закрытую ссылку или дайджест, который идентифицирует наблюдаемый выходной адрес. Результат отдельного IP-чекера по стране не определяет собственное решение Shopify о местоположении; Shopify предупреждает, что геолокация по IP может быть неточной. [Особенности локализации](https://help.shopify.com/en/manual/markets/getting-started/localization).

| Визит | Вход | Выход | Язык | Состояние браузера | Адрес доставки |
| --- | --- | --- | --- | --- | --- |
| `ip-A` | Тот же нейтральный URL | Наблюдаемый CA | `en-CA` | Чистое, без входа в аккаунт | Не вводился |
| `ip-B` | Тот же нейтральный URL | Наблюдаемый контрольный вне CA | `en-CA` | Отдельный чистый контекст, без входа в аккаунт | Не вводился |

Для каждого визита открывайте новый изолированный контекст, без повторно использованного состояния хранилища, корзины или старого профиля. Запишите первую страницу, на которую вы попали, до ввода адреса, затем закройте контекст. Shopify описывает автоматическое перенаправление как поведение первой страницы, поэтому переходы внутри существующей сессии относятся уже к другому сравнению. [Перенаправление на первой странице](https://help.shopify.com/en/manual/markets/getting-started/localization).

Записывайте итоговый URL, выбранную страну, рынок, язык и валюту по отдельности. Рынки на общем домене могут менять отображаемое содержимое без смены URL; выделенные домены рынков могут его перенаправлять. Поэтому одна лишь смена URL не годится как универсальное условие прохождения. [Перенаправление в зависимости от домена](https://help.shopify.com/en/manual/international/automatic-redirection).

В качестве доказательства рынка зафиксируйте состояние соответствующего селектора и сопоставление в конфигурации либо авторизованную диагностику витрины. Страна и рынок не обязаны соответствовать один к одному: рынок может включать несколько стран. Одни лишь CAD или HTTP 200 не показывают, какой рынок был выбран. [Объект localization в Liquid](https://shopify.dev/docs/api/liquid/objects/localization) от Shopify отдаёт выбранную страну, язык и применимый рынок страны или региона; в скачиваемых файлах нет протестированной инструментации Liquid. [Охват рынков стран и регионов](https://help.shopify.com/en/manual/markets/getting-started/market-types).

## Добавьте сравнение, которое соответствует симптому

Снимок, товар или корзину и настройки браузера держите неизменными. Каждый чистый визит получает свой контекст; сравнение сохранённого выбора намеренно оставляет только подготовленный выбор.

| Пара | Что меняется между визитами | Что остаётся неизменным | Что помогает диагностировать |
| --- | --- | --- | --- |
| `url` | Нейтральный вход → настроенный канадский вход | Выход CA, `en-CA`, чистые контексты | Взаимодействие URL входа и настроенного перенаправления. |
| `language` | Языковое предпочтение браузера `en-CA` → `fr-CA` | Канадский вход, выход CA, чистые контексты | Появляется ли настроенный французский вариант. |
| `saved` | Чистый контекст → намеренно сохранённый ручной выбор | Канадский вход, выход CA, `fr-CA` | Соблюдается ли записанный выбор в селекторе при возвращении. |
| `province` | Согласованный адрес доставки в Онтарио → в Квебеке | Канадский вход, выход CA, `en-CA`, равноценные чистые корзины | Результаты доставки для этих двух направлений. |
| `cross_border` | Согласованный адрес доставки вне CA → в Онтарио | Вход контрольного рынка, выход вне CA, `en-CA`, равноценные чистые корзины | Изменения оформления заказа после смены направления. |

Если нейтральный и канадский входы совпадают на общем домене, контраст `url` неприменим. Пара `ip` всё равно может проверить содержимое на этом общем входе. Для разных URL наблюдайте взаимодействие в своей настройке, а не исходите из универсального порядка приоритета между URL и IP.

Для языковой пары проверьте фактическое языковое предпочтение браузера. Перенаправление на французский требует, чтобы языковое перенаправление было включено, а французский был добавлен, назначен соответствующему рынку, переведён и опубликован. Shopify приводит пример настроенной витрины `.ca`, которая перенаправляет на `.ca/fr`; это пример из документации, а не шаблон URL, который нужно навязывать каждому магазину. [Требования к языкам](https://help.shopify.com/en/manual/international/automatic-redirection).

Для `saved-B` начните с чистого состояния, вручную выберите нужную страну и английский язык селекторами магазина, затем снова зайдите в том же контексте. Запишите точные шаги. Импорт постороннего старого профиля добавляет неизвестное состояние. Shopify документирует сохранение ручного выбора при последующих визитах. [Сохранённые предпочтения селектора](https://help.shopify.com/en/manual/markets/getting-started/localization).

Для пар с адресами ссылайтесь на согласованные **полные тестовые адреса**, которые хранятся в закрытом виде. Между визитами сбрасывайте корзину и оформление заказа и останавливайтесь на разрешённой точке наблюдения, не размещая заказ. Онтарио против Квебека сравнивает два направления; это не отделяет провинцию от правил по почтовому индексу, улице или радиусу. Для местной доставки сохраняйте также условия по запасам, выполнению заказа и оформлению. [Условия местной доставки](https://help.shopify.com/en/manual/fulfillment/setup/delivery-methods/local-delivery).

После ввода адреса ещё раз проверьте, как выглядит оформление заказа. Shopify документирует, что итоговый вариант определяет направление доставки, и приводит пример посетителя из США, который вводит канадский адрес. Поэтому успешное первое попадание на страницу не завершает трансграничное сравнение. [Локализация оформления заказа](https://help.shopify.com/en/manual/markets/getting-started/localization).

## Разберите, что изменилось, а что нет

Запишите в каждый визит фактические входные данные и наблюдения, затем установите `observation.status` в `observed`. Сохраните итоговый URL, выбранную страну, доказательство рынка, язык, валюту, время UTC и ссылку на доказательства. Для сравнений адресов добавьте варианты доставки и запишите `none`, если их нет.

Используйте `match`, `mismatch` или `inconclusive` относительно ожидания, которое вы записали до визита. Если что-то из `selected_country`, `market`, `market_evidence`, `language` или `currency` недоступно, запишите `unavailable`, выберите `inconclusive` и объясните пробел. Для `final_url` по-прежнему нужен наблюдаемый URL HTTP(S); без него запись остаётся неполной. Сохраняйте записи с несовпадением и без определённого вывода.

**Выдуманный пример интерпретации:** предположим, записанная конфигурация с общим доменом относит посетителей из Канады к рынку Канады, а посетителей из США к рынку США. Оба визита заканчиваются на одном и том же URL. Авторизованное доказательство рынка указывает Канаду для `ip-A` и США для `ip-B`. Это соответствовало бы заявленному правилу даже без перенаправления. Если бы единственным доказательством была цена в CAD, выбор рынка остался бы неопределённым. В этом примере нет наблюдаемого результата какого-либо продавца.

Если оба входа должны выбирать один и тот же рынок, одинаковый результат может считаться совпадением. Если заявленное правило предсказывает разные рынки, а оба наблюдения указывают на один, сохраните несовпадение и проверьте настройки, фактический вход, чистоту состояния и решение Shopify о местоположении. Другой URL вместе с другим языком не позволяет выделить влияние выхода.

Сравните `actual_inputs` с планом. Если выход сменился, товар изменился или использована старая сессия, восстановите контроль условий и повторите пару. Исходную запись сохраните. Заведите новую запись рабочего листа, когда более поздняя пара использует другой наблюдаемый идентификатор выхода; прежнее доказательство IP не распространяется на новый адрес.

## Проверьте запись локально

Положите скрипт проверки рядом с JSON. Python 3.10 или новее использует только стандартную библиотеку:

```sh
python3 validate_shopify_canada.py shopify-canada-worksheet.json
```

Пустой скачанный файл возвращает `INCOMPLETE_RECORD` и код выхода `2`. Заполненный план может вернуть `PLAN_COMPLETE` с кодом `0`: локальные проверки прошли только его объявления и парные входные данные. Это не означает, что проверку прошёл Shopify.

После ввода наблюдений:

```sh
python3 validate_shopify_canada.py shopify-canada-worksheet.json --observations
```

`RECORD_COMPLETE` означает, что заявленные поля наблюдений и контроль условий прошли проверку. Запись может содержать результаты `mismatch` и `inconclusive`; это не подтверждает, что магазин работает или что наблюдения верны.

Чтобы экспортировать представление визитов после правки JSON:

```sh
python3 validate_shopify_canada.py shopify-canada-worksheet.json --export-csv shopify-canada-visits.csv
```

Храните конфигурацию вместе с этим экспортом. Когда скрипт проверки сообщает о неполной записи, прочитайте возвращённые `errors`; не заполняйте недостающие наблюдения ожидаемыми значениями только ради того, чтобы команда завершилась успешно.

## Метод и границы применимости

Рабочий лист составлен по связанной документации Shopify, проверенной 26 сентября 2026 года по UTC. Его скрипт проверки прошёл **28 из 28 офлайн-тестов с выдуманными записями** на Python **3.14.7**, macOS **15.7.4 arm64**. Эти тесты включают отсутствующее доказательство рынка, сменившийся выход, смешанные входные данные IP и языка, состояние со входом в аккаунт, выданное разрешение на геолокацию и адрес, введённый во время пары IP первого визита. Синтаксис Python 3.10 проверен; выполнение проводилось на 3.14.7.

Эти результаты относятся к протестированным проверкам записей. Ни магазин Shopify, ни браузер, ни прокси, ни оформление заказа, ни применимость адресов не тестировались. Протокол рассчитан на настроенный интернет-магазин Shopify (Online Store); headless-витринам, B2B и собственной маршрутизации нужны свои правила. Скрипт проверки не может установить точность определения местоположения по IP, скрытое поведение приложений, корректность налогов или фактическую доступность доставки.

Если требуется определённый сетевой выход, используйте [страницу выбора прокси для Канады](/ru/proxies/canada). Руководство и файлы доступны без регистрации. ipvolt не подтвердил наличие канадских прокси. [Получите ранний доступ](/ru/proxies#waitlist-closing). Одно письмо, когда откроется доступ. Больше ничего.

## Источники и дополнительное чтение

- [Shopify market localization](https://help.shopify.com/en/manual/markets/getting-started/localization)
- [Shopify domain and language redirection](https://help.shopify.com/en/manual/international/automatic-redirection)
- [Shopify market types and early-access sub-region markets](https://help.shopify.com/en/manual/markets/getting-started/market-types)
- [Shopify shipping configuration](https://help.shopify.com/en/manual/fulfillment/setup/shipping-rates/setting-up-shipping-rates)
- [Shopify local-delivery eligibility](https://help.shopify.com/en/manual/fulfillment/setup/delivery-methods/local-delivery)
- [Shopify Liquid localization object](https://shopify.dev/docs/api/liquid/objects/localization)

## Связанные руководства

- [Прокси Канады: локация, сети и проверки сессии](https://ipvolt.com/ru/guides/canada-proxies.md)
- [Настройка прокси в Playwright](https://ipvolt.com/ru/guides/playwright-proxy-setup.md)
- [Прокси Франции: сети, регионы и локальное тестирование](https://ipvolt.com/ru/guides/france-proxies.md)

## О ipvolt

Примеры используют обобщённые настройки прокси со ссылками на оригинальную техническую документацию. Поведение конкретного продукта уточняйте у своего провайдера. ipvolt пока в разработке.

[Читать оригинал на английском](https://ipvolt.com/guides/shopify-canada-localization.md)

## Узнайте, когда откроется доступ.

ipvolt · В разработке

Мы строим прокси-инфраструктуру для разработчиков и команд, работающих с данными. Оставьте email, чтобы получить уведомление, когда ipvolt будет готов.

Одно письмо, когда откроется доступ. Больше ничего.

[Получить ранний доступ](https://ipvolt.com/ru/guides/shopify-canada-localization#waitlist-closing)

[Конфиденциальность](https://ipvolt.com/privacy)

