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

Бонусные баллы


Recommended Posts

Всем доброго дня. Собрался писать модуль, который добавляет за каждую покупку бонусные баллы в зависимости от суммы заказа, то есть баллы за товар не учитываются, в админке задается несколько сумм и для каждой указываем количество бонусных баллов. Подсмотрел, как происходит добавление бонусных баллов за регистрацию в одном модуле, решил сделать аналогично, в catalog/controller/api/order.php добавил код, который считывает значения из конфига модуля и добавляет их и в 793 строчке, где добавляется история к заказу, добавил такой код
 

$discount_values = $this->config->get('module_reward_point_values');
				   $discount_pcnt = 1;

                  if (is_array($discount_values)){
                  foreach ($discount_values as $discount_value) {
                   if ($total['total'] > $discount_value['total'] ) 
                   $discount_pcnt = $discount_value['discount'];
                   }
                   }

				       if($this->config->get('module_reward_point_status') &&   $order_info['customer_id']) {
					
						// Give reward point to customer when order finished.
						if(in_array($this->request->post['order_status_id'], $this->config->get('config_complete_status'))) {
							
								$this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$order_info['customer_id'] . "', order_id = '" . (int)$order_id . "', description = '" . $this->db->escape($this->language->get('text_firstorder')) . "', points = '" .  $discount_pcnt . "', date_added = NOW()");
														
						}
						
						// Pull back reward point order cancelled by admin
						if($this->config->get('config_fraud_status_id') == $this->request->post['order_status_id']) {
							$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_reward WHERE customer_id = '" . (int)$order_info['customer_id'] . "' AND description = '" . $this->db->escape($this->language->get('text_firstorder')) . "' AND order_id='" . (int)$order_id . "'");
							
							if($query->num_rows >= 1) {
								$this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$order_info['customer_id'] . "', order_id = '" . (int)$order_id . "', description = '" . $this->db->escape($this->language->get('text_firstorder_reverse')) . "', points = '-" . (float)$query->row['points'] . "', date_added = NOW()");
							}							
						}						
					}

 

но ничего не происходит, значения в конфиге есть, переменные выводятся, пробовал даже просто захардкодить сразу после if(order_info) что бы проверить
$this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$order_info['customer_id'] . "', order_id = '" . (int)$order_id . "', description = '" . $this->db->escape($this->language->get('text_firstorder')) . "', points = '" .  $discount_pcnt . "', date_added = NOW()");
то же самое, ничего не происходит, кто знает что тут может быть, прошу подсказать, куда смотреть хотя бы?

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


11 минут назад, Linkoln сказал:

в catalog/controller/api/order.php добавил код,

после этого, обновили модификаторы?

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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