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

Prooksius

Користувачі
  • Публікації

    1 621
  • З нами

  • Відвідування

Усі публікації користувача Prooksius

  1. ага, да, мой косяк. Нужно было CAST(text AS FLOAT) или так CAST(text AS DECIMAL(10,4)) но лучше первый вариант Или даже так: text+0.0
  2. Вы не правильно понимаете где конкретно сортируется. https://prnt.sc/23jnh85 Но делать там +0 также бессмысленно, потому что эта колонка уже преобразована в число.
  3. Покажите что у вас в SQLMyAdmin вот по такому запросу выдает SELECT product_id,text FROM `oc_product_attribute` WHERE attribute_id=3 ORDER BY CAST(text AS DECIMAL) DESC и чтобы было видно вот эти значения 0.9, 0.7.....
  4. Вот в этом запросе (SELECT CAST(attr.text AS DECIMAL) FROM " . DB_PREFIX . "product_attribute attr WHERE attr.product_id=p.product_id AND attr.attribute_id=3 ORDER BY text+0 DESC) AS attr3"; ORDER BY text+0 DESC - бессмысленно ставить. Тут берется всего одно значение конкретного атрибута конкретного товара конкретного языка. Все. Сортировать тут нечего.
  5. не знаю, не понятно зачем, где у вас такой запрос в самом магазине есть? Какой запрос на данный момент у вас в getProducts Не заработало - как конкретно?
  6. так я же в той теме делал для атрибута, значение которого - число или можно перевести в число. А у вас тут строка получается, то, что у вас там есть - не число. Поэтому сортируется, как строка. Чтобы сортировалось, как число, нужно чтобы там было число. Или целое, или с плавающей точкой, неважно. А если у вас там будет что-то типа "2000 и еще чуть-чуть" - это будет строка. В подзапросе вместо SELECT text нужно написать SELECT CAST(attr.text AS DECIMAL), но вряд ли SQL сервер будет этот текст нормально переводить в строку. Тут надо как-то играться с регулярками, выбирать из вашей строки нужное число по каким-то критериям (брать только до скобок или брать то что в скобках - это только вы знаете)
  7. как сделать чтобы сделанный отзыв показывался на странице товара?
  8. гуглите чаще, эта тема возникает тут с периодичностью в неделю наверное.
  9. В контроллере товара взять его главную категорию: if ($category_info) { $data['main_cat_name'] = $category_info['name']; $data['main_cat_link'] = $this->url->link('product/category', 'path=' . $this->request->get['path']); } else { $data['main_cat_name'] = ''; $data['main_cat_link'] = ''; } а в твиге товара <a href="{{ main_cat_link }}">Назад в {{ main_cat_name }}</a>
  10. а в другом браузере не пробовали? Так же? Я к тому что дело может быть не в самом сайте, а в каком-то глючном аддоне для браузера.
  11. Расстояние посчитать можно через АПИ гугл или ЯД, тут проблем нет. Добавить этот функционал в модуль доставки. И при оформлении заказа заполнять полученным какое-то скрытое поле и отсылать в движок. Или через геокоординаты, имея geo отправки и получения. И там - расчет стоимости. Но тут же еще нужно наверное учитывать не просто расстояние, а направление. Доставка в одну страну принципиально дороже, чем в другую, например. Вот с этим как быть?
  12. или так (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 22222222222) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr и сортировать как обычно
  13. (SELECT IF(COUNT(*) > 0, CAST(pa.text AS INT), 0) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = 1 AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS desc_attr немного поменял чтобы если атрибут не заполнен, выдавало бы точно 0, а не NULL Хотя, это особо и не важно. А двойная сортировка, проверил, вроде все работает.
  14. да собственно, оно и правильно что так отдает, по-другому я не знаю как.. Где непроставлено - пусть будет 0, раз это числовой параметр. А подзапрос тут мне кажется лучше, все товары в любом случае отобразятся. Пусть даже с незаполненным атрибутом. Да и сам подзапрос делается по полям primary key - должно быть быстро все.
  15. я думаю, можно выбрать какой-то самый подходящий для вас и попросить автора доработать под вас. Вряд ли там долго будет.
  16. там получается, если атрибут в каких-то товарах не заполнен, он рассматривается как 0 и эти товары встают в начало (причем как попало), если сортировать по возр. Возможно, нужно будет как-то дорабатывать, чтобы товары еще дополнительно сортировались по имени или sort_order.
  17. https://opencartforum.com/files/category/66-pisma-pochta-rassylki-sms/ Вот здесь поищите, множество модулей SMS отправки есть
  18. убирать в контроллерах категории, производителе, поиске... Это прописано жестко в коде. И наверное не просто так...
  19. Если немного товаров и атрибутов, не будет тормозить, тогда вот так можно. В запросе в модели getProducts добавить через запятую в основной SELECT еще одно "поле" - вложенный SELECT: (SELECT CAST(pa.text AS UNSIGNED) FROM " . DB_PREFIX . "product_attribute pa WHERE pa.product_id = p.product_id AND pa.attribute_id = <ваш attribute_id> AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' LIMIT 1) AS your_attr <ваш attribute_id> = 89 и добавить "your_attr" в массив возможных полей для сортировки ниже по тексту. Ну и в контроллере добавить в выпадающее эту сортировку по полю "your_attr" (без p)
  20. Можно и через атрибуты, конечно, просто такой запрос, возможно, будет сильно тормозить. Если много товаров и много атрибутов - записей в таблице товарных атрибутов может быть очень много и время на запрос может увеличиться непомерно. Поэтому, правильный совет, быстрее будет скопировать в какое-то поле товара и по нему. Ну как power))
  21. то есть тот ваш "power", который вы пытались затулить в сортиоровку - это все-таки атрибут товара, а не поле в таблице товара?
  22. Так сделал на выбор браузера, в <picture> у меня было и webp и jpg. Тот apple какого-то хрена брал webp и успешно не показывал его. Видно надо тогда на бэкенде было проверять..
  23. Если перевести на русский вот эту вот конструкцию, то получается, что если у товара есть акционная цена, то надо сортировать по ней. Если скидочная есть - то по ней, а если нет ни той ни другой - то только тогда по мощности. У вас работает только потому что у товаров нет акционных и скидочных цен. А подсчет количества при такой сортировке, подозреваю что и не работает вовсе... Создаете себе же жуткую головную боль. Дайте кому нибудь денежку, вам сделают правильно.
  24. а это вообще не надо, от слова совсем. достаточно вот этого: $sort_data = array( 'pd.name', 'p.model', 'p.quantity', 'p.price', 'rating', 'p.sort_order', 'p.date_added', 'p.power' );
×
×
  • Створити...

Important Information

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