Jak obliczać niestandardowe kolumny w feedach produktowych (bez modyfikowania katalogu)
Buduj obliczone kolumny w feedzie Dynamic w easySales — cena minimalna, cena w drugiej walucie, dostępny stan magazynowy — używając cechy, kolumny i reguły feedu z formułą. Twój katalog pozostaje nietknięty.
Prędzej czy później każdy sprzedawca prowadzący feed Dynamic uderza w tę samą ścianę: partner chce kolumny, której nie ma na produktach. Partner repricingowy chce min_price jako próg. Dystrybutor B2B chce eur_price obok ceny lokalnej. 3PL chce available_stock — fizyczny stan minus to, co zostało zarezerwowane na otwartych zamówieniach. Kolumn nie ma w katalogu. Liczb nie warto przechowywać na każdym produkcie. Ale partner nie zaakceptuje pliku bez nich.
Do tego służą obliczone kolumny w feedzie Dynamic w easySales. Definiujesz kolumnę w feedzie, piszesz krótką formułę, a easySales oblicza wartość przy każdej regeneracji. Twój katalog produktów pozostaje czysty. Nic nie jest zapisywane na samych produktach.
Dlaczego sprzedawcy budują obliczone kolumny
„Obliczona kolumna" to kolumna, której wartość jest kalkulowana w momencie generowania feedu — nie jest nigdzie przechowywana. Istnieje dla pliku, który publikujesz, i tylko dla niego.
Trzy wzorce powtarzają się w kółko:
- Progi i pułapy. Partner repricingowy chce najniższej ceny, jaką zaakceptujesz. Nie chcesz przechowywać tego jako atrybutu produktu (zmienia się na kanał, na kampanię, na politykę marży). Formuła wyprowadza ją z ceny zakupu + marży przy każdym eksporcie.
- Feedy wielowalutowe. Partner spoza twojego rynku chce cen w swojej walucie. Przechowywanie równoległej kolumny ceny dla każdego rynku nie skaluje się; konwertowanie w locie — tak.
- Obliczona dostępność. Partner musi widzieć to, co jest naprawdę do zamówienia, nie to, co jest na półce.
stan - stan_zarezerwowanyto jedna operacja odejmowania.
Wspólna cecha: wartość jest funkcją innych wartości produktu, przeliczaną przy każdej regeneracji feedu. Przechowywanie jej na każdym produkcie oznaczałoby aktualizowanie każdego produktu za każdym razem, gdy zmienią się dane wejściowe — niepotrzebne obciążenie utrzymaniem.
Jak działa obliczona kolumna w easySales
Trzy elementy, każdy to pięć sekund pracy:
- Cecha — miejsce, w którym żyje wartość. Tworzysz ją raz, nadajesz nazwę i zostawiasz pustą na wszystkich produktach.
- Kolumna feedu Dynamic — okablowanie, które przenosi cechę do pliku wyjściowego.
- Reguła feedu z akcją formuły — obliczenie, które wypełnia miejsce w czasie eksportu.
Miejsce pozostaje puste w katalogu. Reguła wypełnia je podczas eksportu. Kolumna renderuje wypełnioną wartość w pliku. Trzy małe kawałki, każdy z dobrze zdefiniowaną pracą. Dodajesz regułę, regenerujesz, wartość się pojawia. Usuwasz regułę, regenerujesz, wartość znika — bez zmiany żadnego produktu.
Krok 1: Utwórz cechę
Otwórz Katalog → Cechy i utwórz nową cechę. Nadaj jej jasną nazwę — ta, której partner oczekuje w pliku, jest dobrym wyborem.
Przykłady: Cena minimalna, Cena EUR, Dostępny stan.
Nie musisz wypełniać wartości na żadnym produkcie. Cały sens jest taki, że ta cecha jest celem dla formuły, a nie prawdziwym atrybutem produktu. Zapisz i idź dalej.
Kilka wskazówek dotyczących nazewnictwa:
- Wybieraj nazwy, które rozpoznasz za sześć miesięcy.
Cena minimalna sprzedaży (PL)jest lepsza niżmin_price_pl_v2. - Jeśli ta sama wartość będzie używana w kilku feedach, użyj jednej cechy do wszystkich. Wartości obliczone są ograniczone do feedu (reguła żyje na feedzie), więc ta sama cecha może przechowywać różne obliczone wartości w różnych feedach bez kolizji.
- Unikaj cech, które już mają dane produktowe. Jeśli
Napięciejest prawdziwym polem katalogu, nie używaj go jako slotu obliczanego — wybierz inną nazwę. Obliczone wartości nadpisują istniejący pivot w pamięci; straciłbyś prawdziwe wartości na czas renderowania feedu.
Krok 2: Dodaj cechę do feedu Dynamic
Otwórz feed Dynamic. W konstruktorze kolumn dodaj nowy wiersz, wybierz Cecha z listy kolumn, a następnie wybierz utworzoną przed chwilą cechę z połączonego selektora.
Kolumna wyrenderuje się w pliku wyjściowym. Wartość komórki pochodzi z tego, co reguła obliczy dla każdego produktu.
Jeśli partner oczekuje konkretnej nazwy dla tej kolumny — min_price zamiast Cena minimalna, price_eur zamiast Cena EUR — użyj pola Zmień nazwę obok kolumny. Zmieniona nazwa pojawia się jako nagłówek CSV / klucz JSON / nazwa elementu XML; reszta interfejsu zachowuje to, co napisałeś dla siebie. Zmiana nazwy działa na każdej kolumnie feedu Dynamic, obliczanej lub nie — to to samo pole zawsze, gdy partner oczekuje innej nazwy niż ta, której easySales używa wewnętrznie.
Krok 3: Napisz regułę feedu, która oblicza wartość
Przełącz na zakładkę Reguły feedu w tym samym feedzie. Dodaj regułę:
- Jeśli:
ZAWSZE(lub warunek — patrz poniżej). - Wtedy: wybierz utworzoną cechę jako właściwość, wybierz formuła jako operator, a następnie napisz formułę.
Edytor formuł ma paletę chipów ze zmiennymi, których możesz użyć:
${product.product_sale_price},${product.product_full_price}— ceny katalogowe, bez VAT.${product.product_acquisition_price}— twój koszt.${product.product_tax_rate}— stawka VAT produktu jako liczba całkowita (np.19,23,8). Podziel przez 100, aby przekonwertować na mnożnik —1 + ${product.product_tax_rate} / 100zwraca1.23dla stawki 23%, dokładnie tym pomnożysz cenę netto, aby uzyskać brutto.${product.product_characteristic:<nazwa>}— odczyt innej cechy po nazwie (rozróżnia wielkość liter). Przydatne do łańcuchowania: piszesz cechę z wartością bazową, odwołujesz się do niej z formuły kolejnej cechy.${product.product_meta_field:<klucz>}— odczyt niestandardowego meta-pola produktu po kluczu.${product.product_price_group:<id>}— odczyt umownej ceny grupy cenowej dla tego produktu.${other.currency_rate:FROM:TO}— żywy kurs wymiany między dwoma kodami ISO walut (np.PLN:EUR,EUR:USD).round(<wyrażenie>, <miejsca>)— zaokrągla wynik do stałej precyzji.
Operatory: +, -, *, /, nawiasy do grupowania. Standardowa arytmetyka.
Niektóre kolumny celowo nie są udostępniane jako zmienne formuły — stan, stan_zarezerwowany, waga i inne kolumny niecenowe. Aby obliczyć z nich wartość, użyj operatorów akcji arytmetycznych reguły feedu (zastąp, odejmij, pomnóż, dodaj) zamiast formuła. Przepis Dostępny stan poniżej pokazuje wzorzec.
Zapisz regułę. Następna regeneracja uruchomi ją dla każdego produktu, wypełni cechę w pamięci i wyrenderuje wartość w pliku. Katalog produktów nigdy nie jest dotykany — strona cech pozostaje tak pusta, jak ją zostawiłeś.
Jeśli chcesz, aby formuła stosowała się tylko do niektórych produktów (jednej kategorii, produktów z stanem, produktów konkretnej marki), dodaj warunki po stronie Jeśli: oparte na cesze, kolumnie, kategorii — cokolwiek wspiera konstruktor reguł.
Przepisy z prawdziwego życia
Cena minimalna sprzedaży dla partnera repricingowego
Partner repricingowy potrzebuje progu — ceny, poniżej której nie powinien schodzić. Nie chcesz przechowywać tego na każdym produkcie (zmienia się przy zmianach kosztów lub polityki marży), więc to obliczasz.
- Nazwa cechy:
Cena minimalna - Zmiana nazwy kolumny:
min_price - Formuła:
round(${product.product_acquisition_price} * 1.15, 2)— zakup + 15% marży.
Dostosuj mnożnik na kanał, pisząc różne reguły w różnych feedach. Ta sama cecha, różne formuły, różne pliki. Katalog nie widzi nic z tego. Zrzut ekranu w Kroku 3 powyżej pokazuje dokładnie tę regułę skonfigurowaną.
Cena w drugiej walucie dla partnera transgranicznego
Partner jest na innym rynku i chce cen w swojej walucie. easySales ma wbudowaną funkcję kursu wymiany, więc nie utrzymujesz równoległej listy cen.
- Nazwa cechy:
Cena EUR - Zmiana nazwy kolumny:
price_eur - Formuła:
round(${product.product_sale_price} * ${other.currency_rate:PLN:EUR}, 2)— zamieńPLN:EURna parę FROM:TO pasującą do twojego przypadku.
Kursy walut odświeżają się automatycznie codziennie — easySales pobiera je z centralnego źródła kursów, więc nie utrzymujesz równoległej tabeli. Jeśli partner potrzebuje stabilnego kursu na okres umowny (zamiast żywego), skontaktuj się z pomocą techniczną i ustalimy odpowiednią konfigurację dla twojego przypadku.
Dostępny stan (fizyczny minus zarezerwowany)
Partner widzi stan, który publikujesz; jeśli to liczba z półki i masz otwarte zamówienia, sprzedasz więcej niż masz. Właściwą liczbą do publikacji jest available-to-promise: stan fizyczny minus zarezerwowane na otwartych zamówieniach.
stan i stan_zarezerwowany nie są wystawione jako zmienne formuły, więc ten przepis w ogóle nie używa operatora formuła. Zamiast tego, łańcuchujesz dwie akcje arytmetyczne na tej samej cesze — pierwsza zapisuje bazę, druga ją koryguje.
- Nazwa cechy:
Dostępny stan - Zmiana nazwy kolumny:
available_stock - Akcja 1: cel =
Dostępny stan, operator = zastąp, źródło = kolumnastan. (Ustawia cechę na wartość stanu produktu.) - Akcja 2 (dodana pod pierwszą, w tej samej regule): cel =
Dostępny stan, operator = odejmij, źródło wartości = pole, kolumna =stan_zarezerwowany. (Odejmuje kolumnę zarezerwowanego stanu od bieżącej wartości.)
Dwie akcje, jedna reguła, od góry do dołu. Pierwsza zapisuje bazę; druga ją koryguje. Możesz załączyć trzecią akcję (dodaj / odejmij przeciwko literalnej liczbie), jeśli twoja matematyka realizacji wymaga stałego buforu bezpiecznego stanu.
Zmiana nazwy dowolnej kolumny w wyjściu
Pole Zmień nazwę pojawia się obok każdej kolumny w konstruktorze feedu Dynamic, nie tylko obliczanych. Używaj go, kiedy partner oczekuje innej nazwy niż wewnętrzna easySales — price zamiast full_price, cost zamiast sale_price, inventory zamiast stock.
Dwie uwagi:
- Zmiana nazwy stosuje się do wyjścia pliku: nagłówek CSV, klucz JSON i nazwa elementu XML. Reszta interfejsu używa nazw easySales, abyś ty i twój zespół się nie pogubili.
- Nazwy elementów XML mają bardziej rygorystyczne reguły niż CSV czy JSON. Jeśli twoja zmiana nazwy zawiera spacje lub interpunkcję, easySales automatycznie ją sanityzuje dla XML —
Min cena (PLN)staje sięmin_cena_pln_w tagach<min_cena_pln_>. Nagłówki CSV i klucze JSON zachowują dokładnie to, co wpisałeś.
Jeśli dwie kolumny zmieniają nazwę na tę samą nazwę wyjściową, konstruktor feedu blokuje zapis i pokazuje, która koliduje. Wybierz unikalną nazwę i się zapisze.
Kiedy NIE używać obliczanej kolumny
- Prawdziwe atrybuty produktu. Jeśli dane naturalnie należą do produktu (Kolor, Rozmiar, Napięcie, EAN), użyj zwykłej cechy i przechowuj. Obliczane kolumny są dla wartości, które nie należą do katalogu.
- Mapowanie kategorii na kanał. Jeśli partner potrzebuje ID kategorii Google Shopping, kodu Skroutz lub jakiegokolwiek mapowania z twojej kategorii na ich, użyj konstruktora specyficznego dla kanału — jest wstępnie zwalidowany i oszczędza pracę nad mapowaniem. Feed Dynamic to opcja otwarta dla partnerów, dla których nie mamy dedykowanego konstruktora. Zobacz Czym jest feed produktów? w celu wprowadzenia do feedów kanałowych.
- Statyczne stałe wartości. Jeśli każdy produkt dostaje tę samą wartość (
condition: new,availability: in_stock), użyj akcji ustaw na wartość na zwykłej kolumnie zamiast syntetyzować cechę — z jedną mniej ruchomą częścią.
Jeśli nie jesteś pewien, czy kolumna powinna być obliczana, przechowywana czy stała, pomoc techniczna może spojrzeć na twój konkretny przypadek. Większość pytań „obliczane-czy-przechowywane?" rozwiązuje się w dwie minuty po naszkicowaniu przypadku użycia.
Buduj kolumny, których naprawdę chcą twoi partnerzy
Otwórz Feedy → Dynamic w easySales i wyślij plik gotowy dla partnera z obliczonymi kolumnami w kilka minut. Nowy tutaj? Wypróbuj easySales za darmo przez 14 dni, bez karty kredytowej.