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

Вывод количества товара соответственно каждой опции


Recommended Posts

Только-только сделал.. еще тепленькое, спешу поделиться!

post-18254-0-58507100-1332946562_thumb.jpg

Суть вопроса:

Есть, условно товар "Футболка". У этого товара есть опции:

  • белая Х
  • черная Х
  • черная ХХ
  • белая Х - 2шт
  • черная Х- 3шт
  • черная ХХ- 5шт

Всего - 10шт.

До модификации, покупатель может заказать 10шт. любой опции. И только уже в корзине ему скажут, что "данного товара нет достаточного количества".

Хочется, в конце (в идеале), что-бы покупателю сразу же сообщалось о нехватке данного товара.

Пока сделал так, что-бы внутри опций возле +/- показывался и остаток товара по данной опции.

Немножко дополнить нужно всего 2 файла:

/www/catalog/controller/product/product.php

найти строку 261 (приблизительно, я уже много различных модификаций делал и поэтому нумерация может немного отличатся) и в блок формирования массива добавить " 'quantity' => $option_value['quantity'], "

foreach ($option['option_value'] as $option_value) {

if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) {

$option_value_data[] = array(

'product_option_value_id' => $option_value['product_option_value_id'],

'option_value_id' => $option_value['option_value_id'],

'quantity' => $option_value['quantity'],

'name' => $option_value['name'],

'image' => $this->model_tool_image->resize($option_value['image'], 50, 50),

'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,

'price_prefix' => $option_value['price_prefix']

);

}

}

В массив option добавим и заполним переменную quantity.

Теперь, в массиве $option_value в ячейке 'quantity' будет наше искомое количество, указанное для товара на странице Товар->Опции.

Далее, можно эту переменную использовать в шаблоне, используя в нужном месте <!--?php echo $option_value['quantity']; ?-->.

Я использовал это в момент формирования списка с вариантами опций.

Меняем файл /www/catalog/view/theme/my_theme/template/product/product.tpl

найти строку 69 (приблизительно)

<select name="option[<?php echo $option['product_option_id']; ?>]">

<option value=""><!--?php echo $text_select; ?--></option>

<!--?php foreach ($option['option_value'] as $option_value) { ?-->

<option value="<?php echo $option_value['product_option_value_id']; ?>"><!--?php echo $option_value['name'];?-->

<!--?php if ($option_value['price']) { ?-->

(<!--?php echo $option_value['price_prefix']; ?--><!--?php echo $option_value['price']; ?-->)

<!--?php } ?-->. max: <!--?php echo $option_value['quantity']; ?-->

</option>

<!--?php } ?-->

</select>

Теперь, имеея в шаблоне количество товара определенной опции, хочется блокировать кнопку "Купить", если покупатель покупает 5 желтых футболок, но их только 2 ($option_value['quantity']=2).

Может комуто-то это будет толчком и пищей для ума - и этот кто-то сумеет доделать это на Ajaxe/JScript и т.д.

Буду рад если доведем это до конца.

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


  • 4 years later...

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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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