1

Тема: Проверка заполненности полей в карточке товара

Здравствуйте. Есть ли возможность проверить заполненность какого-либо конкретного поля в карточке товара?
Например, у на сайте выставлено 300 моделей кроссовок и для просчета доставки нужно, чтобы поле "вес" было обязательно заполнено и не равно "0", как можно выяснить у каких товаров это поле не заполнено?

Или, например, опять же для расчета доставки у всех товаров есть 3 характеристики (длина, ширина и высота), как можно узнать у каких товаров эти поля не заполнены? Ведь вручную не будешь просматривать несколько тысяч позиций?

Re: Проверка заполненности полей в карточке товара

Облако или на Вашем хостинге?
Если на хостинге, то простейшими sql запросами можно вывести список.
А можно и модуль фильтра каталога товаров сделать. В платной техподдержке за день-два сделают.

3

Re: Проверка заполненности полей в карточке товара

Сайт на хостинге. Это может быть для вас "простейший sql запрос", а для меня это темень дремучая smile
Круто если бы подобный функционал был из коробки, т.к. на мой взгляд, штука актуальная.

Re: Проверка заполненности полей в карточке товара

Это слишком узконаправленный функционал.  Чтобы всех удовлетворить, тогда надо делать конструктор фильтров, как сделано, например у Oracle Forms.
В понедельник запрос напишу и выложу.

Re: Проверка заполненности полей в карточке товара

Это можно сделать доп. модулем причём не дорогим, т.к. надо будет вывести несколько колонок всего. В стандарте пока такого нет. Ну или можете написать пожелание в сервис пожеланий.

6

Re: Проверка заполненности полей в карточке товара

Написал в сервис пожеланий. Для нас это функционал очень актуален, т.к. наполнением сайта занимается человек удаленно и сейчас без знания программирования я не могу полностью контролировать его работу.

7 Отредактировано Ярослав (28.03.2016 17:00:33)

Re: Проверка заполненности полей в карточке товара

Замените префикс таблиц wlzd на свой и вставьте идентификаторы (номера) характеристик.

 SELECT id,wp.title,barcode,wpl.prop_id,wpl.val_str,wpl.val_int FROM wlzd_product wp,  wlzd_product_prop_link  wpl WHERE
  wp.id=wpl.product_id AND 
  wpl.prop_id IN ( 342) AND -- список идентификаторов характеристик (Номера) через запятую
  (wpl.val_int IS NULL OR wpl.val_int=0) -- если строковая переменная, то вместо val_int  будет  val_str

Вот запрос для вывода списка товаров с незаполненным весом:

 SELECT id,wp.title,barcode FROM wlzd_product wp WHERE wp.weight IN ('',0, ' ') OR wp.weight IS null

8 Отредактировано Sergey T. (28.03.2016 22:17:14)

Re: Проверка заполненности полей в карточке товара

Спасибо вам большое за совет, Ярослав!
Но, к моему великому сожалению, у меня нет познаний в базах данных и я не могу воспользоваться вашей инструкцией smile
Могу только готовый код добавить туда куда нужно.

Ярослав пишет:

Замените префикс таблиц wlzd на свой и вставьте идентификаторы (номера) характеристик.

 SELECT id,wp.title,barcode,wpl.prop_id,wpl.val_str,wpl.val_int FROM wlzd_product wp,  wlzd_product_prop_link  wpl WHERE
  wp.id=wpl.product_id AND 
  wpl.prop_id IN ( 342) AND -- список идентификаторов характеристик (Номера) через запятую
  (wpl.val_int IS NULL OR wpl.val_int=0) -- если строковая переменная, то вместо val_int  будет  val_str

Вот запрос для вывода списка товаров с незаполненным весом:

 SELECT id,wp.title,barcode FROM wlzd_product wp WHERE wp.weight IN ('',0, ' ') OR wp.weight IS null

Re: Проверка заполненности полей в карточке товара

Создайте файл в корне сайта с именем допустим info.php.
Можно составить запрос через ORM объект запрос:

<?php
require('setup.inc.php');

$list = \RS\ORM\Request::make()
   ->select('id, title, barcode')
   ->from(new \Catalog\Model\Orm\Product())
   ->where("weight IN ('',0, ' ') OR weight IS null")->exec()
   ->fetchSelected(null);

echo "
<p>Товары без веса</p>
<table>";
if (!empty($list)){
   foreach($list as $item){
        echo "<tr>
            <td>
               ".$item['id']."
            </td>
            <td>
               ".$item['title']."
            </td>
            <td>
               ".$item['barcode']."
            </td>
        </tr>";
   }
}
echo "</table>";

10

Re: Проверка заполненности полей в карточке товара

Спасибо, тоже полезно будет, как без модуля реализуется.

Re: Проверка заполненности полей в карточке товара

Ярослав пишет:

Спасибо, тоже полезно будет, как без модуля реализуется.

Я скоро выпущи видео урок по построению запросов к БД.

12

Re: Проверка заполненности полей в карточке товара

Отлично! А то костыли использую

Re: Проверка заполненности полей в карточке товара

Ярослав пишет:

Отлично! А то костыли использую

Вот обещанный видеоурок
https://www.youtube.com/watch?v=n6ufZ2b … L4X2UTC6Aw

Re: Проверка заполненности полей в карточке товара

Странно что про экспорт в CSV никто не вспомнил. Выгружаешь и сортируешь как нужно.

Повысить оценку Понизить оценку

15

Re: Проверка заполненности полей в карточке товара

Sergey T. пишет:

Написал в сервис пожеланий. Для нас это функционал очень актуален, т.к. наполнением сайта занимается человек удаленно и сейчас без знания программирования я не могу полностью контролировать его работу.

предлагал сделать похожий модуль, пока что - тишина
http://helpdesk.readyscript.ru/wish/Zab … v-519.html

Повысить оценку Понизить оценку

16

Re: Проверка заполненности полей в карточке товара

Sergey T. пишет:

Сайт на хостинге. Это может быть для вас "простейший sql запрос", а для меня это темень дремучая smile
Круто если бы подобный функционал был из коробки, т.к. на мой взгляд, штука актуальная.

Сергей,смотрите,заходите в базу MySQL,открываете список таблиц, они формата префикс_слово ,вам надо таблица с названием префикс_product, название этой таблицы копируете
В верхнем меню есть разделы Структура,SQL,Поиск и т.д
Жмете на SQL ,в строку вставляете

SELECT id,wp.title,barcode FROM ПИШЕТЕ НАЗВАНИЕ ТАБЛИЦЫ(КОТОРУЮ СКОПИРОВАЛИ) wp WHERE wp.weight IN ('',0, ' ') OR wp.weight IS null

Мой пример выглядит так

SELECT id,wp.title,barcode FROM apgr_product wp WHERE wp.weight IN ('',0, ' ') OR wp.weight IS null

и справа жмете ок,в результате получите список с товарами,у которых нет веса

Повысить оценку Понизить оценку