Из чтения источника я понимаю следующее: $price
, $special
и $tax
- это переменные, которые передаются в представление для отображения.
$price = $this->currency->format($this->tax->calculate($result['price'],
$result['tax_class_id'], $this->config->get('config_tax')));
Каждый пункт имеет цену, поэтому $price
всегда установлен.$price
есть;базовая цена с учетом применимых налоговых классов и применяемого налога.
if ((float)$result['special']) {
$special = $this->currency->format($this->tax->calculate(
$result['special'],
$result['tax_class_id'], $this->config->get('config_tax')));
} else {
$special = false;
}
Товар может быть специальным.Если это так, тогда $special
устанавливается в качестве базовой специальной цены, к которой применяется тот же набор налоговых расчетов. (чтобы код вида мог отображать как оригинал, так и цену SPECIAL!)
if ($this->config->get('config_tax')) {
$tax = $this->currency->format((float)$result['special'] ?
$result['special'] : $result['price']);
} else {
$tax = false;
}
Не для всех установок настроен налог.Если это так, тогда $tax
устанавливается как базовая или базовая специальная цена. (чтобы код представления мог отображать, сколько стоит элемент до налога. (Немного нелогично, что $tax
- это цена без каких-либо налогов)
Имеет смысл? Если вам нужно больше узнать о том, как рассчитывается цена, присмотритесь к tax->calculate()
. В противном случае это
$taxed_price = $special ? $special : $price;
$untaxed_price = (float)$result['special'] ? $result['special'] : $result['price'];