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


http://inetshop.in.ua/index.php?p=showtopic&toid=260&pp=15&page=1&area=1&print_post=2114
20.09.2016 13:39

support


Support


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

SQL-скрипт обработки категорий:
Код

DECLARE
@ID int,
@SID varchar(100),
@NAME varchar(400),
@BRAND varchar(10),
@ARTIKUL varchar(100),
@DESCRIPTION varchar(8000),
@NOTES varchar(8000),
@PRICE varchar(100),
@WARRANTY varchar(100),
@PRESENT varchar(100),
@REST varchar(100),
@FIRST_CAT varchar(250),
@LAST_CAT varchar(250),
@LAST_GOOD int;

SET @LAST_GOOD = 0;
SET @FIRST_CAT = '';
SET @LAST_CAT = '';

DECLARE cPrice CURSOR LOCAL FOR
Select
ID,
CAST(SID as varchar(100)),
CAST(NAME as varchar(400)),
CAST(BRAND as varchar(100)),
CAST(ARTIKUL as varchar(100)),
CAST(DESCRIPTION as varchar(8000)),
CAST(NOTES as varchar(8000)),
IsNull(LTRIM(RTRIM(CAST(PRICE as varchar(100)))), ''),
CAST(WARRANTY as varchar(100)),
CAST(PRESENT as varchar(10)),
CAST(REST as varchar(8000))
from #TMP_PRICE order by ID;

OPEN cPrice
FETCH NEXT FROM cPrice INTO @ID, @SID, @NAME, @BRAND, @ARTIKUL, @DESCRIPTION, @NOTES, @PRICE, @WARRANTY, @PRESENT, @REST;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
if (IsNumeric(@SID) = 0 and IsNull(@NAME, '') <> '')
begin
IF @LAST_GOOD = 0
BEGIN
SET @FIRST_CAT = @LAST_CAT;
SET @LAST_CAT = @NAME;
END
ELSE
BEGIN
SET @LAST_CAT = @NAME;
END
SET @LAST_CAT = @NAME;
SET @LAST_GOOD = 0;
end
else
begin
update #TMP_PRICE set CATEGORY = @FIRST_CAT + ' \ ' + @LAST_CAT where ID = @ID;
SET @LAST_GOOD = 1;
end;

FETCH NEXT FROM cPrice INTO @ID, @SID, @NAME, @BRAND, @ARTIKUL, @DESCRIPTION, @NOTES, @PRICE, @WARRANTY, @PRESENT, @REST;
END
CLOSE cPrice;
DEALLOCATE cPrice;

delete from #TMP_PRICE where IsNumeric(CAST(SID as varchar(100))) = 0 or IsNull(CAST(SID as varchar(100)), '') = '';




Результат работы схемы импорта: