Hogyan számíts egyedi oszlopokat termék-feedekben (a katalógus érintése nélkül)

Építs számított oszlopokat az easySales Dynamic feedjében — minimumár, második pénznemben megadott ár, elérhető készlet — egy jellemző, egy oszlop és egy Feed szabály képlettel. A katalógus érintetlen marad.

Előbb-utóbb minden Dynamic feedet üzemeltető kereskedő ugyanabba a falba ütközik: a partner olyan oszlopot kér, ami nincs a termékeken. Egy árazási partner min_price küszöböt akar. Egy B2B disztribútor eur_price-ot akar a helyi ár mellett. Egy 3PL available_stock oszlopot akar — fizikai készlet mínusz a már lefoglalt mennyiség. Az oszlopok nincsenek a katalógusban. Az adatokat nem érdemes minden terméken tárolni. De a partner enélkül nem fogadja el a fájlt.

Erre szolgálnak a számított oszlopok az easySales Dynamic feedjében. Definiálod az oszlopot a feedben, írsz egy rövid képletet, és az easySales minden újragenerálásnál kiszámítja az értéket. A katalógus tiszta marad. Semmi nem kerül mentésre magukon a termékeken.

Miért építenek a kereskedők számított oszlopokat

A „számított oszlop" olyan oszlop, amelynek értéke a feed generálásakor számolódik ki — sehol nincs eltárolva. Csak a publikált fájlban létezik, semmi máshol.

Három minta jön elő újra meg újra:

  • Padlók és plafonok. Egy árazási partner a legalacsonyabb árat akarja, amit elfogadsz. Nem akarod ezt termékadatként tárolni (csatornánként, kampányonként, marzspolitikánként változik). Egy képlet beszerzési árból + marzsból származtatja minden exportkor.
  • Többpénznemes feedek. A piacodon kívüli partner a saját pénznemében akar árat. Pénznemenként párhuzamos árat tárolni nem skálázódik; menet közben konvertálni igen.
  • Számított elérhetőség. A partnernek azt kell látnia, ami valóban rendelhető, nem ami a polcon van. készlet - foglalt_készlet egy oszlopkivonásnyira van.

A közös tulajdonság: az érték más termékértékek függvénye, és a feed minden újragenerálásakor újraszámolódik. Minden terméken tárolni azt jelentené, hogy a bemenetek minden változásakor minden terméket frissíteni kell — felesleges karbantartási teher.

Hogyan működik egy számított oszlop az easySalesben

Három darab, egyenként öt másodperc munka:

  1. Egy jellemző — az érték helye. Egyszer hozod létre, adsz neki nevet, és üresen hagyod minden terméken.
  2. Egy Dynamic feed oszlop — a vezeték, ami a jellemzőt a kimeneti fájlba viszi.
  3. Egy Feed szabály képlet művelettel — a számítás, ami az exportkor kitölti a helyet.
Diagram a számított feed-oszlop három darabjáról az easySalesben: egy jellemző mint hely, egy Dynamic feed oszlop mint vezeték a kimenetbe, és egy Feed szabály képlet, ami renderelési időben tölti ki a helyet.
Három darab, egy-egy jól meghatározott feladat: jellemző mint hely, Dynamic feed oszlop mint vezeték, Feed szabály képlet mint érték.

A hely üres marad a katalógusban. A szabály kitölti az export közben. Az oszlop megjeleníti a kitöltött értéket a fájlban. Három kis darab, egy-egy jól meghatározott munka. Hozzáadod a szabályt, újragenerálsz, az érték megjelenik. Eltávolítod a szabályt, újragenerálsz, az érték eltűnik — anélkül, hogy bármely termék valaha is változott volna.

1. lépés: Hozd létre a jellemzőt

Nyisd meg a Katalógus → Jellemzők menüt és hozz létre egy új jellemzőt. Adj neki egyértelmű nevet — az, amit a partner vár a fájlban, jó választás.

Példák: Minimumár, EUR ár, Elérhető készlet.

