Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Не правильно считает $product['total']


yurabr

Recommended Posts

Здравствуйте.

На сайте три цены. забиты в таблицу «product_discount».

Раньше была убрана возможность заказа без регистрации + некоторые другие нюансы.

Цена зависит от общей сумы заказа.

Решил убрать обязательную регистрацию.

Я ХЗ, как это все объяснять :)

Покажу кусок файла order.php

Обязательная регистрация:

Спойлер

foreach ($data['totals'] as $total) {
			if ($this->customer->isLogged()) {
			if ($this->customer->getCustomerGroupId() == $this->config->get('nomer_group') || $this->customer->getCustomerGroupId() == $this->config->get('nomer_group_2') || $this->customer->getCustomerGroupId() == $this->config->get('nomer_group_3') || $this->customer->getCustomerGroupId() == $this->config->get('nomer_group_4') || $this->customer->getCustomerGroupId() == $this->config->get('nomer_group_5') || $this->customer->getCustomerGroupId() == $this->config->get('nomer_group_6') || $this->customer->getCustomerGroupId() == $this->config->get('nomer_group_7')) {
			
			$this->db->query("INSERT INTO " . DB_PREFIX . "order_total SET order_id = '" . (int)$order_id . "', code = '" . $this->db->escape($total['code']) . "', title = '" . $this->db->escape($total['title']) . "', text = '" . $this->db->escape($total['text']) . "', `value` = '" . (float)$total['value'] . "', sort_order = '" . (int)$total['sort_order'] . "'");
			
			} else {
			if ($this->cart->getSubTotal2() - $this->config->get('min_price_order1') > 0) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "order_total SET order_id = '" . (int)$order_id . "', code = '" . $this->db->escape($total['code']) . "', title = '" . $this->db->escape($total['title']) . "', text = '" . $this->db->escape($total['text']) . "', `value` = '" . (float)$total['value'] . "', sort_order = '" . (int)$total['sort_order'] . "'");
			} elseif ($this->cart->getSubTotal3() - $this->config->get('min_price_order') > 0) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "order_total SET order_id = '" . (int)$order_id . "', code = '" . $this->db->escape($total['code']) . "', title = '" . $this->db->escape($total['title']) . "', text = '" . $this->db->escape($total['text_2']) . "', `value` = '" . (float)$total['value_2'] . "', sort_order = '" . (int)$total['sort_order'] . "'");
			} else {
			$this->db->query("INSERT INTO " . DB_PREFIX . "order_total SET order_id = '" . (int)$order_id . "', code = '" . $this->db->escape($total['code']) . "', title = '" . $this->db->escape($total['title']) . "', text = '" . $this->db->escape($total['text_3']) . "', `value` = '" . (float)$total['value_3'] . "', sort_order = '" . (int)$total['sort_order'] . "'");
			}
			
			}
			} else {
			$this->db->query("INSERT INTO " . DB_PREFIX . "order_total SET order_id = '" . (int)$order_id . "', code = '" . $this->db->escape($total['code']) . "', title = '" . $this->db->escape($total['title']) . "', text = '" . $this->db->escape($total['text']) . "', `value` = '" . (float)$total['value'] . "', sort_order = '" . (int)$total['sort_order'] . "'");
			}
		}	

Сейчас, без обязательной регистрации:

Спойлер


foreach ($data['totals'] as $total) {
if ($this->cart->getSubTotal2() - $this->config->get('min_price_order1') > 0) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "order_total SET order_id = '" . (int)$order_id . "', code = '" . $this->db->escape($total['code']) . "', title = '" . $this->db->escape($total['title']) . "', text = '" . $this->db->escape($total['text']) . "', `value` = '" . (float)$total['value'] . "', sort_order = '" . (int)$total['sort_order'] . "'");
			} elseif ($this->cart->getSubTotal3() - $this->config->get('min_price_order') > 0) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "order_total SET order_id = '" . (int)$order_id . "', code = '" . $this->db->escape($total['code']) . "', title = '" . $this->db->escape($total['title']) . "', text = '" . $this->db->escape($total['text_2']) . "', `value` = '" . (float)$total['value_2'] . "', sort_order = '" . (int)$total['sort_order'] . "'");
			} else {
			$this->db->query("INSERT INTO " . DB_PREFIX . "order_total SET order_id = '" . (int)$order_id . "', code = '" . $this->db->escape($total['code']) . "', title = '" . $this->db->escape($total['title']) . "', text = '" . $this->db->escape($total['text_3']) . "', `value` = '" . (float)$total['value_3'] . "', sort_order = '" . (int)$total['sort_order'] . "'");
			}
		}	

 

 

Видимых проблем нет. Когда через личный кабинет - все ОК.

Но если заказ без регистрации: на странице /admin/index.php?route=sale/order/info цена за единицу и соответственно итого считаются по $total['value'] и никакие условия не работают.

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

Спасибо за любую адекватность.

Опенкарт 1.5.6.4 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.