Перейти к содержанию
Форум поддержки пользователей VamShop

Выбор цены из Атрибутов


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

Собственно вопрос -

http://zoomagazin-aquarium.com.ua/pro-plan-adult-after-care-salmon - цена товара берется с атрибута 1.5 кг - 100 грн. (проверял)

цена самого товара в админке не указана. но если указать цену - то почему то в абтрибутах она генерится (при просмотре товара) по какой то то ли формуле то ли что.

собственно как сделать такое же здесь 

http://aqa.com.ua/advance-cat-chisken--rice-s-kuricej-i-risom - цена не указана - выводится 0 - в атрибутах на 0,4 кг цена так же не указана.  нужно сделать что бы здесь бралась цена с минимального значения - то есть- "от ***.грн".  при этом не должны пострадать другие товары в которых нет атрибутов.

Заранее благодарен

подобная тема (даже из под этого же ника) уже подымалась - но решения так и не нашлось.

получается что цена берется из значения атрибута.

по логике что то типа - " если есть атрибут - указать цену атрибута"  8)

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

был бы очень признателен если бы вы хотя бы подтолкнули и подсказали где ?)) а то доступа к файлам того первого сайта нету. посмотерть как сделано там - не могу.

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

Так а в чём разница между ссылками, не пойму?!

По второй ссылке у атрибута 0.4 не указано цена наверное, поэтому и 0 пишет, а в первой ссылке у всех атрибутов цена указана.

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

даже когда я ставлю цену на 0.4 кг - то пишется только там - а в самой цене остается 0 - на том же сайте - в цене указан 0 - но берется она с актрибута у которого меньшее значение.

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

Так наверное у товара 0 указан, поэтому основная цена 0 и есть.

Так же скрипты по умолчанию работают.

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

function checkAttributes($pID) {
if (!$this->showFrom_Attributes) return;
if ($pID == 0)
return;
$products_attributes_query = "select count(*) as total from ".TABLE_PRODUCTS_OPTIONS." popt, ".TABLE_PRODUCTS_ATTRIBUTES." patrib where patrib.products_id='".$pID."' and patrib.options_id = popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."'";
$products_attributes = vamDBquery($products_attributes_query);
$products_attributes = vam_db_fetch_array($products_attributes, true);
if ($products_attributes['total'] > 0)
return ' '.strtolower('от').' ';[/code]

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

объясняю - на том сайте куда я ссылаюсь - цена указана - 0 - и стоит цена для 2 атрибутов. выбирается цена атрибута с меньшей ценой. 

на моем же - цена так же 0 - атрибуты - пускай у всех будет цена - ставлю - все равно не генерится приставочка вот та вот "от ***" и не берется цена с атрибута

вопрос - почему ? вам_прайс идентичен - я переписал - вывод цены и атрибутов в продукт_инфо - так же. в чем проблема ? это по умолчанию (я так понял глядя на код) должно работать.

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

Код написан так как написан код, что атрибуты - дополнение к товару и вообще-то нужно основную цену товару указывать.

Если Вы нужно как-то по-другому - переписывайте код.

Наверное какие-то скрипты правили, раз по-разному работает.

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

зачем же вы так ?

я не силен в пхп - ок. но всмотревшись в код логично предположить

if ($products_attributes['total'] > 0)

return ' '.strtolower('от').' '; что выбирается минимальная цена из атрибутов... где какие скрипты могли правится ? если как я писал вам_прайс идентичен вообще голой версии? этот код оттуда...

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

Что-то я всё равно не понял, чего Вы хотите.

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

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

хм... ок..

почему же эта текстовая константа не вставляется ?

а что хочу я - - чтобы был следующий алгоритм

если у товара есть атрибуты - выбирать минимальную цену из атрибутов

пример

1кг - 50грн

2кг - 90грн

25кг - 1000грн

цена товара не указана в админке

в цену выводится следующее - "от 50грн"

такое реализовано - ссылку я давал выше.

это полезно было бы не только для меня ! ведь удобно же ?

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

Нет такого.

Цена товара выводится везде, а не цена атрибута.

Не знаю, задумка атрибутов в добавлении цены к товару, т.е. цена у товара всегда указана должна быть, так задумано было.

Можно конечно переделывать, но долго и нудно переписывая php.

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

не нудно и не долго - всем страждущим посвящается )))

 if ($product->data['products_price'] == 0){
      $query = " select min(pa.options_values_price) as price from ".TABLE_PRODUCTS_ATTRIBUTES." as pa ";
      $query .= " where (pa.products_id='".$product->data['products_id']."')";
$query = vam_db_query($query);
$query = vam_db_fetch_array($query, true);
     
      $price = $query['price'];
            $products_price = $vamPrice->GetPrice($product->data['products_id'], $format = true, 1, $product->data['products_tax_class_id'], $price, 1);
} else {
$products_price = $vamPrice->GetPrice($product->data['products_id'], $format = true, 1, $product->data['products_tax_class_id'], $product->data['products_price'], 1);
}[/code]

вставляем в ***\includes\modules\product_listing.php - строка 105

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

+ что бы отображалось еще и в списке товаров

	$products_price = $vamPrice->GetPrice($array['products_id'], $format = true, 1, $array['products_tax_class_id'], $array['products_price'], 1);
заменяем на
if ($array['products_price'] == 0){
      $query = " select min(pa.options_values_price) as price from ".TABLE_PRODUCTS_ATTRIBUTES." as pa ";
      $query .= " where (pa.products_id='".$array['products_id']."')";
$query = vam_db_query($query);
$query = vam_db_fetch_array($query, true);
     
      $price = $query['price'];
            $products_price = $vamPrice->GetPrice($array['products_id'], $format = true, 1, $array['products_tax_class_id'], $price, 1);
} else {
$products_price = $vamPrice->GetPrice($array['products_id'], $format = true, 1, $array['products_tax_class_id'], $array['products_price'], 1);
}[/code]

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

в принципе все ) при указании цены 0 - цена и будет 0

а если есть цена атрибута - будет выбиратся минимальное значение.

но - если указать цену - то в атрибутах цена будет генерится уже в зависимоти от того какая цена базовая и какой вес.

вообщем - уверен что это многим пригодится )

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

Это по одному sql запросу на каждый товар добавляется, если я правильно понимаю?!

т.е. 10 товаров - 10 запросов дополнительных, 1000 товаров - 1000 запросов?!

За код спасибо, но по умолчанию не могу добавить такой код в магазин.

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

да. согласен.

это не моя прихоть - а желание заказчика.

такое добавлять в код нельзя.

лишь при "ХОЧУ и ВСЕ". 

если как либо оптимизировать - тогда возможно...

а так для страждущих и не заботящихся о скорости работы - самое оно )

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