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


http://inetshop.in.ua/index.php?p=showtopic&toid=38&fid=18&area=1
29.02.2008 10:57

DEN


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

Количество сообщений   3
Зарегистрирован:   12-10-2007, 15:54:44
а возможно сделать экспорт не всего каталога, а отдельной категории товара??

29.02.2008 12:28

Admin


Администратор


Количество сообщений   135
Зарегистрирован:   23-08-2007, 09:03:21
Экспорт с параметрами
Да, очень даже возможно. Параметры экспорта (фильтры, условия и.т.п.) могут быть настроены самими пользователями в окне администрирования системы. Если мделать справочник групп и подключить его как параметр - то естейственно можно экспортировать определённые группы. У вас именно так и реализовано (настроено). Т.е. если группу не указывать - выгружаются все товары, а если указать - то определённая группа.

04.03.2008 11:28

Admin


Администратор


Количество сообщений   135
Зарегистрирован:   23-08-2007, 09:03:21
Для тех кто часто обновляет цены в магазине, даю сокращённый SQL-запрос экспорта, который выгружает код(артикул), порядок сортировки, наименование и цену

select
case
when e.GR_ID is null then e.SORT
when not (SELECT GR_OUT_CODE FROM TBL_GROUPS gr where gr.GR_ID = e.GR_ID) is null then (SELECT GR_OUT_CODE FROM TBL_GROUPS gr where gr.GR_ID = e.GR_ID)
else e.SORT
end as ["Порядок сортировки"],
e.G_ID as ["Внутренний код (артикул)"],
'"' +
e.G_NAME +

case
when not e.GR_ID is null or ((select g.G_PRESENT from TBL_GOODS g where g.G_ID = e.G_ID)>0) then
''
else ' (уточняйте наличие) '
end
+ '"'
as ["Наименование"],
case
when not e.G_ID is null then
case
when ((select g.G_PRESENT from TBL_GOODS g where g.G_ID = e.G_ID)>0) then
LTRIM(Str(IsNull(e.G_PRICE, 0), 10, 2))
else '0'
end
else '' end as ["Цена"],
case
when (((select g.G_PRESENT from TBL_GOODS g where g.G_ID = e.G_ID))>0) and (IsNull(e.G_PRICE, 0) > 0) then 99
when (e.GR_ID is null) then 0
else null
end as ["На складе"]
from dbo.f_ShopScriptExport3(:vGRID) e
order by RecID


P.S> Данный запрос выгружает товары в формате CMS Shop-Script.
Отредактировано Svyat: 04.03.2008, 18:56:47

27.03.2008 00:16

Admin


Администратор


Количество сообщений   135
Зарегистрирован:   23-08-2007, 09:03:21
Экспорт в Shop-Script
В присоединённом файле ещё один запрос экспорта который выгружает все товары с сортировкой по наименованию без указания дерева групп. Он предназначен для обновления товаров сайтов дерево категорий товаров которых не совпадает с деревом в базе данных iNETsHOP.

Перечень полей:
Порядок сортировки
Внутренний код (артикул)
Наименование
Цена
На складе
Фотографии
Прикрепленные файлы
SS_EXPORT_WITHOUT_GROUPS.sql   ( 57 Просмотров | 2 KB )

12.11.2013 18:41

prodact


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


Количество сообщений   115
Зарегистрирован:   15-06-2010, 14:24:19
Помогите изменить запрос таким образом, что бы категория - "1" со всеми вложенными подкатегориями и товарами (см. прикрепленный рисунок) не выгружалась, использую первый вариант запроса, а также изменить выгружаемую цену на гривны, используемые со статьи: http://inetshop.in.ua/index.php?p=showtopic&toid=190&fid=2&area=1.



p.s. Версия клиента 4.0.4.188, версия базы 045.
Отредактировано prodact: 12.11.2013, 18:45:16

Прикрепленные файлы
категории.jpg   ( 14 Просмотров | 241.3 KB )

12.11.2013 20:22

support


Support


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

Для настройки переменных запроса экспорта, откройте окно "Администрирование" программы, перейдите на закладку "Экспорт", выберите требйемый SQL-запрос экспорта и определите его переменные - правая кнопка вверху.

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

P.S.
Наборы данных для типа переменных "справочник" настраиваются в окне "Администрирование" на закладке "Справочники". Для формирования нужного набора данных достаточно указать название справочника, SQL-запрос выборки, поле идентификатор и поле для отображения пользователю (поля могут совпадать)


13.11.2013 14:46

prodact


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


Количество сообщений   115
Зарегистрирован:   15-06-2010, 14:24:19
Сделайте пожалуйста screen shot экранов, где и что поменять, некоторого рода мануал. Потому как пробовал изменить все равно выгружается неактивная группа.

13.11.2013 18:03

support


Support


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

В вашем конкретном случае - вам нужно реализовать возможность выбора группы для экспорта в магазин. Для этого создаем справочник "Группы" и вносим его SQL-запрос выборки значений как

select GR_ID, GR_FULL_NAME from TBL_GROUPS order by GR_FULL_NAME

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



