Enzo 0 Опубликовано 14 марта, 2011 Жалоба Share Опубликовано 14 марта, 2011 Собственно вопрос - 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) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 14 марта, 2011 Жалоба Share Опубликовано 14 марта, 2011 По умолчанию так нельзя выводить, разве что скрипты дорабатывать. Ссылка на сообщение Поделиться на другие сайты
Enzo 0 Опубликовано 14 марта, 2011 Автор Жалоба Share Опубликовано 14 марта, 2011 был бы очень признателен если бы вы хотя бы подтолкнули и подсказали где ?)) а то доступа к файлам того первого сайта нету. посмотерть как сделано там - не могу. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 14 марта, 2011 Жалоба Share Опубликовано 14 марта, 2011 Так а в чём разница между ссылками, не пойму?! По второй ссылке у атрибута 0.4 не указано цена наверное, поэтому и 0 пишет, а в первой ссылке у всех атрибутов цена указана. Ссылка на сообщение Поделиться на другие сайты
Enzo 0 Опубликовано 15 марта, 2011 Автор Жалоба Share Опубликовано 15 марта, 2011 даже когда я ставлю цену на 0.4 кг - то пишется только там - а в самой цене остается 0 - на том же сайте - в цене указан 0 - но берется она с актрибута у которого меньшее значение. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 марта, 2011 Жалоба Share Опубликовано 15 марта, 2011 Так наверное у товара 0 указан, поэтому основная цена 0 и есть. Так же скрипты по умолчанию работают. Ссылка на сообщение Поделиться на другие сайты
Enzo 0 Опубликовано 15 марта, 2011 Автор Жалоба Share Опубликовано 15 марта, 2011 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 - атрибуты - пускай у всех будет цена - ставлю - все равно не генерится приставочка вот та вот "от ***" и не берется цена с атрибутавопрос - почему ? вам_прайс идентичен - я переписал - вывод цены и атрибутов в продукт_инфо - так же. в чем проблема ? это по умолчанию (я так понял глядя на код) должно работать. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 марта, 2011 Жалоба Share Опубликовано 15 марта, 2011 Код написан так как написан код, что атрибуты - дополнение к товару и вообще-то нужно основную цену товару указывать. Если Вы нужно как-то по-другому - переписывайте код. Наверное какие-то скрипты правили, раз по-разному работает. Ссылка на сообщение Поделиться на другие сайты
Enzo 0 Опубликовано 15 марта, 2011 Автор Жалоба Share Опубликовано 15 марта, 2011 зачем же вы так ? я не силен в пхп - ок. но всмотревшись в код логично предположить if ($products_attributes['total'] > 0) return ' '.strtolower('от').' '; что выбирается минимальная цена из атрибутов... где какие скрипты могли правится ? если как я писал вам_прайс идентичен вообще голой версии? этот код оттуда... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 марта, 2011 Жалоба Share Опубликовано 15 марта, 2011 Что-то я всё равно не понял, чего Вы хотите. Указанный код просто смотрит, есть ли у товара атрибуты и если есть вставляет текстовую константу, он ничего с ценами не делает, просто текст добавляет. Ссылка на сообщение Поделиться на другие сайты
Enzo 0 Опубликовано 15 марта, 2011 Автор Жалоба Share Опубликовано 15 марта, 2011 хм... ок.. почему же эта текстовая константа не вставляется ? а что хочу я - - чтобы был следующий алгоритм если у товара есть атрибуты - выбирать минимальную цену из атрибутов пример 1кг - 50грн 2кг - 90грн 25кг - 1000грн цена товара не указана в админке в цену выводится следующее - "от 50грн" такое реализовано - ссылку я давал выше. это полезно было бы не только для меня ! ведь удобно же ? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 марта, 2011 Жалоба Share Опубликовано 15 марта, 2011 Нет такого. Цена товара выводится везде, а не цена атрибута. Не знаю, задумка атрибутов в добавлении цены к товару, т.е. цена у товара всегда указана должна быть, так задумано было. Можно конечно переделывать, но долго и нудно переписывая php. Ссылка на сообщение Поделиться на другие сайты
Enzo 0 Опубликовано 15 марта, 2011 Автор Жалоба Share Опубликовано 15 марта, 2011 не нудно и не долго - всем страждущим посвящается ))) 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 Ссылка на сообщение Поделиться на другие сайты
Enzo 0 Опубликовано 15 марта, 2011 Автор Жалоба Share Опубликовано 15 марта, 2011 + что бы отображалось еще и в списке товаров $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] Ссылка на сообщение Поделиться на другие сайты
Enzo 0 Опубликовано 15 марта, 2011 Автор Жалоба Share Опубликовано 15 марта, 2011 в принципе все ) при указании цены 0 - цена и будет 0 а если есть цена атрибута - будет выбиратся минимальное значение. но - если указать цену - то в атрибутах цена будет генерится уже в зависимоти от того какая цена базовая и какой вес. вообщем - уверен что это многим пригодится ) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 марта, 2011 Жалоба Share Опубликовано 15 марта, 2011 Это по одному sql запросу на каждый товар добавляется, если я правильно понимаю?! т.е. 10 товаров - 10 запросов дополнительных, 1000 товаров - 1000 запросов?! За код спасибо, но по умолчанию не могу добавить такой код в магазин. Ссылка на сообщение Поделиться на другие сайты
Enzo 0 Опубликовано 15 марта, 2011 Автор Жалоба Share Опубликовано 15 марта, 2011 да. согласен. это не моя прихоть - а желание заказчика. такое добавлять в код нельзя. лишь при "ХОЧУ и ВСЕ". если как либо оптимизировать - тогда возможно... а так для страждущих и не заботящихся о скорости работы - самое оно ) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 марта, 2011 Жалоба Share Опубликовано 15 марта, 2011 Ну да, как вариант. В любом случае спасибо, что кодом поделились. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения