Перейти до основного вмісту

Валюти

Список доступних валют цього магазину, а також їх курс обміну, налаштовується на вкладці Налаштування.

Доступні валюти

Список доступних валют представлено відповідно до стандарту ISO 4217.

Для перегляду всього списку доступних валют у вашому контролері просто викличте метод sCommerce::getCurrencies(). Це поверне весь список, доступний для ISO 4217.

use Seiger\sCommerce\Facades\sCommerce;
...

$currencies = sCommerce::getCurrencies();
dd($currencies);
...

Illuminate\Support\Collection {#1351 ▼
#items: array:158 [▼
0 => array:6 [▼
"name" => "UAE Dirham"
"alpha" => "AED"
"numeric" => "784"
"symbol" => "د.إ"
"exp" => 2
"country" => "AE"
]
1 => array:6 [▶]
...
157 => array:6 [▶]
]
#escapeWhenCastingToString: false
}

Дані валюти включають:

  • назву валюти
  • алфавітно-цифровий код валюти
  • цифровий код валюти
  • міжнародний символ
  • кількість знаків після коми
  • країни розповсюдження

Ціна товару та валюта

У вас є можливість встановити ціну товару залежно від обраної валюти. Валюта для всіх цін товарів обирається для поля Ціна. Якщо ви використовуєте більше однієї валюти у вашому магазині, ви повинні переконатися, що одна з доступних для сайту валют додана до сесії користувача, список яких налаштовується на вкладці Панель адміністратора -> Модулі -> Commerce -> Налаштування.

Ви можете використовувати базовий контролер вашого сайту для встановлення валюти для користувача за замовчуванням.

if (!isset($_SESSION['currency'])) {
$_SESSION['currency'] = 'USD';
}

Якщо це не зроблено, то валютою за замовчуванням для користувача буде валюта, обрана як Основна валюта в конфігурації магазину.

Якщо є необхідність показати ціну товару незалежно від вибору валюти користувачем, то використовуйте наступну функцію:

echo $product->priceTo('EUR');

Метод priceTo('XXX') відображатиме ціну товару, конвертовану в обрану валюту у вигляді рядка, відформатованого відповідно до конфігурації sCommerce.

Якщо ви хочете отримати тільки невідформатоване число з ціною в обраній валюті, то використовуйте метод priceToNumber('XXX').

Курс обміну

Список для курсу обміну генерується автоматично, якщо обрано більше однієї доступної валюти. Список курсів формується як дана валюта (XXX) --> її еквівалент в іншій валюті (XXX).

Якщо за будь-яких обставин курс обміну дорівнює 0, або не знайдено, курс обміну буде відображатися як 1:1.