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

убрать из каталога непоступившие товары


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

Пытался сделать так, чтобы в каталоге не отображались товары, которые находятся в блоке Скоро в продаже на главной.

Пробовал по аналогии с upcoming_products.php вставить в SQL запрос файла products_listing.php следующее:

в секцию SELECT

products_date_available as date_expected from ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_MANUFACTURERS." m

и в секцию WHERE

where to_days(products_date_available) >= to_days(now())

ну и поменял >= на <

и никакого результата. Там было 2 запроса, модифицировал оба, не получается. Как решить?

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

Может не тот запрос правите, а может и ошибка в запросе.

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

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

я правил оба, которые отвечаю за выдачу товара, просто вставил данные из запроса файла upcoming_products

а как бы вы сделали? помощт прошу

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

Чудес не бывает, либо правите не там, либо правите не так.

Смотрите что выводит тот запрос, что Вы правите.

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

а просто подсказать правильное решение что не позволяет? Тут же форум поддержки, вроде как.

То что я правлю не то или не там, понятно, но я сюда не за этим обратился.

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

А просто написать: что именно правите, где именно правите, в каком месте, какие переменные, какой код получается, что не позвляет?

Я наугад ничего конкретного сказать не могу.

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

Единственное, что могу сказать по первому сообщению, так это то, что правите как минимум не тот файл, sql запрос для вывода списка товара не в /includes/modules/product_listing.php и этот файл вообще править не надо.

Запрос на вывод товара формируется в $listing_sql, в /includes/modules/default.php

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

вы вообще читаете что я написал выше? там всё указано, что и где правлю.

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

было (в файле products_listing.php):

if($current_manufacturers_id != 0){

    $product_list_rs = vamDBquery("select p.products_model,

                                    p.products_ean,

                                    pd.products_name,

                                    p.products_id

                                from ".TABLE_PRODUCTS_DESCRIPTION." pd,

                                    ".TABLE_PRODUCTS_TO_CATEGORIES." p2c,

                                    ".TABLE_PRODUCTS." p

                                where p.products_status = '1'

                                    " . $where_manufacturers . "

                                    and p.products_id = p2c.products_id

                                    and pd.products_id = p2c.products_id

                                    and pd.language_id = '1'

                                    and p2c.categories_id = '" . $current_category_id . "'

                                ORDER BY pd.products_name ");

    $product_list = array();

    while($product_row = vam_db_fetch_array($product_list_rs,true))

    {

        $product_list[] = $product_row;

    }

    $product_list_info = "TEST";

    $module->assign('product_list', $product_list);

} elseif (!empty($search_by_params_ids)) {

    $product_list_rs = vamDBquery("select p.products_model,

                                    p.products_ean,

                                    pd.products_name,

                                    p.products_id

                                from ".TABLE_PRODUCTS_DESCRIPTION." pd,

                                    ".TABLE_PRODUCTS_TO_CATEGORIES." p2c,

                                    ".TABLE_PRODUCTS." p

                                where p.products_status = '1' and

                                    " . $search_by_params_ids . "

                                    p.products_id = p2c.products_id

                                    and pd.products_id = p2c.products_id

                                    and pd.language_id = '1'

                                    and p2c.categories_id = '" . $current_category_id . "'

                                ORDER BY pd.products_name ");

добавил туда строки

в секцию SELECT

products_date_available as date_expected from  ".TABLE_MANUFACTURERS." m

и в секцию WHERE

where to_days(products_date_available) >= to_days(now())

так как именно они, очевидно, и отвечают за выборку необходимого товара

ну и поменял >= на <

всё это я указал, способ не сработал.

Вот я и спрашиваю, как убрать непоступившие товары, как правильно составить запрос.

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

Я наверное не понятно пишу.

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

Список товаров формируется не в /includes/modules/product_listing.php, а в /includes/modules/default.php, в $listing_sql запросах, если нужно что-то убирать из списка товаров внутри категорий, то именно эти запросы и надо править.

Открываете файл /includes/modules/default.php

Меняете:


    $listing_sql = "select p.products_fsk18,
                                  p.products_shippingtime,
                                  p.products_model,
                                  p.products_ean,
                                  pd.products_name,
                                  m.manufacturers_name,
                                  p.products_quantity,
                                  p.products_image,
                                  p.products_weight,
                                  pd.products_short_description,
                                  pd.products_description,
                                  p.products_id,
                                  p.manufacturers_id,
                                  p.products_price,
                                  p.products_vpe,
                                  p.products_vpe_status,
                                  p.products_vpe_value,                           
                                  p.products_discount_allowed,
                                  p.products_tax_class_id
                                  from  ".$recursive_table_categories.TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_PRODUCTS_TO_CATEGORIES." p2c, ".TABLE_PRODUCTS." p left join ".TABLE_MANUFACTURERS." m on p.manufacturers_id = m.manufacturers_id
                                  left join ".TABLE_SPECIALS." s on p.products_id = s.products_id
                                  where p.products_status = '1'
                                  and p.products_id = p2c.products_id
                                  and pd.products_id = p2c.products_id
                                  ".$group_check."
                                  ".$fsk_lock."                           
                                  and pd.language_id = '".(int) $_SESSION['languages_id']."' "
                                  .$recursive_check
                                  .$sorting;
[/code] на:
[code]
    $listing_sql = "select p.products_fsk18,
                                  p.products_shippingtime,
                                  p.products_model,
                                  p.products_ean,
                                  pd.products_name,
                                  m.manufacturers_name,
                                  p.products_quantity,
                                  p.products_image,
                                  p.products_weight,
                                  pd.products_short_description,
                                  pd.products_description,
                                  p.products_id,
                                  p.manufacturers_id,
                                  p.products_price,
                                  p.products_vpe,
                                  p.products_vpe_status,
                                  p.products_vpe_value,                           
                                  p.products_discount_allowed,
                                  p.products_tax_class_id
                                  from  ".$recursive_table_categories.TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_PRODUCTS_TO_CATEGORIES." p2c, ".TABLE_PRODUCTS." p left join ".TABLE_MANUFACTURERS." m on p.manufacturers_id = m.manufacturers_id
                                  left join ".TABLE_SPECIALS." s on p.products_id = s.products_id
                                  where p.products_status = '1'
                                  and to_days(products_date_available) <= to_days(now())
                                  and p.products_id = p2c.products_id
                                  and pd.products_id = p2c.products_id
                                  ".$group_check."
                                  ".$fsk_lock."                           
                                  and pd.language_id = '".(int) $_SESSION['languages_id']."' "
                                  .$recursive_check
                                  .$sorting;

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

ДА, спасибо, всё сработало, в 3 местах нашёл такой блок и везде добавил условие.

только из каталога пропали товары, у которых дата не забита.

что если я строчку

and to_days(products_date_available) <= to_days(now())

заменю на

and to_days(products_date_available) <= to_days(now()) or products_date_available= ""

или такое условие не прокатит?

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

Наверное не прокатит, дата ведь всё равно записывается в колонку products_date_available, по идее, там не будет пустой колонки.

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

Ну правильно, наверняка ведь нет товаров у которых в колонке products_date_available просто пустое место.

Наверное там же что-то вроде 0000-00-00 00:00:00 или как-то так.

Нужно в phpMyAdmin смотреть.

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

Ну тогда не знаю, значит ошибка в запросе, раз не работает, либо не тот запрос правите.

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

ещё вопрос - в этом файле 3 разных запроса, которыми идёт отбор товаров, за что они отвечают, каждый из них?

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

Отвечают за разные условия, сортировка по производителю, вывод товаров категории и т.д., там по самому SQL запросу в принципе видно, в чём разница.

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