Настройка фильтров парсинга цен поставщика/конкурента

Настройка фильтра парсинга цен поставщика/конкурента производится на вкладке "Настройки фильтра при парсинге" соотвествующих настроек поставщика или конкурента. Доступны два типа фильтров:

  • Фильтр по умолчанию
  • Фильтр по шаблону

Настройка фильра по умолчанию:

  • Выберите тип фильтра "Фильтр по умолчанию"
  • Задайте диапазоны цен, МРЦ, количества в наличии и сроков доставки
  • Нажмите "Сохранить"

Настройка фильтра по шаблону:

  • Выберите тип фильтра "Фильтр по шаблону"
  • Задайте шаблон
  • Нажмите "Сохранить"

Для написания шаблона мы используем язык 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,
	MinRetailPrice: offer.MinRetailPrice,
	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.