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)

Указанный SQL запрос выгружает Остаток на складе, если его нет, то Остаток в наличии,

...

если его нет, то текст из Настройки 8 типа наличия. ex.val8 - здесь можно поменять на другую колонку из типа наличия.

...

Применять скидки - птичка устанавливается, если программа должна выгружать на сайт скидки.

...

Code Block
(p.do_exp_20 = 1 and (p.КодПоля = 0 or p.КодПоля is 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, то указывается ИД свойства на сайте

...

Если тип поля PRC - указывается ИД цены на сайте

Если тип поля PRD - указывается код поля из таблицы b_catalog_product

Expand
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

Expand
titleдоступные поля

поле

Тип

Комментарий

ID

int(11) Автоматическое приращение

TIMESTAMP_X

datetime NULL

MODIFIED_BY

int(18) NULL

DATE_CREATE

datetime NULL

CREATED_BY

int(18) NULL

IBLOCK_ID

int(11) [0]

IBLOCK_SECTION_ID

int(11) NULL

ACTIVE

char(1) [Y]

ACTIVE_FROM

datetime NULL

ACTIVE_TO

datetime NULL

SORT

int(11) [500]

NAME

varchar(255)

PREVIEW_PICTURE

int(18) NULL

PREVIEW_TEXT

text NULL

PREVIEW_TEXT_TYPE

varchar(4) [text]

DETAIL_PICTURE

int(18) NULL

DETAIL_TEXT

longtext NULL

DETAIL_TEXT_TYPE

varchar(4) [text]

SEARCHABLE_CONTENT

text NULL

WF_STATUS_ID

int(18) NULL [1]

WF_PARENT_ELEMENT_ID

int(11) NULL

WF_NEW

char(1) NULL

WF_LOCKED_BY

int(18) NULL

WF_DATE_LOCK

datetime NULL

WF_COMMENTS

text NULL

IN_SECTIONS

char(1) [N]

XML_ID

varchar(255) NULL

CODE

varchar(255) NULL

TAGS

varchar(255) NULL

TMP_ID

varchar(40) NULL

WF_LAST_HISTORY_ID

int(11) NULL

SHOW_COUNTER

int(18) NULL

SHOW_COUNTER_START

datetime NULL

Примеры полей

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

...

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

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

...

в запросе 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

...