COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

savage4pro

Модераторы
  • Публикации

    786
  • Зарегистрирован

  • Посещение

  • Days Won

    74

Сообщения, опубликованные пользователем savage4pro

  1. Скрытый текст
    
    EXPLAIN EXTENDED SELECT 
        p.product_id,
        pd.name,
        GROUP_CONCAT(DISTINCT CAST(pc.category_id AS CHAR (11))
            SEPARATOR ',') AS categories,
        p.sku,
        p.upc,
        p.ean,
        p.jan,
        p.isbn,
        p.mpn,
        p.location,
        p.quantity,
        p.model,
        m.name AS manufacturer,
        p.image AS image_name,
        p.shipping,
        p.price,
        p.points,
        p.date_added,
        p.date_modified,
        p.date_available,
        p.weight,
        wc.unit,
        p.length,
        p.width,
        p.height,
        p.status,
        p.tax_class_id,
        p.viewed,
        p.sort_order,
        pd.language_id,
        ua.keyword,
        pd.description,
        pd.description_mini,
        pd.meta_description,
        pd.meta_keyword,
        pd.tag,
        pd.seo_title,
        pd.seo_h1,
        p.stock_status_id,
        mc.unit AS length_unit,
        p.subtract,
        p.minimum,
        GROUP_CONCAT(DISTINCT CAST(pr.related_id AS CHAR (11))
            SEPARATOR ',') AS related
    FROM
        `oc_product` p
            LEFT JOIN
        `oc_product_description` pd ON p.product_id = pd.product_id
            AND pd.language_id = 1
            LEFT JOIN
        `oc_product_to_category` pc ON p.product_id = pc.product_id
            LEFT JOIN
        `oc_url_alias` ua ON ua.query = CONCAT('product_id=', p.product_id)
            LEFT JOIN
        `oc_manufacturer` m ON m.manufacturer_id = p.manufacturer_id
            LEFT JOIN
        `oc_weight_class_description` wc ON wc.weight_class_id = p.weight_class_id
            AND wc.language_id = 1
            LEFT JOIN
        `oc_length_class_description` mc ON mc.length_class_id = p.length_class_id
            AND mc.language_id = 1
            LEFT JOIN
        `oc_product_related` pr ON pr.product_id = p.product_id
    GROUP BY p.product_id
    ORDER BY p.product_id , pc.category_id; 

     

     

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

    на фронте же по параметрам можно удобно фильтровать тем же coolfilter

  3. была бы двойка, то как вариант, использовать события вроде такого

    $this->event->trigger('post.admin.product.add', $product_id);

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

     

    а для 1.5 ну что, вкумод никто не отменял, события воротить конечно дело неблагодарное, но дергать контроллеры модулей можно и без них

     

    вариант номер 2: экспорт/импорт - тут простор для воображения и лютого геморроя, если использовать модули, но написанный вручную в скрипте деплой только тех данных, которые требуются, и последующее его выполнение по клику на чудо-кнопку или по крону, тоже имеет право на существование

  4. admin/model/tool/export.php

    в функции populateProductsWorksheet()

    перед

    $result = $database->query( $query );

    добавить 

    exit($query);

    сохранить, затем ткнуть в админке экспорт и увидеть запрос (сюда его)

    далее, выполнить тот же запрос в phpmyadmin (или чем вы пользуетесь), добавив в его начало EXPLAIN EXTENDED (результат выполнения тоже сюда)

    и в том же phpmyadmin выполнить запрос (значение этой переменной)

    SELECT @@max_join_size