Nem kell értéket beírnod egyik termékre sem. A lényeg, hogy ez a jellemző egy célhely a képletnek, nem valódi termékattribútum. Mentsd el és lépj tovább.

Képernyőkép a Katalógus → Jellemzők oldalról az easySalesben, frissen létrehozott Minimumár nevű jellemzővel, termékértékek nélkül.
Hozd létre a jellemzőt, adj neki egyértelmű nevet, hagyd üresen. A képlet kitölti.

Pár névadási tipp:

  • Olyan neveket válassz, amiket fél év múlva is felismersz. Minimum eladási ár (HU) jobb, mint a min_price_hu_v2.
  • Ha ugyanazt az értéket több feedben használod, használj egyetlen jellemzőt mindenhol. A számított értékek feed-szintűek (a szabály a feeden él), így ugyanaz a jellemző különböző feedekben különböző számított értékeket tárolhat ütközés nélkül.
  • Kerüld azokat a jellemzőket, amelyeken már van termékadat. Ha a Feszültség valódi katalógusmező, ne használd számított résként — válassz másik nevet. A számított értékek a memóriában felülírják a meglévő pivot-ot; a feed renderelés idejére elveszítenéd a valódi értékeket.

2. lépés: Add hozzá a Dynamic feedhez

Nyisd meg a Dynamic feedet. Az oszlopkészítőben adj hozzá egy új sort, válaszd ki a Jellemző opciót az oszlopok közül, majd válaszd ki a most létrehozott jellemzőt a láncolt választóból.

Az oszlop megjelenik a kimeneti fájlban. A cella értéke abból jön, amit a szabály számol minden termékre.

Képernyőkép a Dynamic feed oszlopkészítőjéről az easySalesben, Jellemző-típusú oszloppal Minimumárra, az Átnevezés mező min_price-ra állítva.
Add hozzá a jellemzőt oszlopként, majd használd az Átnevezés mezőt, hogy illeszkedjen ahhoz, amit a partner vár.

Ha a partner adott nevet vár az oszlophoz — min_price a Minimumár helyett, price_eur az EUR ár helyett — használd az Átnevezés mezőt az oszlop mellett. Az átnevezett érték az, ami CSV-fejlécként / JSON-kulcsként / XML-elemnévként megjelenik; az UI többi része a saját nevedet tartja meg. Az átnevezés minden Dynamic feed oszlopon működik, számítotton vagy sem — ugyanaz a mező, ahol a partner más nevet vár, mint az easySales belső megnevezése.

3. lépés: Írd meg a Feed szabályt, ami számolja az értéket

Válts a Feed szabályok fülre ugyanazon a feeden. Adj hozzá egy szabályt:

  • Ha: MINDIG (vagy egy feltétel — lásd lent).
  • Akkor: válaszd ki a létrehozott jellemzőt mint tulajdonság, válaszd a képlet operátort, majd írd meg a képletet.
Képernyőkép a Feed szabály szerkesztőről az easySalesben — tulajdonság a Minimumár jellemzőre állítva, akció képlet, képlet round(acquisition_price * 1.15, 2).
Egy Feed szabály jellemző-célponttal és képlet-művelettel. Választod a jellemzőt, írod a képletet, mented.

A képletszerkesztő chip-paletta van a használható változókkal:

  • ${product.product_sale_price}, ${product.product_full_price} — listázott árak, ÁFA nélkül.
  • ${product.product_acquisition_price} — a beszerzési ár.
  • ${product.product_tax_rate} — a termék ÁFA-kulcsa egész számként (pl. 19, 20, 27). Oszd el 100-zal szorzóvá alakításhoz — 1 + ${product.product_tax_rate} / 100 1.27-et ad 27%-os kulcsra, ezzel szoroznád meg a nettó árat a bruttóhoz.
  • ${product.product_characteristic:<név>} — másik jellemző olvasása név alapján (kis-nagybetű érzékeny). Hasznos láncoláshoz: egy jellemzőre alapértéket írsz, majd egy másik jellemző képletéből hivatkozol rá.
  • ${product.product_meta_field:<kulcs>} — egyedi termék-metamező olvasása kulcs alapján.
  • ${product.product_price_group:<id>} — szerződéses árcsoport-ár olvasása erre a termékre.
  • ${other.currency_rate:FROM:TO} — élő árfolyam két ISO pénznem-kód között (pl. HUF:EUR, EUR:USD).
  • round(<kifejezés>, <tizedesek>) — fix pontosságra kerekíti az eredményt.

