TVolodya

В стандартном yandex_market сделать вывод цены с сотыми

Рекомендуемые сообщения

TVolodya    1

Подскажите, пожалуйста, как сделать, чтобы стандартный yandex_market (Version 1.5.1.3) выводил цену не целым числом, а до сотых.

В рекламных прайсах некоторые цены приходится потом править вручную.

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
mrvira    41

Если я правильно понял что нужно, то так:

найдите в catalog/controller/payment/yandex_transfer.php

 $this->data['amount_total']	  = round ($this->data['amount_total'] + $amendment, 2);
 $this->data['amount_commission'] = round ($this->data['amount_total'] - $this->data['amount'], 2);

Вот эти двойки перед закрывающей скобкой - и есть число знаков после запятой.

Замените на 4, если надо:

 $this->data['amount_total']	  = round ($this->data['amount_total'] + $amendment, 4);
 $this->data['amount_commission'] = round ($this->data['amount_total'] - $this->data['amount'], 4);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
TVolodya    1

У меня такого файла нет. Видимо у Вас версия другая или дополнительные модули устанавливали.

Вывод прайса, как я понимаю, происходит в файле catalog/controller/feed/yandex_market.php. Только где тут задать ко-во знаков после запятой цены я не могу понять (цена товара и кур валюты на сайте заданы с сотыми) -

$data['price'] = number_format($this->currency->convert($this->tax->calculate($product['price'], $product['tax_class_id']), $shop_currency, $offers_currency), $decimal_place, '.', '');

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
mrvira    41

Переменная $decimal_place и отвечает за количество знаков после запятой.

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

$decimal_place = $this->currency->getDecimalPlace($offers_currency)

;)

Есть два варианта:

1. Просто поставить 4:

$data['price'] = number_format($this->currency->convert($this->tax->calculate($product['price'], $product['tax_class_id']), $shop_currency, $offers_currency), 4, '.', '');

Или так:

$decimal_place = 4;
$data['price'] = number_format($this->currency->convert($this->tax->calculate($product['price'], $product['tax_class_id']), $shop_currency, $offers_currency), $decimal_place, '.', '');

2. Настроить в админке отображение 4-х знаков после запятой для всех валют. Но тогда это будет влиять вообще на всё отображение стоимости.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
TVolodya    1

Большое спасибо за помощь !

Остановился на варианте -

$decimal_place = 2;

Цены на сайте без копеек и в прайс выводятся как нужно !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу