Как да изчислявате персонализирани колони в продуктови feed-ове (без да променяте каталога)
Изградете изчислени колони в Dynamic feed на easySales — минимална цена, цена в друга валута, наличен сток — с характеристика, колона и Feed правило с формула. Каталогът остава недокоснат.
Рано или късно всеки търговец, който поддържа Dynamic feed, се сблъсква със същата стена: партньорът иска колона, която не съществува върху продуктите. Партньор за репрайсинг иска min_price като долен праг. B2B дистрибутор иска eur_price редом с локалната цена. 3PL партньор иска available_stock — физически наличен минус това, което вече е резервирано по поръчки. Колоните не са в каталога. Числата не си заслужават да бъдат съхранени на всеки продукт. Но партньорът няма да приеме файла без тях.
За това служат изчислените колони в Dynamic feed на easySales. Дефинирате колоната във feed-а, пишете кратка формула и easySales изчислява стойността при всяко регенериране. Каталогът ви остава чист. Нищо не се запазва върху самите продукти.
Защо търговците изграждат изчислени колони
„Изчислена колона" е колона, чиято стойност е калкулирана в момента на генериране на feed-а — никъде не е съхранена. Съществува за файла, който публикувате, и само за него.
Три модела се появяват отново и отново:
- Прагове и тавани. Партньор за репрайсинг иска най-ниската цена, която приемате. Не искате да съхранявате това като атрибут на продукта (променя се по канал, по кампания, по политика на марж). Формула го извежда от цена на придобиване + марж при всеки експорт.
- Многовалутни feed-ове. Партньор извън вашия пазар иска цени във своята валута. Съхраняване на паралелна колона за цена за всеки пазар не се скалира; конвертиране в движение — да.
- Изчислена наличност. Партньорът трябва да види това, което реално може да се поръча, не това, което е на рафта.
сток - резервиран_стоке на едно изваждане разстояние.
Общият признак: стойността е функция на други стойности на продукта, преизчислявана при всяко регенериране на feed-а. Съхраняването върху всеки продукт би означавало обновяване на всеки продукт всеки път, когато входните данни се променят — ненужно бреме за поддръжка.
Как работи изчислена колона в easySales
Три части, всяка по пет секунди работа:
- Характеристика — мястото, където живее стойността. Създавате я веднъж, давате ѝ име и я оставяте празна на всички продукти.
- Колона в Dynamic feed — окабеляването, което вкарва характеристиката в изходния файл.
- Feed правило с действие формула — изчислението, което попълва мястото при експорт.
Мястото остава празно в каталога. Правилото го попълва по време на експорта. Колоната рендерира попълнената стойност във файла. Три малки части, всяка с една ясно дефинирана задача. Добавяте правилото, регенерирате, стойността се появява. Премахвате правилото, регенерирате, стойността изчезва — без никога нито един продукт да се променя.
Стъпка 1: Създайте характеристиката
Отворете Каталог → Характеристики и създайте нова характеристика. Дайте ѝ ясно име — това, което партньорът очаква във файла, е добър избор.
Примери: Минимална цена, EUR цена, Наличен сток.
Не е нужно да попълвате стойности на нито един продукт. Цялата идея е тази характеристика да е цел за формула, не реален атрибут на продукта. Запазете и продължете.
Няколко съвета за именуване:
- Изберете имена, които ще разпознаете след шест месеца.
Минимална продажна цена (BG)е по-добре отmin_price_bg_v2. - Ако същата стойност ще се използва в няколко feed-а, използвайте една характеристика за всички. Изчислените стойности са в обхвата на feed (правилото живее на feed-а), така че същата характеристика може да съдържа различни изчислени стойности в различни feed-ове без сблъсък.
- Избягвайте характеристики, които вече имат продуктови данни. Ако
Напрежениее реално поле в каталога, не го преизползвайте като изчислен слот — изберете друго име. Изчислените стойности презаписват съществуващия pivot в паметта; бихте загубили реалните стойности по време на рендерирането на feed-а.
Стъпка 2: Добавете я в Dynamic feed
Отворете Dynamic feed. В построителя на колони добавете нов ред, изберете Характеристика от падащото меню за колона, после изберете току-що създадената характеристика от свързаното меню.
Колоната ще се рендерира в изходния файл. Стойността на клетката идва от това, което правилото изчислява за всеки продукт.
Ако партньорът очаква конкретно име за тази колона — min_price вместо Минимална цена, price_eur вместо EUR цена — използвайте полето Преименувай до колоната. Преименуваната стойност е тази, която се показва като CSV заглавие / JSON ключ / XML елемент; всичко останало в UI запазва това, което написахте за себе си. Преименуването работи на всяка колона в Dynamic feed, изчислена или не — същото поле винаги, когато партньорът очаква друго име от това, което easySales използва вътрешно.
Стъпка 3: Напишете Feed правилото, което изчислява стойността
Превключете към таба Правила за feed на същия feed. Добавете правило:
- Ако:
ВИНАГИ(или условие — вижте по-долу). - Тогава: изберете създадената характеристика като свойство, изберете формула като оператор, после напишете формулата.
Редакторът на формули има палитра с чипове за променливите, които можете да използвате:
${product.product_sale_price},${product.product_full_price}— обявените цени, без ДДС.${product.product_acquisition_price}— вашата цена на придобиване.${product.product_tax_rate}— ДДС ставка на продукта като цяло число (напр.19,20,21). Разделете на 100, за да го конвертирате в множител —1 + ${product.product_tax_rate} / 100връща1.20за 20% ставка, точно с което бихте умножили нетна цена за бруто.${product.product_characteristic:<име>}— четене на друга характеристика по име (case-sensitive). Полезно за верижност: пишете една характеристика с базова стойност, реферирате я от формулата на следваща характеристика.${product.product_meta_field:<ключ>}— четене на персонализирано мета-поле на продукт по ключ.${product.product_price_group:<id>}— четене на договорена цена от ценова група за този продукт.${other.currency_rate:FROM:TO}— жив обменен курс между два ISO кода на валута (напр.BGN:EUR,EUR:USD).round(<израз>, <десетични>)— закръгля резултата до фиксирана точност.
Оператори: +, -, *, /, скоби за групиране. Стандартна аритметика.
Някои колони не се излагат като променливи на формула умишлено — сток, резервиран_сток, тегло и различните не-ценови колони. За изчисляване на стойност от тях използвайте аритметичните оператори за действие на Feed правило (презапис, извади, умножи, прибави) вместо формула. Рецептата „Наличен сток" по-долу показва модела.
Запазете правилото. Следващото регенериране го изпълнява за всеки продукт, попълва характеристиката в паметта и рендерира стойността във файла. Каталогът на продуктите никога не се докосва — страницата с характеристики остава толкова празна, колкото я оставихте.
Ако искате формулата да се прилага само на определени продукти (една категория, продукти с наличност, продукти на конкретна марка), добавете условия от страната Ако: на основа на характеристика, на колона, на категория — каквото поддържа построителят на правила.
Реални рецепти
Минимална продажна цена за партньор за репрайсинг
Партньор за репрайсинг се нуждае от под — цената, под която не трябва да слизат. Не искате да съхранявате това на всеки продукт (променя се при промяна на разходи или политика на марж), затова го изчислявате.
- Име на характеристика:
Минимална цена - Преименуване на колона:
min_price - Формула:
round(${product.product_acquisition_price} * 1.15, 2)— придобиване + 15% марж.
Регулирайте множителя по канал, като пишете различни правила в различни feed-ове. Същата характеристика, различни формули, различни файлове. Каталогът не вижда нищо от това. Скрийншотът в Стъпка 3 по-горе показва точно това правило конфигурирано.
Цена в друга валута за трансграничен партньор
Партньорът ви е на друг пазар и иска цени в своята валута. easySales има вградена функция за обменен курс, така че не поддържате паралелен ценоразпис.
- Име на характеристика:
EUR цена - Преименуване на колона:
price_eur - Формула:
round(${product.product_sale_price} * ${other.currency_rate:BGN:EUR}, 2)— заменетеBGN:EURс FROM:TO двойката, която ви подхожда.
Обменните курсове се обновяват автоматично всеки ден — easySales ги тегли от централен източник, така че не поддържате паралелна таблица. Ако партньорът се нуждае от стабилен курс за договорен период (вместо живия), пишете на поддръжката и ще намерим правилната настройка.
Наличен сток (физически минус резервиран)
Партньорът вижда стока, който публикувате; ако това е числото от рафта и имате отворени поръчки, ще препродадете. Правилното число за публикуване е available-to-promise: физически сток минус резервиран по отворени поръчки.
сток и резервиран_сток не са изложени като променливи на формула, така че тази рецепта изобщо не използва оператора формула. Вместо това, верижате две аритметични действия върху същата характеристика — първото пише базата, второто я коригира.
- Име на характеристика:
Наличен сток - Преименуване на колона:
available_stock - Действие 1: цел =
Наличен сток, оператор = презапис с, източник = колонасток. (Задава характеристиката на стойността на стока на продукта.) - Действие 2 (добавено под първото, в същото правило): цел =
Наличен сток, оператор = извади, източник на стойност = поле, колона =резервиран_сток. (Изважда колоната резервиран сток от текущата стойност.)
Две действия, едно правило, отгоре надолу. Първото пише базата; второто я коригира. Можете да верижате трето действие (прибави / извади срещу литерално число), ако вашата математика на изпълнение изисква фиксиран буфер за безопасен сток.
Преименуване на всяка колона при експорт
Полето Преименувай се появява до всяка колона в построителя на Dynamic feed, не само на изчислените. Използвайте го винаги, когато партньорът очаква друго име от вътрешното на easySales — price вместо full_price, cost вместо sale_price, inventory вместо stock.
Две бележки:
- Преименуването се прилага в изхода на файла: CSV заглавие, JSON ключ и XML елемент. Останалата част от UI продължава да използва имена на easySales, така че вие и екипът ви да не се загубите.
- Имената на XML елементи имат по-строги правила от CSV или JSON. Ако преименуването ви съдържа интервали или пунктуация, easySales автоматично го санитира за XML —
Мин цена (BGN)ставаmin_tsena_bgn_в тагове<min_tsena_bgn_>. CSV заглавията и JSON ключовете запазват точно това, което сте написали.
Ако две колони се преименуват на същото име в експорта, построителят на feed блокира запазването и ви показва коя се сблъсква. Изберете уникално име и ще се запази.
Кога да НЕ използвате изчислена колона
- Реални продуктови атрибути. Ако данните принадлежат естествено на продукта (Цвят, Размер, Напрежение, EAN), използвайте обикновена характеристика и я съхранете. Изчислените колони са за стойности, които не принадлежат в каталога.
- Картиране на категории по канал. Ако партньорът се нуждае от Google Shopping категория ID, Skroutz код или каквото и да е картиране от вашата категория към тяхната, използвайте специфичния за канала построител — той е предварително валидиран и спестява работата по картиране. Dynamic feed е отвореният вариант за партньори, за които нямаме специален построител. Вижте Какво е продуктов feed? за въведение в feed-овете на канали.
- Статични фиксирани стойности. Ако всеки продукт получава същата стойност (
condition: new,availability: in_stock), използвайте действието задай на стойност на обикновена колона, вместо да синтезирате характеристика — с една движеща се част по-малко.
Ако не сте сигурни дали колона трябва да е изчислена, съхранена или фиксирана, поддръжката може да разгледа вашия конкретен случай. Повечето въпроси „изчислено-или-съхранено?" се решават за две минути след като скицирате случая на употреба.
Изградете колоните, които партньорите ви наистина искат
Отворете Feed-ове → Dynamic в easySales и изпратете готов за партньор файл с изчислени колони за минути. Нов сте тук? Опитайте easySales безплатно за 14 дни, без кредитна карта.