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

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


Badick

Recommended Posts

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

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


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

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

шаг #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 1
Надіслати
Поділитися на інших сайтах

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

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

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

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

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


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

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

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

Змінено користувачем afwollis
Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

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

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

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


  • 9 months later...

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

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

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

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

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

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


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

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

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

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

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

Вхід

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

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

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

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

Important Information

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