Skip to main content

Механика избранного в персональных предложениях

Создание ИБ спецпредложений


Админка

  1. Создается ИБ для задачи (Избранное, Персональные предложения и тд.)

Для создания переходим в админку и прожимаем переход в инфоблоки нужного тип, как это показано на скриншоте - скрин.

image.png

От этого зависит где будет создан новый ИБ.
Далее прожимаем создание нового инфоблока - скрин

image.png

На первой вкладке Инфоблок (скрин) настраиваем:

image.png

  1. символьный код для ИБ

  2. привязку к сайтам, обязательно отмечаем s1

  3. название ИБ на русском

  4. отключаем индексации разделов и элементов для поиска

Переходим на вкладку Свойства (скрин): 

image.png

  1. указываем Название необходимого свойства

  2. указываем Код

  3. по необходимости проставляем обязательность заполнения поля

  1. Создается раздел для привязки в разрезе пользователей, групп пользователей, других признаков, по которым планируем разбивать группы товаров (скрин).

    image.png


    Для этого переходим в новый ИБ и переходим к созданию раздела (скрин)

    image.png

    и указываем там в наименовании значение нашего признака, по которому будем группировать предложения. Например, id пользователя (скрин).

    image.png

  2. Загружаем позиции с привязкой к нужному разделу.
    Загрузка возможна 3 способами: 

  1. Ручное создание элементов (скрин)

    image.png

В самом создании указываем Наименование элемента и созданные ранее для ИБ свойства (скрин),

image.png

остальные данные формируются автоматически

  1. Загрузка файлом 

Шаг 1 (скрин)

image.png

  • Открываем Импорт CSV (скрин)

    image.png

  • Выбираем файл из существующих или загружаем новый для импорта

  • Указываем тип ИБ и сам ИБ, который создали ранее

Шаг 2 (скрин)

image.png

  • Настройки формата оставляем по умолчанию

Шаг 3 (скрин)

image.png

  • Указываем сопоставление полей
    Привязка раздела указывается через сопоставление поля с признаком привязки в файле и полем в базе Группа уровня 1: Название группы

  • Указываем время выполнения шага от 15 до 30

Нажимаем Загрузить данные

  1. Загрузка через API с фронта или из 1с
    Запрос для получения раздела пользователя:

{{host}}?f=IblockSection_GetList

{

    "arg": {

        "arFilter": {

            "IBLOCK_ID": 225, - значение берем из настроек ИБ, после завершения пункта 1 инструкции

image.png

            "NAME": "1223" - значение берем из параметра для группировки, который выбрали. Например, ид пользователя

        },

        "Select": []

    }

}


Запрос для создания элемента:

{{host}}?f=IblockElement_Add
{

    "arg": {

        "element": {

            "IBLOCK_ID": "225", - значение берем из настроек ИБ, после завершения пункта 1 инструкции

            "IBLOCK_SECTION_ID": "17676", - получили в предыдущем запросе

image.png

            "NAME": "Тормозные колодки",

            "PROPERTY_VALUES": [

                {

                    "CODE": "ARTICLE",

                    "VALUE": "gdb1655"

                },

                {

                    "CODE": "BRAND_TITLE",

                    "VALUE": "trw"

                }

            ]

        }

    }

}

Фронт 

  1. При авторизации пользователя на сайт получаем в данных пользователя признак, по которому далее будет определять группу товаров, которую необходимо отобразить пользователю.
    Например, ид пользователя для персональных предложений скрин

  2. Если блок предложений отображается всегда, то фронт сразу отрисовывает пункт меню без предварительных проверок

  3. Если блок будет отображаться только для пользователей, для которых настроена группа товаров, то предварительно фронт делает запрос к новому ИБ с фильтром по текущему пользователю.

  4. После перехода в новый раздел фронт получает список товаров из группы

{{host}}?f=IblockElement_GetList

{

    "arg": {

        "arOrder": {},

        "arFilter": {

            "IBLOCK_ID": 225, - значение берем из настроек ИБ, после завершения пункта 1 инструкции

            "IBLOCK_SECTION_ID": 17676 - получили в запросе IblockSection_GetList

        },

        "arNavStartParams": {

            "iNumPage": 1, - номер получаемой страницы

            "nPageSize": 5 - количество элементов на странице

        },

        "include_properties": "yes"

    }

}

  1. Отправляет ее на проценку в методе NizhpartsGroup_Search

{{host}}?f=NizhpartsGroupSearch_GroupSearch

{

    "arg": {

        "ORIGIN_USER_ID": "1223",

        "USER_ID": "1223",

        "PARAMS": {

            "SEARCH_TYPE": "TEXT",

            "TEXT": {

                "DATA": "gdb1550,TRW,1,1;oc100,KNECHT,1,1;gdb1655,TRW,1,1"

            },

            "SETTINGS": {

                "parts_sort_field": "price",

                "first_line": 1,

                "columns": {

                    "code_supplier": 5,

                    "article": 1,

                    "brand_title": 2,

                    "quantity": 3,

                    "price": 4

                },

                "MARKUP": 0,

                "PARTS_SORT_FIELD": "delivery",

                "price_deviation": 5

            }

        }

    }

}

  1. Для получения информации по аналогам используем метод

{{host}}?f=NizhpartsGroupSearch_GetAnalogs

{

    "arg": {

        "ORIGIN_USER_ID": "1223",

        "USER_ID": "1223",

        "PARAMS": {

            "article": "gdb1550",

            "brand_title": "trw",

            "code_supplier": ""

        },

        "HASH": "18049c2a2684ddc6cdf52d5d1f7f4bfa" - берем из ответа к запросу на получение цен

    }

}

  1. Для построения фильтрации по группе товаров пользователя 

{{host}}?f=NizhpartsIblockElement_GetPropertyList

{

    "arg": {

        "arFilter": {

            "IBLOCK_ID": 225, - значение берем из настроек ИБ, после завершения пункта 1 инструкции

            "SECTION_ID": 17676 - получили в запросе IblockSection_GetList

        },

        "arProperties": [

            "ARTICLE",

            "BRAND_TITLE"

        ],

        "arFields": [

        ]

    }

}