Настройка фильтров парсинга цен поставщика/конкурента
Фильтр отсеивает строки прайса ещё до сопоставления: то, что он отбросил, в каталог не попадёт.
Настраивается он так: шестерёнка «Настройки» каталога → вкладка «Поставщики» или «Конкуренты» → карандаш в строке продавца → вкладка «Настройки фильтра при парсинге». Вкладка появляется только у сохранённого продавца. Рядом вкладка «Стоп слова» — там отсеиваются строки по словам в названии.
Доступны два типа фильтров, и работает только один из них: при переключении значения второго очищаются.
- Фильтр по умолчанию
- Фильтр по шаблону
Настройка фильтра по умолчанию:
- Выберите тип фильтра "Фильтр по умолчанию"
- Задайте пары «От» / «До» для полей «Цена», «МРЦ», «В наличии» и «Время доставки (0 - на складе)»
- Нажмите "Сохранить"
Настройка фильтра по шаблону:
- Выберите тип фильтра "Фильтр по шаблону"
- Задайте шаблон
- Нажмите "Сохранить"
Для написания шаблона мы используем язык Scriban. Scriban - это быстрый, мощный, безопасный и легкий язык сценариев. Подробнее с языком можно ознакимиться здесь.
Шаблон на вход должен получать объект offer(описание смотри ниже), а возращать один из трех типов данных:
- true
- false
- модифицированный объект offer (можно оставлять только изменяемые поля, остальные сохранят свои значения)
Пример модифицированного объекта offer
{
Category: offer.Category,
Vendor: offer.Vendor,
Name: offer.Name,
Ean: offer.Ean,
Article: offer.Article,
SellerCode:offer.SellerCode,
Price: offer.Price,
InitialPrice: offer.InitialPrice,
MinRetailPrice: offer.MinRetailPrice,
MinRetailPriceCurrency: offer.MinRetailPriceCurrency,
MaxRetailPrice: offer.MaxRetailPrice,
MaxRetailPriceCurrency: offer.MaxRetailPriceCurrency,
InStockAmount: offer.InStockAmount,
DeliveryTime: offer.DeliveryTime
}
Пример шаблона
if offer.Price > 10 && offer.InStockAmount> 40
ret {
Category: "Новая Категория",
Vendor: "Новый бренд"
}
else
ret false
end
В результате выполнения фильтра дальше в сопоставление пройдут только предложения с входной ценой больше 10 и с количеством в наличии больше 40. Кроме того у всех товаров, удовлетворяющих первому условию категория будет заменена на "Новая категория", а бренд "Новый бренд". Все остальные свойства (Name, Article, SellerCode, Price, MinRetailPRice, InStockAmount, DeliveryTime) будут взяты из исходных данных.
Помимо данных, которые есть в модели, можно вернуть значение специального свойства "SellerId". Это требуется, если нужно разбить общий файл на несколько поставщиков в зависимости от некоторого условия. Пример:
if offer.OriginalRecord.Param["Гарантия"] == "12"
ret {SellerId: 4}
end
ret true
В результате всем товарам с гарантией в 12 месяцев будет назначен поставщик с Id=4.