Operátorok: +, -, *, /, zárójelek csoportosításhoz. Standard aritmetika.

Néhány oszlop szándékosan nem érhető el képletváltozóként — készlet, foglalt_készlet, súly és más nem-ár oszlopok. Ezekből érték kiszámításához használd a Feed szabály aritmetikai művelet-operátorait (felülírás, kivonás, szorzás, összeadás) a képlet helyett. Az alábbi Elérhető készlet recept mutatja a mintát.

Mentsd a szabályt. A következő újragenerálás minden termékre lefuttatja, kitölti a jellemzőt a memóriában és megjeleníti az értéket a fájlban. A termékkatalógus érintetlen marad — a jellemzők oldal olyan üres marad, ahogy hagytad.

Ha csak bizonyos termékekre akarod alkalmazni a képletet (egy kategória, készleten lévő termékek, egy márka termékei), adj feltételeket a Ha oldalon: jellemző alapján, oszlop alapján, kategória alapján — bármi, amit a szabálykészítő támogat.

Valós receptek

Minimumár egy árazási partnerhez

Egy árazási partnernek küszöb kell — az ár, ami alá nem mehet. Ezt nem akarod minden terméken tárolni (változik a költségek vagy marzspolitika változásakor), úgyhogy számolod.

  • Jellemző neve: Minimumár
  • Oszlop átnevezés: min_price
  • Képlet: round(${product.product_acquisition_price} * 1.15, 2) — beszerzés + 15% marzs.

Csatornánként állítsd a szorzót különböző feedekben írt különböző szabályokkal. Ugyanaz a jellemző, különböző képletek, különböző fájlok. A katalógus mindebből semmit nem lát. A 3. lépésnél lévő képernyőkép pontosan ezt a szabályt mutatja konfigurálva.

Második pénznemű ár egy határon átnyúló partnerhez

A partnered másik piacon van és a saját pénznemében szeretne árat. Az easySales beépített árfolyam-függvénnyel rendelkezik, így nem kell párhuzamos árlistát tartani.

  • Jellemző neve: EUR ár
  • Oszlop átnevezés: price_eur
  • Képlet: round(${product.product_sale_price} * ${other.currency_rate:HUF:EUR}, 2) — cseréld a HUF:EUR-t a számodra megfelelő FROM:TO párra.

Az árfolyamok napi automatikus frissítéssel jönnek — az easySales központi forrásból húzza őket, így nincs párhuzamos tábla. Ha a partnernek szerződéses időszakra stabil árfolyam kell (nem az élő), írj a támogatásnak és kitaláljuk a megoldást.

Képernyőkép a szabály-szerkesztőről — tulajdonság az EUR ár jellemzőre állítva, akció képlet, képlet sale_price * currency_rate(HUF:EUR) 2 tizedesre kerekítve.
Második pénznemű számított oszlop: a képlet az élő HUF-EUR árfolyammal szorozza az eladási árat, 2 tizedesre kerekítve.

Elérhető készlet (fizikai mínusz foglalt)

A partner azt a készletet látja, amit közzéteszel; ha ez a polcon lévő szám és nyitott rendelések vannak, túlkiadsz. A megfelelő közzéteendő szám az available-to-promise: fizikai készlet mínusz a nyitott rendeléseken foglalt.

