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

[Решено] Как убрать один из атрибутов товара, если он закончился на складе

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

Господа, подскажите пожалуйста, как сделать то же что и в этой теме, но со значением одного из атрибутов товара т.е. когда один вид данного товара заканчивался то его и не было бы видно покупателю. Сам не могу разобраться.

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


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

как и обещал помогаю избавиться от "лишних" товаров :)

правок очень много :( , поэтому набираемся терпения

шаг #1

открываем файл

catalog/model/catalog/product.php
находим функцию

public function getProductOptions($product_id) {
меняем в ней

$product_option_value_data[] = array(
	'product_option_value_id' => $product_option_value['product_option_value_id'],
	'name'                    => $product_option_value_description_query->row['name'],
	'price'                   => $product_option_value['price'],
	'prefix'                  => $product_option_value['prefix']
);
на

$product_option_value_data[] = array(
	'product_option_value_id' => $product_option_value['product_option_value_id'],
	'name'                    => $product_option_value_description_query->row['name'],
	'price'                   => $product_option_value['price'],
	'prefix'                  => $product_option_value['prefix'],
	'quantity'              => $product_option_value['quantity'] /* webme - options show|hide - mod */
);
сохраняем, закрываем.

шаг #2

открываем файл

catalog/controller/product/product.php
находим

foreach ($option['option_value'] as $option_value) {
	$option_value_data[] = array(
		'option_value_id' => $option_value['product_option_value_id'],
		'name'            => $option_value['name'],
		'price'           => (float)$option_value['price'] ? $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) : FALSE,
		'prefix'          => $option_value['prefix']
	);
}
меняем на

foreach ($option['option_value'] as $option_value) {
	if ($option_value['quantity'] > 0) {
		$option_value_data[] = array(
			'option_value_id' => $option_value['product_option_value_id'],
			'name'            => $option_value['name'],
			'price'           => (float)$option_value['price'] ? $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) : FALSE,
			'prefix'          => $option_value['prefix']
		);
	}
}

сохраняем, закрываем.

шаг #3

открываем бутылку пива...

Изменено пользователем afwollis
исправлена ошибочка :) и вторая такая же...
  • +1 2

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


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

Спасибо, все заработало, пришлось правда повозиться чуть)))

там в первой замене ошибка выяснилась, путем проб и ошибок,

в строчке с 'price' должно быть => $product_option_value['price'],

А премного благодарен, чтоб без вас делал

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


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

Да, действительно, попалась переменная от другого мода.

Спасибо за "репорт", поправил код.

и еще раз поправил...

Изменено пользователем afwollis

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


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

Вот если бы ещё добавить такую штуку, чтобы оно и сам товар выключало, когда нет ни одного атрибута. У меня все атрибуты (в моём случае расцветки товара) закончились, а товар таки остался... и в строке выбора цвета - пусто. А в корзину товар добавляется. Без атрибутов... :(

Так вот. Не будет ли так любезен многоуважаемый джинн смастырить такую штуку, чтобы и товар вырубало, когда атрибуты закончились?.. :unsure:

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


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

Как-то даже не думал о такой возможности.

Смогу посмотреть, что к чему, только через день-два.

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


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

Как-то даже не думал о такой возможности.

Смогу посмотреть, что к чему, только через день-два.

Судя по всему вы так и не посмотрели?

Может есть сейчас время?

Заранее спасибо!!!

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


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

Судя по всему вы так и не посмотрели?

Может есть сейчас время?

Заранее спасибо!!!

Господа, а подскажите. Как вы делаете списание товара по атрибутам?

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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