Описание модуля

Модуль предназначен для хранение произвольной информации для текущего элемента каталога в рамках склада. Т.е. в каждом товаре будет сохранена своя информация.

Например: Код производителя в каждом продукте или торговом предложении у поставщика может быть свой. Именно эту проблему решает наш модуль.

API

Основные функции для работы с расширенными свойствами

Какие таблицы используются?

Для хранения данных используются две таблицы.
hb_store_properties_column - Для хранения данных о столбцах.

Поля таблицы:
1. ID int - Ключ
2. NAME_COLUMN - Название столбца
3.
SORT - Сортировка
4.
CODE - Символьный код
5. TYPE_COLUMN - Тип колонки(string, date, enum, list)
6. VALUE_COLUMN - Значение по дефолту для типа string, date, enum
7. DEFAULT_VALUE_COLUMN - Значение по дефолту для значений типа список


hb_store_properties_value -
Для хранения данных в столбцах.

Поля таблицы:
1. ID int - Ключ
2. VALUE_STORE - Значение
3. PARENT_COLUMN - Тип колонки родителя
4. ELEMENT_ID - Ид товара
5. STORE_ID - Ид Склада

Как подключить модуль, чтобы работать с api?

Подключение происходит как к стандартным модулям CMS 1С Битрикс.
<? CModule::IncludeModule("hidebit.storeproperties"); ?>

Как получить данные по складам для товара по ID?


<? $arData = CHideBitStoreProperties::getByElementID($ELEMENT_ID); ?>

Входные данные: ELEMENT_ID* - ИД элемента информационного блока
Возвращает данные в виде массива:
.....[0] => Array( - Данные о первом складе
......................[STORE_INFO] => Array( - Поля склада

............................................[ID] => - Ид Склада
............................................[AMOUNT] => - Остаток на складе
......................)
......................[STORE_PROPERTIES] => Array( - Расширенные свойства склада
.............................................................[Символьный код свойства 1] => Array(
.............................................................[ID] => - Ид Свойства
.............................................................[NAME_COLUMN] => - Название свойства
.............................................................[SORT] => - Сортировка свойства
.............................................................[CODE] => - Символьный код свойства
.............................................................[TYPE_COLUMN] => - Тип свойства
.............................................................[DISPLAY_VALUE] => - Отображаемое значение, если нет отображается значение по-умолчанию заданное в настройках свойства.
.............................................................[VALUE] => - Значение свойства хранимое в Базе Данных
.............................................)
.............................................................[Символьный код свойства 2] => Array(....)
.............................................................[Символьный код свойства 3] => Array(....)
.............................................................[Символьный код свойства n] => Array(....)
......................)

.....)

.....[1] => Array(....) - Данные о 2-ом складе
.....[n] => Array(....) - Данные о n-складе

Как получить данные по складам для списка товаров?


<? $arData = CHideBitStoreProperties::getByElementList(array arElementsID); ?>

Входные данные: arElementsID* - массив ИД элементов информационного блока
Возвращает данные в виде массива:
.....[0] => Array( - Данные о первом складе
......................[STORE_INFO] => Array( - Поля склада

............................................[ID] => - Ид Склада
............................................[AMOUNT] => - Остаток на складе
......................)
......................[STORE_PROPERTIES] => Array( - Расширенные свойства склада
.............................................................[Символьный код свойства 1] => Array(
.............................................................[ID] => - Ид Свойства
.............................................................[NAME_COLUMN] => - Название свойства
.............................................................[SORT] => - Сортировка свойства
.............................................................[CODE] => - Символьный код свойства
.............................................................[TYPE_COLUMN] => - Тип свойства
.............................................................[DISPLAY_VALUE] => - Отображаемое значение, если нет отображается значение по-умолчанию заданное в настройках свойства.
.............................................................[VALUE] => - Значение свойства хранимое в Базе Данных
.............................................)
.............................................................[Символьный код свойства 2] => Array(....)
.............................................................[Символьный код свойства 3] => Array(....)
.............................................................[Символьный код свойства n] => Array(....)
......................)

.....)

.....[1] => Array(....) - Данные о 2-ом складе
.....[n] => Array(....) - Данные о n-складе

Как получить данные свойства по складу для товара?


<? $arData = CHideBitStoreProperties::getByElementColumnData($ELEMENT_ID, $storeID, $codeColumn); ?>

Входные данные:
.....ELEMENT_ID* - ИД элемента информационного блока
.....storeID* - ИД Склада
.....codeColumn* - Символьный код расширенного свойства

Возвращает данные в виде массива:
Array
(
.....[ID] => - Ид Свойства
.....[NAME_COLUMN] => - Название свойства
.....[SORT] => - Сортировка свойства
.....[CODE] => - Символьный код свойства
.....[TYPE_COLUMN] => - Тип свойства
.....[DISPLAY_VALUE] => - Отображаемое значение, если нет отображается значение по-умолчанию заданное в настройках свойства.
.....[VALUE] => - Значение свойства хранимое в Базе Данных
)

Как изменить данные свойства по складу для товара?


<? $arData = CHideBitStoreProperties::setByElementColumnData($ELEMENT_ID, $storeID, $codeColumn, $value); ?>

Входные данные:
.....ELEMENT_ID* - ИД элемента информационного блока
.....storeID* - ИД Склада
.....codeColumn* - Символьный код расширенного свойства
.....
value* - Значение свойства в формате строка,
...............для Типа Список указать число порядка списка. Например список у вас (1-2 дня, 3 дня, неделя и т.д). То ID будет таким 1-2 дня - 0, 3 для -1, неделя - 2, и т.д. на увеличение.
...............для Типа Да/Нет возможные значения Y или N

Пример 1
: Вы хотите обновить склад с ID 2 и свойство типа Список.
<? $arData = CHideBitStoreProperties::setByElementColumnData(101, 2, ' VALYUTA', '0'); ?>

Пример 2: Вы хотите обновить склад с ID 2 и свойство типа Да/Нет.
<? $arData = CHideBitStoreProperties::setByElementColumnData(101, 2, ' VOZMOZHNOST_VOZVRATA', 'Y'); ?>

Пример 3: Вы хотите обновить склад с ID 2 и свойство типа Строка или Дата.
<? $arData = CHideBitStoreProperties::setByElementColumnData(101, 2, ' TSENA_POSTAVSHCHIKA', '1000'); ?>
<? $arData = CHideBitStoreProperties::setByElementColumnData(101, 2, ' DATA_POSTUPLENIYA_NA_SKLAD', '12.06.2020'); ?>

В случае неудачи возвращает FALSE или же если успешно TRUE.




ПОДДЕРЖКА ОПУБЛИКОВАННЫХ РЕШЕНИЙ

Время реакции технической поддержки 1-2 часов.
Режим работы пн.-пт. 9.00-17.00

Ещё контакты

КОНТАКТЫ

Телефон: 8 (926) 983-03-03

Партнёрам: partner@hidebit.ru

По другим вопросам: info@hidebit.ru

Наш адрес: г. Москва, ул. Преображенская площадь, 8, эт. 12, блок А

НАШ ОПЫТ

Наш опыт работы с битрикс более 10 лет. Знаем практически все тонкости работы CMS 1C Bitrix. Давайте поработаем?!