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

Опции товара, рассчет стоимости.


Recommended Posts

Сами опции задаются на странице товара product.tpl , а итог мы видим либо в корзине либо в оформление заказа

Можно в принципе установить модуль который будет изменять цену в зависимости от выбранных опций, прямо на странице с товаром...

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

Я хочу сделать, чтобы была возможность помимо + - сделать еще вариант =, чтобы мне не высчитывать на сколько это у меня дороже стоит товар или дешевле, а просто прописывать цену.

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

Ааа понял, я тоже хотел такое сделать (такая функция кстати есть в virtuemart магазине), но у меня ничего не вышло, смог только добавить внешние изменения в админку, но реально они не работали.

Там просто надо много файлов, менять в том числе и php, вот если вы знаете php то я могу попробовать найти все файлы где нужно вносить изменения.

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

Вам нужно воспользоваться программой Agent Ransack - эта прога может искать по названиям файлов и по тексту написанному в самих файлах. Т.е. она быстро и удобно сканирует пока не найдет ваш запрос. Скачать можете с оф сайта.

Мне лично она выдала вот такие результаты:

Изображение

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

Я хочу сделать, чтобы была возможность помимо + - сделать еще вариант =, чтобы мне не высчитывать на сколько это у меня дороже стоит товар или дешевле, а просто прописывать цену.

+ и - покзывают отклонения от основной цены

поэтому "=" там ненужно. = это нулевое отклонение.

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


+ и - покзывают отклонения от основной цены

поэтому "=" там ненужно. = это нулевое отклонение.

думаю имеется ввиду возможность задать цену сразу, без расчетов
Надіслати
Поділитися на інших сайтах

для версии 1.5.3

при редактировании цены у опции укажите =, например

=100

тогда двиг сам посчитает и укажет + или -

Index: admin/model/catalog/product.php
===================================================================
--- admin/model/catalog/product.php	(revision 44:90e85bd8f0dc)
+++ admin/model/catalog/product.php	(revision 44+:90e85bd8f0dc+)
@@ -40,6 +40,15 @@
				
					 if (isset($product_option['product_option_value'])) {
						 foreach ($product_option['product_option_value'] as $product_option_value) {
+							if(strlen($product_option_value['price']) > 0 && $product_option_value['price'][0] == '=') {
+								$option_price = (float)$data['price'] - (float)substr($product_option_value['price'], 1);
+								if($option_price < 0) {
+									$product_option_value['price'] = -$option_price;
+									$product_option_value['price_prefix'] = "+";
+								} else {
+									$product_option_value['price_prefix'] = "-";
+								}
+							}
							 $this->db->query("INSERT INTO " . DB_PREFIX . "product_option_value SET product_option_id = '" . (int)$product_option_id . "', product_id = '" . (int)$product_id . "', option_id = '" . (int)$product_option['option_id'] . "', option_value_id = '" . (int)$product_option_value['option_value_id'] . "', quantity = '" . (int)$product_option_value['quantity'] . "', subtract = '" . (int)$product_option_value['subtract'] . "', price = '" . (float)$product_option_value['price'] . "', price_prefix = '" . $this->db->escape($product_option_value['price_prefix']) . "', points = '" . (int)$product_option_value['points'] . "', points_prefix = '" . $this->db->escape($product_option_value['points_prefix']) . "', weight = '" . (float)$product_option_value['weight'] . "', weight_prefix = '" . $this->db->escape($product_option_value['weight_prefix']) . "'");
						 }
					 }
@@ -173,6 +182,15 @@
				
					 if (isset($product_option['product_option_value'])) {
						 foreach ($product_option['product_option_value'] as $product_option_value) {
+							if(strlen($product_option_value['price']) > 0 && $product_option_value['price'][0] == '=') {
+								$option_price = (float)$data['price'] - (float)substr($product_option_value['price'], 1);
+								if($option_price < 0) {
+									$product_option_value['price'] = -$option_price;
+									$product_option_value['price_prefix'] = "+";
+								} else {
+									$product_option_value['price_prefix'] = "-";
+								}
+							}
							 $this->db->query("INSERT INTO " . DB_PREFIX . "product_option_value SET product_option_value_id = '" . (int)$product_option_value['product_option_value_id'] . "', product_option_id = '" . (int)$product_option_id . "', product_id = '" . (int)$product_id . "', option_id = '" . (int)$product_option['option_id'] . "', option_value_id = '" . (int)$product_option_value['option_value_id'] . "', quantity = '" . (int)$product_option_value['quantity'] . "', subtract = '" . (int)$product_option_value['subtract'] . "', price = '" . (float)$product_option_value['price'] . "', price_prefix = '" . $this->db->escape($product_option_value['price_prefix']) . "', points = '" . (int)$product_option_value['points'] . "', points_prefix = '" . $this->db->escape($product_option_value['points_prefix']) . "', weight = '" . (float)$product_option_value['weight'] . "', weight_prefix = '" . $this->db->escape($product_option_value['weight_prefix']) . "'");
						 }
					 }
Надіслати
Поділитися на інших сайтах

у меня немного по другому - тогда еще скидки можно учесть.

Только я не тестировал.

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


у меня немного по другому - тогда еще скидки можно учесть.

Только я не тестировал.

мне выдает Undefined variable: option_value_query in /home/a/ateliervru/artfabric/public_html/vqmod/vqcache/vq2-system_library_cart.php on line 180Notice: Trying to get property of non-object in /home/a/ateliervru/artfabric/public_html/vqmod/vqcache/vq2-system_library_cart.php on line 180

Если добавляешь товар без опции.

И после того как добавишь 1 товар с опцией =, все другие товары добавляются с такой же ценой )

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

мне выдает Undefined variable: option_value_query in /home/a/ateliervru/artfabric/public_html/vqmod/vqcache/vq2-system_library_cart.php on line 180Notice: Trying to get property of non-object in /home/a/ateliervru/artfabric/public_html/vqmod/vqcache/vq2-system_library_cart.php on line 180

Если добавляешь товар без опции.

И после того как добавишь 1 товар с опцией =, все другие товары добавляются с такой же ценой )

Подправил. Если что, вечером гляну еще раз.

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


вы сначала все файлы из vqmod папки удалите (временно) а потом ошибку смотрите, ото он некорректно отображает, пишет что ошибка во vqmod а её там и в помине нет...

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

Т.е. у вас все работает?

Я проверяю, делаю исправления, поэтому код меняется.

Теперь вроде все.

Попробуйте.

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


Я проверяю, делаю исправления, поэтому код меняется.

Теперь вроде все.

Попробуйте.

Возможно я кэш не почистил, сейчас работает добавление с опцией =. Но есть другой глюк, если этот же товар без опции добавить, то у него будет такая же цена как с опцией :)

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

Теперь при добавлении первого товара с опцией =, все последующие добавляются с 0 ценой

Не могу повторить ошибку. А можно скриншот или подробнее?

А ... у меня радио кнопки, у вас наверное чекбоксы. Сейчас посмотрю.

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


Не могу повторить ошибку. А можно скриншот или подробнее?

А ... у меня радио кнопки, у вас наверное чекбоксы. Сейчас посмотрю.

Да, чекбоксы :)

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

Да, чекбоксы :)

Допустим есть товар и у него 2 опции со знаком =.

При покупке я ставлю оба чекбокса и в корзине это 2 отдельные позиции или одна позиция как сумма двух?

Здесь выложил.

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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