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

petyann

Новачок
  
  • Публікації

    46
  • З нами

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

Повідомлення, опубліковані користувачем petyann

  1. 6 минут назад, Prooksius сказал:
    
    {% if product.quantity < 1 %} 

    Неа. Тоже пробовал, не работает. Всё равно у товаров, которые есть в наличии, показывается как "Нет в наличии". То есть значение product.quantity, видимо, не существует.

  2. Как сделать неактивной в ЗАКЛАДКАХ кнопку "Купить", если товара нет в наличии? (В карточке товара и в категориях всё получилось, но вот с закладками возникла заминка.)

    (Стоит модуль для добавления в закладки без регистрации)

    В контроллере (account/wishlist) прописал так:

    $data['stock_quantity'] = $product_info['quantity'];
    $data['text_out_of_stock'] = $product_info['stock_status'];

    Там же, в разделе $data['products'][] = array(

    'quantity' => $result['quantity'],
    'text_out_of_stock' => $result['stock_status'],

    В wishlist.twig вместо кнопки "Купить" прописал:

    {% if product.stock_quantity < 1 %} 
        <button type="button" id="button-outstock" disabled="disabled" class="btn btn-primary btn-lg btn-block out_of_stock"><i class="fa fa-ban out_of_stock_color"></i> {{ text_out_of_stock }}</button>
    {% else %}
        <button type="button" id="button-cart" data-loading-text="{{ text_loading }}" class="btn btn-primary btn-lg btn-block">{{ button_cart }}</button>
    {% endif %}

    Но теперь абсолютно все кнопки, даже у тех товаров, которые в наличии, стали неактивными с надписью (text_out_of_stock) "Нет в наличии". То есть, похоже, что массив stock_quantity не создался, что ли? В чём тут ошибка?

  3. 6 часов назад, Tom сказал:

    Нет.

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

    По сути вопроса : на хостинге, видимо какой то мега дешёвый тариф, ничего в себя не включающий. Пишите напрямую в тех поддержку, что нужно помочь с данными проблемами и за одно привести им список ошибок и предупреждений.

    Минимальный набор знаний и программирования вполне имеется. Хостинг вроде да, не сильно дорогой, просто привык к нему, уж порядка 15 лет его использую. Не  ожидал, что там ionCube не подключен.

  4. 6 часов назад, Tom сказал:

    В закладки, в опенкарт можно добавить только авторизованным покупателям....

     

    Вы за эти три хотелки, отвалите денег больше, чем купите это вместе с готовым шаблоном, где всё это уже есть...

    В этом например

     

    Его с нуля ставить надо? Поставил поверх своего сайта (который с дефолтным шаблоном). Выдаёт пустую страницу. При попытке включить настройки шаблона выдаёт:

    Attention! Increase the "max_input_vars parameter" in your hosting settings to 2000

    Attention! Increase the "max_input_vars parameter" in your hosting settings to 2000

    Site error: the ionCube PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking. Please visit get-loader.ioncube.com for install assistance.

  5. Подскажите модуль для изменения стиля кнопок "В закладки" и "Сравнение" после нажатия. То есть чтобы нажать на сердечко "В закладки", и оно стало, например, красным и добавилось в закладки, а если нажать ещё раз, то всё обратно сбросилось. (Ну и со сравнением так же).

  6. При добавлении товара в корзину, закладки или в сравнение сами кнопки никаким образом не меняются (остаётся тот же текст и цвет), то есть даже не понятно, добавлен этот товар куда-либо, или нет.

    Можно ли как-то при добавлении заказа в корзину, закладки или в сравнение менять, например, цвет текста (чтобы, например, при добавлении в закладки сердечко становилось красным)? Ну или у кнопки "Купить", например, поменять текст на "В корзине"?

  7. Как добавить Сравнение товаров в самое верхнее меню (там, где Личный кабинет, Закладки, Корзина и т.д.)?

     

    Скопировал из category.php в header.php строки:

    $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
    $data['compare'] = $this->url->link('product/compare');

     

    Скопировал из category.twig в верхнюю строчку header.twig следующую строку:

    <a href="{{ compare }}" id="compare-total" class="btn btn-link">{{ text_compare }}</a>

     

    Но не работает. Если нет товаров в сравнении, то показывает символ %, если есть то показывает их количество, но, при нажатии перебрасывает на главную страницу. Кроме того, ещё и стандартное сравнение перестаёт работать.

  8. 27 минут назад, Prooksius сказал:

    у вас магазин стоит не в корне домена?..

    Если все работает, просто перенесите папку в нужное место и измените config.php в корне и в папке admin соответственно  измененному пути.

    Огромное спасибо! Так всё получилось!

  9. Как перенести магазин на Opencart из одной директории домена в другую директорию этого же домена? Не на другой хостинг, а именно из одной директории домена в другую директорию этого же домена.

    Сейчас он располагается по адресу вида mysite.ru/ok/

    Необходимо перенести его в корневой каталог, чтобы он располагался сразу по адресу mysite.ru

    Возможно ли это и насколько это сложно?

     

    (Не в ту тему написал)

  10. 1 час назад, Prooksius сказал:

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

    В запросе в модели 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)

    Спасибо большое.

  11. 14 минут назад, spectre сказал:

     

    вам нужно сделать скрипт который будет копировать значения атрибута в какое-то поле в товаре существующее или создать новое - а уже потом сортировать по нему

    таблицу атрибутов дергать это больновато

    Если сделать через новый столбец в самой базе данных (ввести их даже вручную) и по нему сортировать, то это не проблема. Просто думал, что можно как-то проще подключить oc_product_attribute и сортировать через attribute_id.

  12. 5 минут назад, Dimasscus сказал:

    Вы сначала обьясните как вы сортировку по атрибуту себе представили. У этого атрибута какие значения?

    У этого атрибута целые числовые: 7, 9, 12, 55, 75, 100, 200.

  13. Стоит Стоит Opencart 3.0.3.8 (rs.2).

    Подскажите, как можно вывести сортировку по атрибуту товара?

    Атрибуты, как я понимаю, находятся в базе данных в таблице oc_product_attribute.

    Нужный attribute_id, по которому требуется сделать сортировку — 89.

    Я так понимаю, что в где-то в файле ok/catalog/model/catalog/product.php нужно что-то сделать? Но что и как?

  14. 51 минуту назад, Prooksius сказал:

    Если перевести на русский вот эту вот конструкцию, то получается, что если у товара есть акционная цена, то надо сортировать по ней. Если скидочная  есть - то по ней, а если нет ни той ни другой - то только тогда по мощности.
    У вас работает только потому что у товаров нет акционных и скидочных цен.
    А подсчет количества при такой сортировке, подозреваю что и не работает вовсе...
    Создаете себе же жуткую головную боль. Дайте кому нибудь денежку, вам сделают правильно.

    Акционных и скидочных цен там точно не будет. В фильтре товаров (модуль okFilter) количество правильно считает. Но, всё же, желательно сделать правильно. Не подскажете, какой код будет корректным в данном случае?

    Попробовал вместо строки

    ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.power END)
    

    написать вот так:

    $sql .= " ORDER BY p.power";

    Вроде тоже работает.

  15. 1 час назад, vvo сказал:
      Показать контент

            <operation>
                <search index="0"><![CDATA[$sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";]]></search>
                <add position="replace"><![CDATA[
            $sql .= " ORDER BY p.quantity<1, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
            } elseif ($data['sort'] == 'p.date_added') {$sql .= " ORDER BY p.quantity<1, p.date_added";
                ]]></add>
            </operation>

     

    сам код в оригинале такой же

    p.quantity<1 если не нужно можете убрать, это не если нет товара, p.date_added замените на p.power и пробуйте

    Спасибо, похоже заработало.

    Если кому пригодится, то, помимо вышеизложенного, в catalog/model/catalog/product.php добавил код (красным цветом):

    if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
                if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
                    $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
                } elseif ($data['sort'] == 'p.price') {
                    $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
                } elseif ($data['sort'] == 'p.power') {
                    $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.power END)";
                }

                else {
                    $sql .= " ORDER BY " . $data['sort'];
                }
            } else {
                $sql .= " ORDER BY p.sort_order";
            }

  16. 1 час назад, vvo сказал:

    Видимо один маленький шаг не доделали. 

    Посмотрите по аналогии:

      Скрыть контент

    catalog/model/catalog/product.php

     

            $sort_data = array(
                'pd.name',
                'p.model',
                'p.quantity',
                 'p.viewed',
                 'p.price',
                'rating',
                'p.sort_order',
                'p.date_added'
            );

            if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
                if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
                    $sql .= " ORDER BY p.quantity<1, LCASE(" . $data['sort'] . ") ";
                } elseif ($data['sort'] == 'p.price') {
                    
            $sql .= " ORDER BY p.quantity<1, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
            } elseif ($data['sort'] == 'p.date_added') {$sql .= " ORDER BY p.quantity<1, p.date_added";

     

    А там два похожих кода:

            $sort_data = array(
                'pd.name',
                'p.model',
                'p.quantity',
                'p.price',
                'rating',
                'p.sort_order',
                'p.date_added',
                'p.power'
            );
    
            if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
                if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
                    $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
                } elseif ($data['sort'] == 'p.price') {
                    $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
                } else {
                    $sql .= " ORDER BY " . $data['sort'];
                }
                
            } else {
                $sql .= " ORDER BY p.sort_order";
            }

    и

            $sort_data = array(
                'pd.name',
                'p.model',
                'ps.price',
                'rating',
                'p.sort_order'
            );
    
            if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
                if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
                    $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
                } else {
                    $sql .= " ORDER BY " . $data['sort'];
                }
            } else {
                $sql .= " ORDER BY p.sort_order";
            }

    Я так понимаю, что менять надо в первом. Но вот немного не соображу, как правильно именно в таком коде всё прописать и, главное — как правильно.

  17. Стоит Opencart 3.0.3.8 (rs.2).

    Как добавить новый элемент сортировки на страницу категорий, помимо тех, что есть по умолчанию?

    Нужно добавить сортировку товаров по мощности.

    В базе данных (phpMyAdmin) в таблицу oc_product (думаю, что именно в неё нужно) добавил новый параметр "power".

    В файле catalog/language/ru-ru/product/category.php прописал:

    $_['text_power_asc']    = 'Мощность (низкая &gt; высокая)';
    $_['text_power_desc']   = 'Мощность (высокая &gt; низкая)';

     

    В файле catalog/controller/product/category.php прописал:

                 $data['sorts'][] = array(
                    'text'  => $this->language->get('text_power_asc'),
                    'value' => 'p.power-ASC',
                    'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.power&order=ASC' . $url)
                );
    
                $data['sorts'][] = array(
                    'text'  => $this->language->get('text_power_desc'),
                    'value' => 'p.power-DESC',
                    'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.power&order=DESC' . $url)
                );

     

    В сортировке добавились пункты "Мощность (низкая > высокая)" и "Мощность (высокая > низкая)", но сортировка по ним не работает.

    Полагаю, что нужно добавить параметр p.power (или что-то вроде того) в переменную $sql, но не совсем понимаю, где и как это сделать, и, видимо, нужен ещё какой то код, чтобы сортировка заработала.

    Можете подсказать более подробно, как это сделать?

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

Important Information

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