A készlet és a foglalt_készlet nem érhetők el képletváltozóként, ezért ez a recept egyáltalán nem használja a képlet operátort. Helyette két aritmetikai műveletet láncolsz ugyanazon a jellemzőn — az első az alapot írja, a második módosítja.

  • Jellemző neve: Elérhető készlet
  • Oszlop átnevezés: available_stock
  • 1. művelet: cél = Elérhető készlet, operátor = felülírás ezzel, forrás = a készlet oszlop. (A jellemzőt a termék készletértékére állítja.)
  • 2. művelet (az első alá adva, ugyanazon a szabályon): cél = Elérhető készlet, operátor = kivonás, érték forrása = mező, oszlop = foglalt_készlet. (Levonja a foglalt készlet oszlopot a futó értékből.)

Két művelet, egy szabály, fentről lefelé. Az első írja az alapot; a második módosítja. Láncolhatsz egy harmadik műveletet (összeadás / kivonás literál számmal szemben), ha a fulfillment matekod fix biztonsági készlet puffert igényel.

Képernyőkép a Feed szabály szerkesztőről az easySalesben két láncolt művelettel az Elérhető készlet jellemzőn — felülírás a készlet oszloppal, majd a foglalt_készlet oszlop kivonása.
Két láncolt művelet, egy szabály. Az első írja az alapot; a második kivonja a foglalt mennyiséget.

Bármely oszlop átnevezése a kimenetben

Az Átnevezés mező minden oszlop mellett megjelenik a Dynamic feed készítőjében, nem csak a számítottak mellett. Használd, amikor a partner más nevet vár, mint az easySales belső megnevezés — price a full_price helyett, cost a sale_price helyett, inventory a stock helyett.

Két megjegyzés:

  • Az átnevezés a fájl-kimenetre vonatkozik: CSV-fejléc, JSON-kulcs és XML-elemnév. Az UI máshol az easySales neveket használja, hogy te és a csapatod ne tévedjetek el.
  • Az XML-elemneveknek szigorúbb szabályaik vannak, mint a CSV-nek vagy JSON-nak. Ha az átnevezésed szóközöket vagy írásjeleket tartalmaz, az easySales automatikusan szanitálja XML-hez — Min ár (HUF) min_ar_huf_ lesz a <min_ar_huf_> címkékben. A CSV-fejlécek és JSON-kulcsok pontosan megtartják, amit beírtál.

Ha két oszlop ugyanarra a kimeneti névre nevezi át magát, a feed-készítő blokkolja a mentést és megmutatja, melyik ütközik. Válassz egyedi nevet és menthető lesz.

Mikor NE használj számított oszlopot

  • Valódi termékattribútumok. Ha az adat természetes módon a terméken él (Szín, Méret, Feszültség, EAN), használj sima jellemzőt és tárold. A számított oszlopok olyan értékekhez valók, amelyek nem a katalógusra valók.
  • Csatornánkénti kategória-mappingek. Ha a partner Google Shopping kategória-id-t, Skroutz kódot vagy bármilyen leképezést kér a kategóriádtól az övéire, használd a csatorna-specifikus feed-készítőt — az elő-validált és megspórolja a leképezési munkát. A Dynamic feed a nyitott opció olyan partnerekhez, akikhez nincs dedikált készítőnk. Lásd Mi az a termék-feed? bevezetésért a csatorna-feedekbe.
  • Statikus, fix értékek. Ha minden termék ugyanazt az értéket kapja (condition: új, availability: készleten), használd a értékre állítás akciót egy normál oszlopon ahelyett, hogy jellemzőt szintetizálnál — egy mozgó alkatrésszel kevesebb.

Ha nem vagy biztos benne, hogy egy oszlop számított, tárolt vagy fix legyen, a támogatás megnézheti az adott esetet. A „számított vagy tárolt?" kérdések többsége két perc alatt megoldódik, miután felvázolod a használati esetet.

Bankkártya megadása nélkül
14 nap ingyen
Bármikor lemondható

Építsd meg azokat az oszlopokat, amelyeket a partnereid valóban kérnek

Nyisd meg a Feedek → Dynamic menüt az easySalesben és állíts elő partner-kész fájlt számított oszlopokkal pár perc alatt. Új vagy itt? Próbáld ki az easySalest 14 napig ingyen, bankkártya nélkül.

