Table of Contents | ||||
---|---|---|---|---|
|
...
1. Добавить задание Sync.X
Задание с типом “Синхронизация Bitrix”
...
Поле полного остатка - код поля или 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 - постоянное значение, признак того, что это поле должно выгружаться при обновлении цен и остатков
Название поля - уникальное название поля, может быть любое, содержащее латинские буквы и цифры, например: field1, field2, prc123 и т.п. Главное чтобы оно во всех строках было разное.
SQL поля - здесь указывается код поля (вкладка Продукция) или SQL-запрос, с помощью которого отбирается информация, выгружаемая в это поле на сайт.
Тип значения - тип значения поля (N - число, S - строка или другое)
Тип поля - тип поля на сайте, в которое выгружается значение, возможные варианты:
PRM - свойство товара на сайте, все типы, кроме Списков)
ENM - свойство товара на сайте, тип Список
WHS - остаток склада
PRC - цена товара
PRD - поле из таблицы b_catalog_product
ELM - поле из таблицы b_iblock_element
Доп. параметр - здесь указывается дополнительный параметр, в зависимости от Тип поля
Если тип поля PRM или ENM, то указывается ИД свойства на сайте
...
Если тип поля WHS - указывается ИД склада на сайте
Если тип поля PRC - указывается ИД цены на сайте
Если тип поля PRD - указывается код поля из таблицы b_catalog_product
...
title | доступные поля |
---|
...
поле
...
Тип
...
Комментарий
...
ID
...
int(11)
...
QUANTITY
...
double
...
QUANTITY_TRACE
...
char(1) [N]
...
WEIGHT
...
double [0]
...
TIMESTAMP_X
...
timestamp [CURRENT_TIMESTAMP]
...
PRICE_TYPE
...
char(1) [S]
...
RECUR_SCHEME_LENGTH
...
int(11) NULL
...
RECUR_SCHEME_TYPE
...
char(1) [D]
...
TRIAL_PRICE_ID
...
int(11) NULL
...
WITHOUT_ORDER
...
char(1) [N]
...
SELECT_BEST_PRICE
...
char(1) [Y]
...
VAT_ID
...
int(11) NULL [0]
...
VAT_INCLUDED
...
char(1) NULL [Y]
...
CAN_BUY_ZERO
...
char(1) [N]
...
NEGATIVE_AMOUNT_TRACE
...
char(1) [D]
...
TMP_ID
...
varchar(40) NULL
...
PURCHASING_PRICE
...
decimal(18,2) NULL
...
PURCHASING_CURRENCY
...
char(3) NULL
...
BARCODE_MULTI
...
char(1) [N]
...
QUANTITY_RESERVED
...
double NULL [0]
...
SUBSCRIBE
...
char(1) NULL
...
WIDTH
...
double NULL
...
LENGTH
...
double NULL
...
HEIGHT
...
double NULL
...
MEASURE
...
int(11) NULL
...
TYPE
...
int(11) NULL
...
AVAILABLE
...
char(1) NULL
...
BUNDLE
...
char(1) NULL
Если тип поля ELM - указывается код поля из таблицы b_iblock_element
...
title | доступные поля |
---|
...
поле
...
Тип
...
Комментарий
...
ID
...
int(11) Автоматическое приращение
...
TIMESTAMP_X
...
datetime NULL
...
MODIFIED_BY
...
int(18) NULL
...
DATE_CREATE
...
datetime NULL
...
Сделать не активными товары, которых Нет в наличии - если установлена данная птичка, то товары, которые в статусе Нет в наличии, на сайте станут Не активными
...
Note |
---|
При этом товары, которые в любом из статусов наличия, будут активироваться на сайте. Т.е. вы не сможете через сайт выключить какой-нибудь товар. |
6. Sync.X вкладка “Поля”
Здесь указывается выгрузка дополнительных цен, складов и свойств товаров.
...
Каждое значение указывается с новой строки в виде:
PFLD|Название поля|SQL поля|Тип значения|Тип поля|Доп. параметр
парметры строки разделяются вертикальной чертой |
PFLD - постоянное значение, признак того, что это поле должно выгружаться при обновлении цен и остатков
Название поля - уникальное название поля, может быть любое, содержащее латинские буквы и цифры, например: field1, field2, prc123 и т.п. Главное чтобы оно во всех строках было разное.
SQL поля - здесь указывается код поля (вкладка Продукция) или SQL-запрос, с помощью которого отбирается информация, выгружаемая в это поле на сайт.
Тип значения - тип значения поля (N - число, S - строка или другое)
Тип поля - тип поля на сайте, в которое выгружается значение, возможные варианты:
PRM - свойство товара на сайте, все типы, кроме Списков)
ENM - свойство товара на сайте, тип Список
WHS - остаток склада
PRC - цена товара
PRD - поле из таблицы b_catalog_product
ELM - поле из таблицы b_iblock_element
Доп. параметр - здесь указывается дополнительный параметр, в зависимости от Тип поля
Если тип поля PRM или ENM, то указывается ИД свойства на сайте
...
Если тип поля WHS - указывается ИД склада на сайте
Если тип поля PRC - указывается ИД цены на сайте
Если тип поля PRD - указывается код поля из таблицы b_catalog_product
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Если тип поля ELM - указывается код поля из таблицы b_iblock_element
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Примеры полей
Code Block |
---|
PFLD|prc9|p.f_42ddr03sf|N|PRC|9 |
выгружается значение поля f_42ddr03sf
в цену на сайт с ИД = 9
...
Примеры полей
Code Block |
---|
PFLD|prc9|p.f_42ddr03sf|N|PRC|9 |
выгружается значение поля 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|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)| |
...
выгружается значение 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 |
Доступность товара
Code Block |
---|
PFLD|avl1|(case p.is_exists when 2 then 'N' else 'Y' end)|S|PRD|AVAILABLES|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
...