Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7

...

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

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

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

...

Указываете настройки подключения к 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

...