Программа iNETsHOP - обработка, сравнение, анализ прайс листов поставщиков, создание каталога товаров интернет магазина Форум - Программа iNETsHOP - Работа с программой - Сравнение товара по Бренду и Артикулу


http://inetshop.in.ua/index.php?p=showtopic&toid=314&area=1&high=&pp=15&page=3
01.09.2016 10:20

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
В SQL-запросе выборки товаров прайс-листа поставщика есть условие:
Цитата

AND SG_G_ID is NULL


это значит, что выбираются только те товары поставщика, которые не привязаны к товару каталога.

07.09.2016 23:27

Denndy


Пользователь iNETsHOP

Тема начата

Количество сообщений   54
Зарегистрирован:   12-03-2016, 18:32:41
Даже не знаю как правильно задать вопрос, возникла необходимость сохранения в программе в отдельные колонки бренд и артикул, но вот проблема они должны быть без пробелов и специальных символов (,./- и т.д.), и буквы должны быть в верхнем регистре, не подскажите как можно это реализовать?

08.09.2016 00:36

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Бренд в товарах каталога и товарах прайсов - это связанная таблица, т.е. отдельный справочник (список) на который ссылаются карточки товара из каталога и прайса, артикулы - текстовые поля (значения хранятся непосредственно в таблицах).

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

08.09.2016 09:01

Denndy


Пользователь iNETsHOP

Тема начата

Количество сообщений   54
Зарегистрирован:   12-03-2016, 18:32:41
Мне это необходимо для экспорта, я так понимаю, что экспорт возможен только из справочника товаров.

08.09.2016 09:47

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Экспорт возможен из любой таблицы базы данных.

08.09.2016 10:54

Denndy


Пользователь iNETsHOP

Тема начата

Количество сообщений   54
Зарегистрирован:   12-03-2016, 18:32:41
Цитата
Написал: support

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


Для справочника товаров.

08.09.2016 12:13

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Вариантов решения данной задачи несколько, основные:
1. Пользовательский sql-запрос который будет кодифицировать текст бренда и артикула, а потом записывать в свободные поля заметок (закладка заметки в справочнике товаров)
2. Добавление двух индивидуальных триггеров в базу данных которые будут автоматически модифицировать указанные выше поля заметок при изменении у товара бренда или артикула, а так же при изменении названия в справочнике брендов которые привязаны к товару.
3. Подготовка и модификация информации на этапе экспорта.

10.09.2016 11:56

Denndy


Пользователь iNETsHOP

Тема начата

Количество сообщений   54
Зарегистрирован:   12-03-2016, 18:32:41
Цитата
Написал: support
Вариантов решения данной задачи несколько, основные:
1. Пользовательский sql-запрос который будет кодифицировать текст бренда и артикула, а потом записывать в свободные поля заметок (закладка заметки в справочнике товаров)

Не опубликуете на всеобщее обозрение данный запрос?

11.09.2016 11:58

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
В простейшем виде замена символов выглядит так:

Код

SELECT REPLACE(G_MODEL, ' ', '') as G_MODEL FROM TBL_GOODS;


Код

SELECT REPLACE((SELECT B_NAME FROM TBL_BRANDS WHERE B_ID = G_B_ID), ' ', '') as G_MODEL FROM TBL_GOODS

25.01.2017 19:01

Denndy


Пользователь iNETsHOP

Тема начата

Количество сообщений   54
Зарегистрирован:   12-03-2016, 18:32:41
Подскажите пожалуйста, я правильно понимаю значения колонки "Внешний код" в "Справочнике товаров", соответствует значению колонки "Код поставщика" в "Справочнике товаров поставщиков"?

Если да, то сразу второй вопрос, если у двух разных поставщиков будут одинаковые значения этих колонок, программа будет различать поставщиков?

Если да, то сразу третий вопрос, не подскажите скрипт сравнения (идентификация) товаров из "Справочника товаров поставщиков" с товаром из "Справочника товаров" по этим полям.

Попытаюсь объяснить к чему такой "финт". На форуме полно тем связанных с идентификацией товара, ее можно организовать по разному, но все равно возникают всякие мелочи в записях сравниваемых характеристик (по разному записан один и тот-же товар у разных поставщиков, пробелы, точки, тире и т.д. ), и при идентификации товара происходят накладки (например записи артикула вида 00-111213 и 00111213 будут идентифицированы по разному). Когда товара не много все решается ручной корректировкой, а когда один прайс содержит несколько десятков тысяч записей, все значительно усложняется. Возможностями программы, при соответствующих настройках, из коробки на этапе импорта прайса можно решить большинство возникающих вопросов и в поле "Код поставщика" в "Справочнике товаров поставщиков" создать уникальную запись (например связка бренд+артикул с удалением всех ненужных символов, выполнить автозамены и т.д.), но потом эту уникальную запись нужно сравнить из "Справочника товаров поставщиков" с записью в "Справочнике товара", а тут штатных средств нет, поэтому и возникли первых три вопроса.
Заранее спасибо за ответ.