Gyakran ismételt kérdések

Nem. A számított oszlopok a memóriában értékelődnek ki a feed renderelése közben, majd eldobódnak. Nyisd meg a termékek oldalt a feed újragenerálása után és ugyanazokat a jellemző-értékeket fogod látni, mint korábban — üresen, a tipikus setup-ban. A katalógus soha nem változik. Ez szándékos: lehetővé teszi sok különböző számított oszlop publikálását sok különböző feedbe anélkül, hogy a termékadataid összezavarodnának.

Nem. A jellemző csak egy hely, ahova a képlet renderelési időben ír. A legtöbb számított-oszlop setup egy vadonatúj jellemzőt hoz létre és egyik termékre sem ad neki értéket. Ha a jellemzőnek vannak értékei egyes termékeken és írsz egy szabályt, ami felülírja, a szabály nyer — arra az egy feed-renderelésre — és az eredeti értékek érintetlenül maradnak a katalógusban.

Termékmezők: sale_price, full_price, acquisition_price, tax_rate. Más jellemzők név alapján: ${product.product_characteristic:&lt;Név&gt;}. Pénznem-konverzió: ${other.currency_rate:FROM:TO} az élő árfolyamot adja vissza két pénznem-kód között. A round() függvény adott tizedesre kerekít egy kifejezést. Standard aritmetikai operátorok (+, -, *, /) és zárójelek csoportosításhoz. A képletszerkesztő mindezt kattintható chipekként közli, így nem kell megjegyezned a pontos szintaxist. Megjegyzés: a tax_rate egész szám (pl. 19, 27) — oszd el 100-zal, ha szorzóként használod.

Az alapértelmezett ütem óránkénti, és a fájl csak akkor generálódik újra, amikor a partner olvassa (így az alvó feedek nem fogyasztanak erőforrást). Minden újragenerálásnál a képlet újraszámolódik az aktuális termékadatokon — egy ár-változás a terméken automatikusan a számított oszlopba kerül a következő rendereléskor. ERP-katalógus exportokhoz kérheted a támogatástól, hogy napi szintre csökkentse; gyors mozgású partner-szinkronhoz a támogatás növelheti.

Igen. A Feed szabálynak van „Ha" és „Akkor" oldala. Tegyél bármilyen feltételt a „Ha" oldalra — jellemző X = Y, kategória tartalmazza Z-t, márka W, készlet > 0 — és a képlet csak az illeszkedő termékekre fut. A többi termék kihagyja a szabályt és a számított oszlop üresen jelenik meg náluk. Kombinálj több szabályt különböző termékcsoportokhoz különböző képletekkel.

A Dynamic feed oszlopkészítőjében minden oszlop-sornak van egy Átnevezés mezője a oszloplista mellett. Írd be a nevet, amit a partner vár („price", „min_price", „cost", bármi) és az a név jelenik meg CSV-fejlécként / JSON-kulcsként / XML-elemnévként a kimeneti fájlban. Az átnevezés minden oszlopon működik, számítotton vagy sem. Az XML-elemnevek automatikusan szanitálódnak, ha az átnevezésedben szóközök vagy írásjelek vannak; a CSV és JSON pontosan megtartja, amit beírtál.

Igen. A legegyszerűbb út a sale_price_including_tax vagy a full_price_including_tax közvetlen hozzáadása Dynamic feed oszlopként — sima oszlopok az oszlop-listában és már ÁFA-val növelt értéket hordoznak. Képlet nem kell. Ha egyedi formát kérnek (eladási ár plusz ÁFA plusz marzs, vagy ÁFA-val növelt másik pénznemben), nyúlj képletért: round(${product.product_sale_price} * (1 + ${product.product_tax_rate} / 100), 2) kézzel reprodukálja az ÁFA-matekot. Megjegyzés: a ${product.product_tax_rate} egész számot ad vissza, mint 19 vagy 27 — oszd el 100-zal, mielőtt 1-et adsz hozzá a megfelelő szorzóhoz.

Hasznos volt ez az útmutató?