Перейти к содержанию
ionchev

Сделать отображение всех акционных цена на странице продукта.

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

Сделать отображение всех акционых цена на странице продукта.

Есть пять груп Default, Opt1, Opt2, Opt3, Opt4.

Для каждой групы своя цена указана через акции.

Нужно на странице продукта сделать вывод цен:

Розница (Default): 820.00 руб.

Опт1: 780.00 руб.

Опт2: 750.00 руб.

Опт3: 735.00 руб.

Опт4: 725.00 руб.

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


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

как вариант (вместо "Розница (Default): 820.00 руб." стандартный вывод цены):

[=== catalog/controller/product/product.php ===]

перед

$this->data['options'] = array();
добавить

			$this->load->model('account/customer_group');
			$customerGroupsList = $this->model_account_customer_group->getCustomerGroups();
			
			if ($this->customer->isLogged()) {
				$webme_customer_group_id = $this->customer->getCustomerGroupId();
			} else {
				$webme_customer_group_id = $this->config->get('config_customer_group_id');
			}
			foreach ($customerGroupsList as $customerGroup) {
				if ($customerGroup['customer_group_id'] != $webme_customer_group_id) {
					$customerGroupName = $customerGroup['name'];
					
					$webmeSpecial = $this->model_catalog_product->getWholeProductSpecialData($this->request->get['product_id'], $customerGroup['customer_group_id']);
					
					if ($webmeSpecial) {
						$this->data['webmeSpecials'][] = array(
							'price'    => $this->currency->format($this->tax->calculate($webmeSpecial['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;
		}
	}
[=== catalog/view/theme/default/template/product/product.tpl ===]

где надо, например перед

      </div>
      <?php } ?>
      <?php if ($options) { ?>
добавить

        <?php if ($webmeSpecials) { ?>
        <br />
        <div class="discount">
          <?php foreach ($webmeSpecials as $webmeSpecial) { ?>
			<?php echo "Для группы ".$webmeSpecial['customerGroup'].": ".$webmeSpecial['price'].""; ?>
			<br />
          <?php } ?>
        </div>
        <?php } ?>
обратите внимание:

текст "Для группы " забит прямо в код в шаблоне.

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.