26.01.2017 19:04

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Цитата
Написал: Denndy
Подскажите пожалуйста, я правильно понимаю значения колонки "Внешний код" в "Справочнике товаров", соответствует значению колонки "Код поставщика" в "Справочнике товаров поставщиков"?

Колонка "Внешний код" в справочнике товаров предназначена для хранения какого-либо внешнего ключа, например это может быть ID товара на сайте или в какой-либо учетной системе. Эта колонка у товара только одна, а потому не может хранить дополнительные значения для связки с товарами поставщиков, которых может быть любое количество.

Цитата
Написал: Denndy
Если да, то сразу второй вопрос, если у двух разных поставщиков будут одинаковые значения этих колонок, программа будет различать поставщиков?

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

Цитата
Написал: Denndy
Если да, то сразу третий вопрос, не подскажите скрипт сравнения (идентификация) товаров из "Справочника товаров поставщиков" с товаром из "Справочника товаров" по этим полям.

Такой скрипт вы можете создать простой переделкой примера скрипта для автоматической привязки товаров по связке Артикул+Бренд который присутствует в этой теме.


Код

DECLARE @S_ID int, @SG_ID int, @SG_SID varchar(200), @B_ID int, @G_ID int;
SET @S_ID = :S_ID;

DECLARE cSuppliersGoods CURSOR FOR
SELECT SG_ID, SG_SID, SG_B_ID
FROM TBL_SUPPLIERS_GOODS
WHERE SG_S_ID = @S_ID
AND ISNULL(SG_SID, '') <> ''
AND SG_G_ID is NULL;

OPEN cSuppliersGoods;
FETCH NEXT FROM cSuppliersGoods INTO @SG_ID, @SG_SID, @B_ID;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
SET @G_ID = (
SELECT G_ID
FROM TBL_GOODS
WHERE UPPER(G_OUT_CODE) = UPPER(@SG_SID)
);

IF (@G_ID > 0)
BEGIN
UPDATE TBL_SUPPLIERS_GOODS
SET SG_G_ID = @G_ID
WHERE SG_ID = @SG_ID;
END;

FETCH NEXT FROM cSuppliersGoods INTO @SG_ID, @SG_SID, @B_ID;
END
CLOSE cSuppliersGoods;
DEALLOCATE cSuppliersGoods;


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

04.10.2017 09:16

xlvetal


Посетитель

Количество сообщений   124
Зарегистрирован:   14-11-2015, 14:23:25
Почему не идет привязка Бренд+Арктикул? На фото пример не привязанного товара, который я смог найти через идентификацию товаров поставщика
Прикрепленные файлы
привязка.JPG   ( 5 Просмотров | 240.7 KB )

04.10.2017 10:35

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Для начала вам нужно проверить совпадение артикулов и брендов в соответствующих полях. На фото вы показываете, что они есть в наименовании товара, а не в нужных колонках карточек товаров.

Так же проверьте тем ли SQL-скриптом для привязки товаров вы пользуетесь, т.к. в этой ветке их несколько модификаций.

15.10.2017 13:15

xlvetal


Посетитель

Количество сообщений   124
Зарегистрирован:   14-11-2015, 14:23:25
Почему оно привязывает несколько товаров и выбивает ошибку, нельзя ли как то сделать что бы оно пропускала тот товар и шло дальше сравнения. Каждый скрин делал после ошибки и нажатия кнопки обновления всех данных
Прикрепленные файлы
ошибка1.JPG   ( 5 Просмотров | 411.3 KB )
ошибка2.JPG   ( 5 Просмотров | 410.6 KB )
ошибка3.JPG   ( 5 Просмотров | 409.1 KB )

16.10.2017 13:48

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Данное сообщение об ошибке свидетельствует о том, что подзапрос возвращает несколько значений. В данном случае, скорее всего в каталоге товаров имеется несколько записей товаров поле G_OUT_CODE (Внешний код) которые соответствуют одному из значений в поле SG_SID (Код поставщика) справочника товаров поставщиков.
Код

SET @G_ID = (
SELECT G_ID
FROM TBL_GOODS
WHERE UPPER(G_OUT_CODE) = UPPER(@SG_SID)
);


Убрать сообщение об ошибке можно изменив подзапрос таким образом, чтобы возвращалась одна первая запись.

Код

SET @G_ID = (
SELECT TOP 1 G_ID
FROM TBL_GOODS
WHERE UPPER(G_OUT_CODE) = UPPER(@SG_SID)
);