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

[РЕШЕНО] Вывод всех акций на странице продукта


Recommended Posts

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

Как вывести все скидки, если в шаблон передается одно значение и только для одной группы?

 

Должно получиться:

Базовая цена 1000 руб

Постоянный покупатель 900 руб

Старый клиент 800 руб

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


Предположительно нужно править модель, чтобы из базы данных забиралсь информация не только об акции для одной группы, а все имеющиеся.

Может быть кто-то встречал модуль для вывода нескольких акций в код товара?

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


Зачем делить клиентов на "Старых" и "Постоянных"? Судя по ценнику, "Старый" для вас важнее, чем "Постоянный", что говорит (по логике вещей) о том, что "Старый" клиент не который один раз купил и получил скидку больше того, что затаривается ежедневно, а который также регулярно покупает что-то, что дает ему привилегированную цену. Так пусть он будет "VIP клиент", если у вас есть разница между постоянными клиентами по возрасту аккаунта. Сначала СМЕНИТЕ название клиента со "Старого" на нормальное уважительное, а потом уже выводите.

А то выглядит это, как "Старый пень" :)

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


сначала пусть определится "акции" или "скидки".

В чем нужно определиться? В опенкарт четкое разграничение.

 

Акция - это скидка которая не зависит от количества

Скидка - это скидка которая задается в зависимости от кол-ва товара для каждой группы.

 

Поэтому нужно вывести именно акции но для всех групп покупателей, а не только текущей.

 

 

Сначала СМЕНИТЕ название клиента со "Старого" на нормальное уважительное, а потом уже выводите.

А то выглядит это, как "Старый пень" :)

 

Сменим на колонка 1, колонка 2, от этого что-то измениться в решение поставленной задачи - вывод акций на страницу не зависимо от группы?

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


catalog/controller/product/product.php

...
			$this->load->model('account/customer_group');
			$customerGroupsList = $this->model_account_customer_group->getCustomerGroups();
			
			$this->data['wholeSpecials'] = array();
			if ($this->customer->isLogged()) {
				$ws_customer_group_id = $this->customer->getCustomerGroupId();
			} else {
				$ws_customer_group_id = $this->config->get('config_customer_group_id');
			}
			foreach ($customerGroupsList as $customerGroup) {
				if ($customerGroup['customer_group_id'] != $ws_customer_group_id) {
					$customerGroupName = $customerGroup['name'];
					
					$wholeSpecial = $this->model_catalog_product->getWholeProductSpecialData($this->request->get['product_id'], $customerGroup['customer_group_id']);
					
					if ($wholeSpecial) {
						$this->data['wholeSpecials'][] = array(
							'price'    => $this->currency->format($this->tax->calculate($wholeSpecial['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))),
							'customerGroup' => $customerGroupName
						);
					}
				}
			}
			...
catalog/model/catalog/product.php

...
public function getProductSpecials($data = array()) {
...
>>

...
	public function getWholeProductSpecialData($product_id, $customer_group_id_listed) {
		$query = $this->db->query("SELECT `price`, `date_end`, `customer_group_id` FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$customer_group_id_listed . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1");

		if ($query->num_rows) {
			return $query->row;
		} else {
			return FALSE;
		}
	}

public function getProductSpecials($data = array()) {
...
tpl

...
        <?php if ($wholeSpecials) { ?>
        <br />
        <div class="discount">
          <?php foreach ($wholeSpecials as $wholeSpecial) { ?>
			<?php echo "Для группы ".$wholeSpecial['customerGroup'].": ".$wholeSpecial['price'].""; ?>
			<br />
          <?php } ?>
        </div>
        <?php } ?>
...
  • +1 1
Надіслати
Поділитися на інших сайтах

  • 2 years later...
  • 2 months later...
  • 1 month later...
В 18.04.2015 в 22:01, afwollis сказал:

catalog/controller/product/product.php

 


...
			$this->load->model('account/customer_group');
			$customerGroupsList = $this->model_account_customer_group->getCustomerGroups();
			
			$this->data['wholeSpecials'] = array();
			if ($this->customer->isLogged()) {
				$ws_customer_group_id = $this->customer->getCustomerGroupId();
			} else {
				$ws_customer_group_id = $this->config->get('config_customer_group_id');
			}
			foreach ($customerGroupsList as $customerGroup) {
				if ($customerGroup['customer_group_id'] != $ws_customer_group_id) {
					$customerGroupName = $customerGroup['name'];
					
					$wholeSpecial = $this->model_catalog_product->getWholeProductSpecialData($this->request->get['product_id'], $customerGroup['customer_group_id']);
					
					if ($wholeSpecial) {
						$this->data['wholeSpecials'][] = array(
							'price'    => $this->currency->format($this->tax->calculate($wholeSpecial['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))),
							'customerGroup' => $customerGroupName
						);
					}
				}
			}
			...

catalog/model/catalog/product.php

 


...
public function getProductSpecials($data = array()) {
...

>>

 


...
	public function getWholeProductSpecialData($product_id, $customer_group_id_listed) {
		$query = $this->db->query("SELECT `price`, `date_end`, `customer_group_id` FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$customer_group_id_listed . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1");

		if ($query->num_rows) {
			return $query->row;
		} else {
			return FALSE;
		}
	}

public function getProductSpecials($data = array()) {
...

tpl

 


...
        <?php if ($wholeSpecials) { ?>
        <br />
        <div class="discount">
          <?php foreach ($wholeSpecials as $wholeSpecial) { ?>
			<?php echo "Для группы ".$wholeSpecial['customerGroup'].": ".$wholeSpecial['price'].""; ?>
			<br />
          <?php } ?>
        </div>
        <?php } ?>
...

 

Дружище! Как на 2.3 сделать? Помоги пожалуйста! И в категории вывести эти цены... Можно платно, только предоставь код для разных версий движка 2.0 и 2.3

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


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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