DataFirefly Inflation Pricing dla WooCommerce
Masowa podwyżka cen w WooCommerce z zachowaniem cen psychologicznych typu 59, 89 czy 569.
Co robi wtyczka
DataFirefly Inflation Pricing nalicza procent na całym katalogu WooCommerce lub na jego części, a następnie sprowadza każdą uzyskaną cenę na skalę cen psychologicznych, którą sam definiujesz. Podwyżka o 3 % przy produkcie za 59 nie daje 60,77, lecz 60,90, albo 69, jeśli wolisz liczby całkowite kończące się na 9.
Cała ścieżka przebiega w trzech krokach: opisujesz zakres i procent, wtyczka wylicza wszystkie nowe ceny i pokazuje je w tabeli, a potem zatwierdzasz. Przed tym zatwierdzeniem nic nie trafia do bazy danych, a każda poprzednia cena zostaje zachowana, aby umożliwić cofnięcie.
Instalacja
- Pobierz archiwum ZIP ze swojego konta klienta DataFirefly.
- W panelu WordPressa przejdź do Wtyczki, następnie Dodaj nową wtyczkę i kliknij Wyślij wtyczkę na serwer.
- Wybierz plik ZIP, zainstaluj go i aktywuj.
- W menu WooCommerce pojawia się nowa pozycja, Inflation Pricing.
Aktywacja tworzy dwie tabele: wp_df_inflation_campaigns dla kampanii i wp_df_inflation_items dla wierszy cen. Prefiks odpowiada Twojej instalacji.
Wymagania: WordPress 5.8 lub nowszy, WooCommerce 6.0 lub nowszy, PHP 7.4 lub nowszy. Wtyczka deklaruje zgodność z HPOS oraz z blokami koszyka i zamówienia już przy starcie.
Trzy ekrany
Nowa kampania
To główny ekran roboczy. Zawiera trzy karty: Podwyżka, Zakres i Zaokrąglanie. Tutaj budujesz kampanię i uruchamiasz podgląd.
Historia
Lista wszystkich kampanii wraz z ich statusem. Z tej strony przeglądasz szczegóły kampanii wiersz po wierszu, stosujesz kampanię oczekującą, cofasz kampanię już zastosowaną albo usuwasz kampanię, która nie jest już potrzebna.
Reguły zaokrąglania
Ustawienia globalne: progi zaokrąglania, kierunek, gwarancja podwyżki, podstawa obliczeń brutto lub netto, rozmiar partii, zachowanie przy odinstalowaniu. Symulator na dole strony pokazuje wynik na przykładowych cenach.
Jak działają progi zaokrąglania
Próg określają trzy wartości:
- Obowiązuje do: górna granica danego przedziału cen. Wartość 0 oznacza brak limitu i wskazuje próg obsługujący wszystkie ceny powyżej pozostałych progów.
- Krok: odstęp między dwiema możliwymi cenami.
- Końcówka: przesunięcie zastosowane do tego odstępu.
Cena końcowa zawsze równa się krokowi pomnożonemu przez liczbę całkowitą, plus końcówka. Kilka przykładów:
- Krok 10, końcówka 9 daje 9, 19, 29, 59, 89, 569, 899
- Krok 1, końcówka 0,90 daje 9,90, 14,90, 60,90, 99,90
- Krok 5, końcówka 4 daje 24, 29, 124, 129, 134
- Krok 0,50, końcówka 0,40 daje 4,40, 4,90, 9,40, 9,90
- Krok 100, końcówka 99 daje 599, 1299, 2499
Końcówka musi być mniejsza od kroku, w przeciwnym razie przestaje mieć widoczny efekt. Krok 1 z końcówką 9 daje po prostu wszystkie liczby całkowite.
Próg wybierany jest na podstawie ceny wyjściowej
Aby produkt znajdujący się tuż pod granicą nie wskoczył do znacznie grubszego przedziału, brany jest próg odpowiadający obecnej cenie produktu, a nie cenie wyliczonej. Artykuł za 19,90 pozostaje więc obsługiwany przez próg niskich cen, nawet jeśli podwyżka wynosi go powyżej 20.
Kompromis między czytelnością a precyzją
To najważniejsza rzecz do zrozumienia przed uruchomieniem kampanii. Im grubsza skala zaokrąglania, tym bardziej rzeczywista zmiana oddala się od zakładanego procentu.
Weźmy podwyżkę o 3 % przy produkcie za 59. Wyliczona cena surowa to 60,77. W zależności od wybranej skali:
- Krok 1, końcówka 0,90 daje 60,90, czyli +3,2 %
- Krok 5, końcówka 4 daje 64, czyli +8,5 %
- Krok 10, końcówka 9 daje 69, czyli +16,9 %
Żadna wtyczka nie obejdzie tej arytmetyki: jeśli wymagasz cen całkowitych kończących się na 9, minimalny odstęp między dwiema cenami wynosi 10, co przy 59 daje 17 %. Wtyczka tego nie ukrywa, lecz pokazuje przed zapisem dzięki symulatorowi, kolumnie Zmiana w podglądzie oraz limitowi na kampanię.
Prosta zasada: krok musi pozostać mały wobec cen w danym przedziale. Krok 1 przy cenach od 20 do 100 daje odchylenia od 1 do 5 %, spójne z roczną inflacją. Krok 10 w tym samym przedziale już nie.
Gotowe zestawy
Pięć gotowych zestawów wypełnia tabelę progów jednym kliknięciem w zakładce Reguły zaokrąglania.
- Zrównoważony: ustawienie domyślne. Do 10 krok 0,50 końcówka 0,40, do 100 krok 1 końcówka 0,90, do 300 krok 5 końcówka 4, powyżej krok 10 końcówka 9. Przy założeniu 3 % rzeczywista zmiana mieści się między 2 a 5 %.
- Liczby całkowite kończące się na 9: do 100 i powyżej, krok 10 końcówka 9. Otrzymujesz dokładnie 59, 89, 569, 899. Odchylenia przy niskich cenach są duże.
- Liczby całkowite kończące się na 4 lub 9: krok 5 końcówka 4 poniżej 100, krok 10 końcówka 9 powyżej. Częsty kompromis w handlu detalicznym.
- Ceny z końcówką ,90: krok 1 końcówka 0,90 poniżej 100, krok 10 końcówka 9,90 powyżej.
- Brak zaokrąglania psychologicznego: krok 0,01 końcówka 0. Procent naliczany jest co do grosza.
Gotowe zestawy to tylko punkt wyjścia. Progi możesz dowolnie dodawać, usuwać i zmieniać, a następnie zapisać.
Kierunek zaokrąglania i gwarancja podwyżki
Kierunek
- Najbliższa cena psychologiczna: zachowanie zalecane. Wyliczona cena przechodzi na najbliższą wartość swojego progu, w górę lub w dół.
- Zawsze w górę: cena zawsze idzie na kolejną wartość wyżej. Marże są chronione, ale rzeczywiste podwyżki często przekraczają założenie.
- Zawsze w dół: cena schodzi na wartość niższą. Do zarezerwowania dla obniżek cen.
Gwarancja podwyżki
Przy kierunku do najbliższej wartości mały procent może zostać w całości pochłonięty przez zaokrąglenie. Podwyżka o 3 % na cenie 59 daje 60,77, a najbliższa cena na skali o kroku 10 to nadal 59: cena się nie zmienia.
Opcja Nigdy nie pozwalaj, aby zaokrąglanie zniwelowało podwyżkę koryguje ten przypadek, przesuwając na kolejną wartość, dopóki wynik pozostaje równy lub niższy od ceny wyjściowej. Działa wyłącznie przy dodatnich procentach. Przy obniżce ceny wyłącz ją.
Zaokrąglanie na cenie brutto lub na cenie zapisanej
WooCommerce przechowuje ceny netto lub brutto zależnie od ustawienia Wprowadzaj ceny z podatkiem. Jeśli Twój sklep wprowadza ceny netto, a wyświetla brutto, zaokrąglanie zapisanej wartości nie daje nic czytelnego dla klienta: 49,17 netto przy 20 % podatku daje 59,00 brutto, ale 49,00 netto daje 58,80 brutto.
Ustawienie Zaokrąglaj na proponuje dwa zachowania:
- Cena widziana przez klienta, brutto: wtyczka przelicza zapisaną cenę na brutto według klasy podatkowej produktu, zaokrągla tę wartość, a następnie przelicza z powrotem na netto z czterema miejscami po przecinku przed zapisem. To ustawienie domyślne.
- Cena zapisana: zaokrąglenie działa bezpośrednio na wartości w bazie danych, bez przeliczania.
Jeśli Twój sklep przechowuje już ceny brutto albo podatek jest wyłączony, oba ustawienia dają ten sam wynik. Produkty oznaczone jako nieopodatkowane nie przechodzą żadnego przeliczenia.
Budowanie kampanii
Karta Podwyżka
- Nazwa kampanii: opcjonalna, przy pustym polu generowana jest nazwa ze znacznikiem czasu.
- Procent: dodatni dla podwyżki, ujemny dla obniżki. Dopuszczalne dwa miejsca po przecinku.
- Ceny promocyjne: patrz osobna sekcja poniżej.
- Pomiń produkt, jeśli rzeczywista zmiana przekracza X %: główne zabezpieczenie. Przy założeniu 3 % i limicie 6 % każdy produkt, którego zaokrąglenie dałoby podwyżkę powyżej 6 %, zostaje wyłączony z kampanii, z powodem widocznym w podglądzie. Zostaw pole puste, aby wyłączyć tę kontrolę.
Karta Zakres
- Kategorie do uwzględnienia: zostaw puste, aby objąć cały katalog. Podkategorie wybranych kategorii są dołączane automatycznie.
- Kategorie do wykluczenia: mają pierwszeństwo przed uwzględnieniem, wraz z podkategoriami.
- Tagi: ogranicza do produktów z jednym z zaznaczonych tagów.
- Typy produktów: prosty, zmienny, zewnętrzny, grupowy. Zaznaczenie zmiennego obejmuje warianty, a nie produkt nadrzędny, który nie ma własnej ceny.
- Status produktów: opublikowany, szkic, prywatny, oczekujący. Przy wariantach oceniany jest status produktu nadrzędnego.
- Cena podstawowa w przedziale: dwie opcjonalne granice liczone na zapisanej cenie podstawowej.
- Pomiń produkty aktualnie w promocji: wyklucza produkty z ustawioną ceną promocyjną.
- Wyklucz te ID lub SKU oraz Ogranicz do tych ID lub SKU: dowolne listy rozdzielone przecinkami, spacjami lub nowymi wierszami. SKU są zamieniane na identyfikatory w chwili selekcji. Przy produkcie zmiennym podanie ID produktu nadrzędnego obejmuje wszystkie jego warianty.
Karta Zaokrąglanie
Domyślnie kampania korzysta z reguł globalnych, przypomnianych na górze karty. Zaznacz Zastąp reguły globalne dla tej kampanii, aby zmienić kierunek, gwarancję podwyżki i podstawę obliczeń wyłącznie dla tej kampanii. Same progi pozostają te z ustawień globalnych.
Pole Przy cofaniu pomijaj produkty edytowane po zastosowaniu określa zachowanie przywracania. W zdecydowanej większości przypadków zostaw je zaznaczone.
Ceny promocyjne
Dostępne są cztery tryby. Działają tylko na produktach, które faktycznie mają ustawioną cenę promocyjną.
- Przelicz zachowując ten sam poziom rabatu: tryb domyślny. Produkt za 100 pokazywany za 80 zachowuje po podwyżce swój rabat 20 %. Nowa cena promocyjna również przechodzi przez zaokrąglanie.
- Nalicz ten sam procent: cena promocyjna traktowana jest dokładnie tak samo jak cena podstawowa.
- Nie ruszaj: cena promocyjna pozostaje ściśle bez zmian. Pokazywany rabat rośnie więc automatycznie.
- Usuń cenę promocyjną: promocja zostaje zdjęta, wraz z datami początku i końca.
W każdym przypadku, jeśli nowa cena promocyjna miałaby osiągnąć lub przekroczyć nową cenę podstawową, zostaje automatycznie usunięta, aby uniknąć niespójności w sklepie.
Podgląd i zastosowanie
Przycisk Podejrzyj nowe ceny uruchamia trzy kolejne operacje, z paskiem postępu:
- Wybór produktów odpowiadających zakresowi i zapisanie kolejki.
- Obliczenie nowej ceny każdego wiersza, partiami.
- Wyświetlenie tabeli i statystyk.
Tabela pokazuje dla każdego wiersza produkt z odnośnikiem do jego edycji, SKU, obecną cenę, nową cenę, rzeczywistą zmianę procentową, cenę promocyjną przed i po oraz status. Wiersze pominięte mają status skipped i powód: produkt darmowy, brak ceny podstawowej, cena już na wartości docelowej albo zmiana powyżej dozwolonego limitu.
Przycisk Wczytaj kolejne 50 wierszy stronicuje tabelę. Pobierz CSV eksportuje całą kampanię wraz z wierszami pominiętymi, co pozwala na przegląd offline lub akceptację przez osobę trzecią.
Dopóki nie klikniesz Zastosuj do katalogu, żadna cena nie została zmieniona. Kampania pozostaje dostępna w historii ze statusem Gotowa do zastosowania i można ją zastosować później.
Zastosowanie odbywa się partiami przez API produktów WooCommerce, co gwarantuje aktualizację wyświetlanej ceny, wewnętrznej tabeli wyszukiwania i pamięci podręcznych. Po każdej partii objęte produkty zmienne są ponownie synchronizowane, aby wyświetlane w sklepie ceny minimalna i maksymalna pozostały poprawne.
Cofanie kampanii
Na ekranie Historia kampania ze statusem Zastosowana udostępnia przycisk Cofnij. Przywracanie odbywa się partiami i przywraca każdemu produktowi jego pierwotną cenę podstawową i cenę promocyjną.
Jeśli przy tworzeniu kampanii aktywna była opcja bezpieczeństwa, każdy produkt jest sprawdzany przed przywróceniem: gdy jego obecna cena nie odpowiada już cenie ustawionej przez kampanię, wiersz zostaje pominięty z wyraźnym komunikatem. Dzięki temu ręczna zmiana wprowadzona w międzyczasie nie zostaje nadpisana.
Usunięcie kampanii kasuje także jej dane przywracania. Kampanii zastosowanej, a następnie usuniętej, nie da się już cofnąć.
Polecenia WP-CLI
Cztery polecenia obsługują tę samą ścieżkę bez przeglądarki, co sprawdza się przy bardzo dużych katalogach i w skryptach wdrożeniowych.
wp df-inflation preview --percent=3 --categories=15,22
wp df-inflation apply --campaign=12 --yes
wp df-inflation apply --percent=4.5 --types=simple,variable --sale=ratio --yes
wp df-inflation revert --campaign=12 --yes
wp df-inflation campaigns
Dostępne opcje: --percent, --name, --categories, --types, --sale (keep, percent, ratio lub remove), --campaign oraz --yes. Polecenie preview buduje kampanię i wypisuje statystyki, nic nie zapisując, a zwraca identyfikator do ponownego użycia z apply.
Ustawienia globalne
- Progi cenowe: opisana wyżej tabela, z przyciskami dodawania i usuwania oraz gotowymi zestawami.
- Kierunek i Gwarantuj podwyżkę: wartości domyślne proponowane przy każdej nowej kampanii.
- Zaokrąglaj na: podstawa obliczeń brutto lub cena zapisana.
- Rozmiar partii: liczba produktów przetwarzanych na jedno żądanie, od 1 do 200. Domyślna wartość 25 pasuje do większości hostingów. Zejdź do 10 przy przekroczeniu czasu wykonania, podnieś do 50 lub 100 na serwerze dedykowanym.
- Odinstalowanie: jeśli pole jest zaznaczone, usunięcie wtyczki kasuje obie tabele i opcje. Bez zaznaczenia dane kampanii przetrwają ponowną instalację.
Dostosowanie dla programistów
Dwa filtry pozwalają wpłynąć na zachowanie silnika.
// Skorygowanie zaokrąglonej ceny.
add_filter( 'df_inflation_rounded_price', function ( $result, $raw_price, $tier ) {
return $result;
}, 10, 3 );
// Zmiana listy produktów wybranych przez kampanię.
add_filter( 'df_inflation_scope_rows', function ( $rows, $filters ) {
return $rows;
}, 10, 2 );
Wszystkie działania administracyjne wymagają uprawnienia manage_woocommerce. Żądania AJAX są chronione przez nonce i sprawdzają to uprawnienie po stronie serwera.
Rozwiązywanie problemów
Żaden produkt nie odpowiada zakresowi
Sprawdź, czy zaznaczone typy produktów odpowiadają Twojemu katalogowi i czy docelowe produkty mają ustawioną cenę podstawową. Produkt zmienny, w którym cenę mają tylko warianty, wymaga zaznaczenia typu zmiennego, a nie prostego.
Pasek postępu się zatrzymuje
Zmniejsz rozmiar partii w ustawieniach i uruchom ponownie. Partia 10 produktów wystarcza na najbardziej ograniczonych hostingach. Konsola przeglądarki pokazuje szczegóły nieudanego żądania.
Nowe ceny nie pojawiają się w sklepie
Wyczyść pamięć podręczną swojej wtyczki cache oraz cache serwera. Wtyczka czyści transienty WooCommerce zmienionych produktów, ale nie ma wpływu na zewnętrzny cache stron.
Ceny produktów zmiennych są niespójne
Ceny minimalna i maksymalna pokazywane na karcie produktu nadrzędnego pochodzą z synchronizacji WooCommerce. Wtyczka uruchamia ją po każdej partii. Jeśli różnica się utrzymuje, narzędzie WooCommerce, Status, Narzędzia, Wyczyść transienty produktów wymusza pełne przeliczenie.
Rzeczywista zmiana znacznie wyższa od założenia
To zachowanie oczekiwane przy grubej skali. Uzupełnij limit na kampanię, aby wyłączyć te produkty, albo dodaj drobniejszy próg w danym przedziale cen.
Odinstalowanie
Dezaktywacja wtyczki niczego nie usuwa: kampanie i dane przywracania pozostają w bazie. Pełne usunięcie z listy wtyczek uruchamia czyszczenie tylko wtedy, gdy odpowiednia opcja została zaznaczona w ustawieniach przed usunięciem.