Перейти к основному содержимому

Валюты

Список доступных валют этого магазина, а также их курс обмена, настраивается на вкладке Настройки.

Доступные валюты

Список доступных валют представлен согласно стандарту 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.