Shopify Кнопка «Купить» через JS — Корзина показывает неверную валюту

avatar
John Brunner
18 декабря 2019 в 14:00
744
2
1

Я интегрировал Shopify через JS-библиотеку кнопки "Купить". Все работает правильно, но в корзине указана неверная валюта (вместо € отображается $). Я все правильно настроил через панель администратора Shopify (по адресу https://domain.myshopify.com/admin). Основная валюта магазина установлена ​​​​на EUR, и, , как указано в документах, я могу установить валюту с помощью параметра cart.text.currency. Я сделал это, но это ничего не меняет. Это ошибка?

Мой код JS на данный момент:

<script src="//sdks.shopifycdn.com/buy-button/1.0.0/buybutton.js"></script>
<script>
var client = ShopifyBuy.buildClient({
  domain: 'domain.myshopify.com',
  storefrontAccessToken: '2b3xxxxxxxxjh5', // previously apiKey, now deprecated
});

ui = ShopifyBuy.UI.init(client);

ui.createComponent('product', {
  id: 23xxxxxx56,
  node: document.getElementById('my-product'),
  options: {
    "product": {
      "iframe": true
    },
    toggle: {
      "iframe": true
    },
    cart: {
      "iframe": true,
      "popup": false,
      "text": {
        "title": 'Warenkorb',
        "empty": 'Dein Warenkorb ist leer.',
        "button": 'Jetzt bestellen',
        "total": 'Gesamt',
        "currency": 'EUR',
     }
  }
});
</script>

Но, как видно из прикрепленного изображения, в корзине по-прежнему отображается $ вместо .

Shopify Cart displaying wrong currency


РЕДАКТИРОВАТЬ

Я думаю, что это ошибка на стороне Shopify, но я придумал, как ее преодолеть.

Я добавил параметр moneyFormat в свою функцию createComponent, которая отменяет все объявленные значения валюты.

shopifyUI.createComponent('product', {
  id: 23xxxxxx56,
  node: document.getElementById('shopify-button-buy-regular'),
  moneyFormat: '€{{amount_no_decimals}}',
  options: shopifyOptions
});
Источник

Ответы (2)

avatar
James Beston
8 октября 2021 в 14:42
0

Вам нужно добавить денежный формат к компоненту следующим образом:

ui.createComponent('product', {
  id: 23xxxxxx56,
  node: document.getElementById('my-product'),
  moneyFormat: '%E2%82%AC%7B%7Bamount%7D%7D',
...

Приведенный выше код даст вам знак евро (€).

avatar
David Lazar
18 декабря 2019 в 21:15
0

Проверьте, чтобы код темы, отображающий корзину, соответствовал настройкам валюты. Ваша тема может отображать символ доллара просто из-за того, что код темы не учитывает валюту. Для этой цели обычно используется Liquid filter money_with_currency.