Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Table of Contents
minLevel1
maxLevel7

Note

Обязательно сделайте бекап сайта перед запуском каких-то выгрузок новым способом, или убедитесь у вашего хостера, что есть бекап сайта и на какую дату.

1. Добавить задание Sync.X

Что такое Sync.X?

Задание с типом “Синхронизация Bitrix”

...

2. Добавить действие в Quad.Magic

Что такое Quad.Magic?

Действие должно запускать задание Sync.X, которое добавили в предыдущем пункте. Действие должно срабатывать после всех действий, которые программа выполняет для обновления цен и остатков. Обычно эти действия настроены в группе Quad.Magic полного обновления + дублируются в отдельной группе, которая выполняется для обновления цен (в этом случае в группу обновления цен нужно будет добавить еще вызов действия, созданного в группе полного обновления).

...

Указываете настройки подключения к API, ключ и папки, которые настраивали по этой инструкции.

...

Указать ИД шаблона экспорта для выгрузки цен и остатков. Этот шаблон может быть вообще без настроек колонок (добавить новый) или же какой-то старый шаблон, через который выгружались цены и остатки.

...

Поле полного остатка - код поля или SQL-запрос, с помощью которого на сайт передается числовой остаток товара.

Пример 1 запроса:

Code Block
(case p.is_exists when 2 then 0 else 100 end)

Передается 0, если товара нет в наличии или 100, при другом статусе. 100 можно поменять на любое число. Этот остаток записывается сюда:

...

Пример 2 запроса:

Выгрузка числового остатка, а если его нет, то по типу наличия:

Code Block
(select case when coalesce(ps.stock_4_summ, ps.stock_1_summ, 0) > 0 then coalesce(ps.stock_4_summ, ps.stock_1_summ)::varchar else (select ex.val8 from c_exists ex where ex.id = p.is_exists) end from product_stat ps where ps.prod_id = p.id)

...

Code Block
(p.do_exp_20 = 1 and (p.КодПоля = 0 or p.КодПоля is null))

6. Sync.X вкладка “Поля”

Здесь указывается выгрузка дополнительных цен, складов и свойств товаров.

...

Каждое значение указывается с новой строки в виде:

PFLD|Название поля|SQL поля|Тип значения|Тип поля|Доп. параметр

парметры строки разделяются вертикальной чертой |

PFLD - постоянное значение, признак Сделать не активными товары, которых Нет в наличии - если установлена данная птичка, то товары, которые в статусе Нет в наличии, на сайте станут Не активными

...

Note

При этом товары, которые в любом из статусов наличия, будут активироваться на сайте. Т.е. вы не сможете через сайт выключить какой-нибудь товар.

6. Sync.X вкладка “Поля”

Здесь указывается выгрузка дополнительных цен, складов и свойств товаров.

...

Каждое значение указывается с новой строки в виде:

PFLD|Название поля|SQL поля|Тип значения|Тип поля|Доп. параметр

парметры строки разделяются вертикальной чертой |

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

Название поля - уникальное название поля, может быть любое, содержащее латинские буквы и цифры, например: field1, field2, prc123 и т.п. Главное чтобы оно во всех строках было разное.

SQL поля - здесь указывается код поля (вкладка Продукция) или SQL-запрос, с помощью которого отбирается информация, выгружаемая в это поле на сайт.

Тип значения - тип значения поля (N - число, S - строка или другое)

Тип поля - тип поля на сайте, в которое выгружается значение, возможные варианты:

...

ELM - поле из таблицы b_iblock_element

Доп. параметр - здесь указывается дополнительный параметр, в зависимости от Тип поля

Если тип поля PRM или ENM, то указывается ИД свойства на сайте

...

выгружается значение поля f_42ddr03sf в цену на сайт с ИД = 9

Выгрузка статуса наличия товара

Code Block
PFLD|stk1|(case p.is_exists when 2 then 0 else 147 end)|N|

...

ENM|345

выгружается значение 147 в случае, если товар в наличии, или 0. выгружается в свойство с ИД = 345

...

Если в списке наличия несколько разных значений, то их можно задать в программе здесь:

...

Т.е. например в колонке “Пл. 7” указываются ИД значений свойства на сайте, которые соответствуют типу наличия в программе. В этом случае поле нужно указать в таком виде:

Code Block
PFLD|stk1|(select ex.val7 from c_exists ex where ex.id = p.is_exists)|N|PRM|345

где val7 - это код поля “Пл. 7” из типов наличия. Может быть val1, val2, …, val10

Выгрузка даты доставки от региона:

Code Block
PFLD|data1|(select TO_CHAR(CURRENT_DATE + interval '1' day * deliv_values.days_from, 'dd.mm.yyyy') from deliv_values where deliv_values.pd_id = p.pd_id and region_id = 45)|S|PRM|4896

в запросе 45 - ид региона, 4896 - ид свойства, в которое выгружается дата

Активность элемента

Code Block
PFLD|act1|(case p.is_exists when 2 then 'N' else 'Y' end)|S|ELM|ACTIVE

Доступность товара

...

здесь:

...

Т.е. например в колонке “Пл. 7” указываются ИД значений свойства на сайте, которые соответствуют типу наличия в программе. В этом случае поле нужно указать в таком виде:

Code Block
PFLD|stk1|(select ex.val7 from c_exists ex where ex.id = p.is_exists)|N|ENM|345

где val7 - это код поля “Пл. 7” из типов наличия. Может быть val1, val2, …, val10

Выгрузка даты доставки от региона:

Code Block
PFLD|data1|(select TO_CHAR(CURRENT_DATE + interval '1' day * deliv_values.days_from, 'dd.mm.yyyy') from deliv_values where deliv_values.pd_id = p.pd_id and region_id = 45)|S|PRM|4896

в запросе 45 - ид региона, 4896 - ид свойства, в которое выгружается дата

Активность элемента

Code Block
PFLD|act1|(case p.is_exists when 2 then 'N' else 'Y' end)|S|ELM|ACTIVE

Доступность товара

Code Block
PFLD|avl1|(case p.is_exists when 2 then 'N' else 'Y' end)|S|PRD|AVAILABLE

Остатки из поля на склад

Code Block
PFLD|whs3|p.f_42n7ksgt9|N|WHS|3 

Выгружается число из поля p.f_42n7ksgt9 в склад на сайте с ИД = 3

запрос, которым можно скопировать остатки из какого прайса (загруженные в виде числового остатка) в поле в Продукции

Code Block
update product set f_42n7kssrg = (select sum(coalesce(stock, 0)) from
price_detail pd where pd.product_id = product.id
and pd.price_id = 596 and pd.is_exists <> 2);     
update product set f_42n7kssrg = 0 where f_42n7kssrg is null;  

f_42n7kssrg - код поля, тип Число, в который копируется остаток

596 - ИД прайса, из которого копируется

Выгрузка единиц измерения

Code Block
PFLD|unit1|p.f_43gom416r|S|PRD|MEASURE

в поле f_43gom416r должно быть ИД единицы измерения на сайте

...

Если у поля f_43gom416r тип Справочник, то настройка будет выглядеть так

Code Block
PFLD|unit1|(case p.f_43gom416r when 24 then 1 when 25 then 2 end)|S|PRD|MEASURE

в SQL нужно указать соответствие между ИД справочника в программе и ИД на сайте при помощи такого текста для каждого значения

when 24 then 1

...