После этого перезаходим в программу, и снова открываем окно "Администрирование", переходим на закладку "Экспорт" и выбираем требуемый SQL-запрос формирования данных для экспорта:



Вверху данной закладки есть кнопка "Обновить параметры запроса", хажатие на которую добавляет в таблицу параметров все переменные которые перечислены в выбранном SQL-запросе



После этих манипуляций можно приступить к настройке самих переменных, в вашем случае группы товара:






Теперь, после настройке выбора группы при экспорте, у вас данный экспорт должен выглядеть приблизительно так:




13.11.2013 19:02

prodact


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


Количество сообщений   115
Зарегистрирован:   15-06-2010, 14:24:19
Спасибо за развернутый ответ, но конечный слайд выглядит не так как у вас. (
Делал все как вы описали, но результат неудовлетворительный.
Прикрепленные файлы
экспорт.jpg   ( 16 Просмотров | 72.3 KB )

13.11.2013 19:25

support


Support


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

13.11.2013 19:46

prodact


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


Количество сообщений   115
Зарегистрирован:   15-06-2010, 14:24:19
Хорошо, настройки экспорта и справочника прилагаются.





Прикрепленные файлы
справочник.jpg   ( 10 Просмотров | 108.1 KB )
экспорт2.jpg   ( 9 Просмотров | 180.1 KB )

13.11.2013 20:17

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
На ваших скриншотах видно, что при настройке пользовательского справочника "Группы" вы указали название группы товаров G_NAME, а не полное название группы G_FULL_NAME, а именно оно фигурирует в данном SQL-запросе выборки данных.

14.11.2013 11:42

prodact


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


Количество сообщений   115
Зарегистрирован:   15-06-2010, 14:24:19
Вы наверное перепутали, должно быть не G_FULL_NAME а GR_FULL_NAME, тогда все работает. Спасибо! Но теперь задача, как же прописать системе что бы она не выгружала всего одну категорию?

14.11.2013 16:16

Admin


Администратор


Количество сообщений   135
Зарегистрирован:   23-08-2007, 09:03:21
Структура дерева групп именно для этого экспорта формируется в ф-ции dbo.f_ShopScriptExport3. Т.к. эта ф-ция обычно переделывается персонально для каждого клиента, то у вас она может отличаться от стандартной. Приведите ее текст, и мы скажем, что в ней изменить под ваши нужды.

14.11.2013 22:52

prodact


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


Количество сообщений   115
Зарегистрирован:   15-06-2010, 14:24:19
Содержимое функции такое:
Код
CREATE FUNCTION [dbo].[f_ShopScriptExport3] (
@p_iGRID int = null
)
RETURNS @tRetTable table (
RecID int,
SORT int, --Порядок сортировки
G_ID int, --Внутренний код (артикул)
G_NAME varchar(250), --Наименование
G_DESC varchar(8000), --Описание
G_SHORT_DESC varchar(8000), --Краткое описание
G_PRICE money, --Цена
G_OLD_PRICE money, --Старая цена
G_META1 varchar(8000), --Тэг META keywords
G_META2 varchar(8000), --Тэг META description
G_PHOTO1 varchar(200), --Фотография
G_PHOTO2 varchar(200), --Фотография
G_PHOTO3 varchar(200), --Фотография
G_COLOUR varchar(200), --Цвет
G_ADD_DESC varchar(8000), --Дополнительная информация (2)
G_VENDOR varchar(8000), --Производитель
GR_ID int
)
AS
BEGIN
DECLARE @l_iRecID int, @l_iGRID int, @l_sGRNAME varchar(200), @l_iSort int;
SET @l_iSort = 1;
SET @l_iRecID = 1;
DECLARE cExportGroups CURSOR LOCAL FORWARD_ONLY LOCAL FOR
SELECT gr.GR_ID, gr.GR_NAME from TBL_GROUPS gr
WHERE gr.GR_PARENT_ID is null
AND
(
@p_iGRID is null
OR
(
not @p_iGRID is null
and gr.GR_ID = @p_iGRID
)
)
AND GR_ID<>209
FOR READ ONLY;

OPEN cExportGroups;
FETCH NEXT FROM cExportGroups INTO @l_iGRID, @l_sGRNAME;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
-- INSERT INTO @tRetTable (RecID, SORT, GR_ID, G_NAME)
-- VALUES (@l_iRecID, @l_iSort, @l_iGRID, @l_sGRNAME);

-- IF (SELECT COUNT (*) FROM TBL_GROUPS gr WHERE gr.GR_PARENT_ID = @l_iGRID) >0
-- BEGIN

INSERT INTO @tRetTable
SELECT *
FROM dbo.f_ShopScriptExportGoods3(@l_iRecID, @l_iGRID, 1);
SELECT @l_iRecID = MAX(RecID) FROM @tRetTable;

-- END

SET @l_iSort = @l_iSort + 1;
SET @l_iRecID = @l_iRecID + 1;

FETCH NEXT FROM cExportGroups INTO @l_iGRID, @l_sGRNAME;
END

CLOSE cExportGroups;
DEALLOCATE cExportGroups;

RETURN;
END