
Ostatnia aktualizacja: 1 lipca 2026. Zweryfikowano względem natywnego działania cen w PrestaShop oraz wydanych modułów mypresta.rocks mprdynamicscheduleddiscounts 1.1.0 i mprmasspriceupdate 1.1.0.
Autor: zespół redakcyjny mypresta.rocks. Tworzymy moduły PrestaShop i sami prowadzimy sklepy PrestaShop, więc ten poradnik opiera się na natywnym działaniu panelu administracyjnego i kodzie wydanych modułów, a nie tylko na teorii cen.
„Czy mogę zaplanować zmianę wszystkich cen na pierwszy dzień przyszłego miesiąca?” Czasami tak. Czasami nie. Błąd polega na traktowaniu każdej zmiany ceny jak tego samego zadania.
W PrestaShop planowanie cen dzieli się na trzy różne przypadki: tymczasowy rabat, trwałą zmianę ceny bazowej oraz regułę uruchamianą na podstawie sprzedaży lub stanu magazynowego. W pierwszym przypadku użyj natywnego narzędzia. Do trwałych zmian cen użyj edytora masowego. Automatyzacji używaj tylko wtedy, gdy reguła zależy od wieku zapasu, historii sprzedaży albo kontroli przez cron.
Szybkie porównanie
| Zadanie cenowe | Natywnie w PrestaShop? | Użyj tego | Granica, o której trzeba pamiętać |
|---|---|---|---|
| Jeden produkt z rabatem w zakresie dat | Tak | Produkt > Ceny > Cena specyficzna | To tymczasowy rabat, nie przepisanie ceny bazowej. |
| Rabat kategorii, marki lub katalogu w zakresie dat | Tak | Reguła cen katalogu | Reguła tworzy warstwę rabatu. Bazowe ceny produktów pozostają bez zmian. |
| Trwałe podniesienie lub obniżenie ceny bazowej dzisiaj | Nie w czystym, natywnym ekranie z podglądem | Mass Price Updater, import albo kontrolowany skrypt | Edytujesz zapisane ceny produktów. Podgląd i dane rollbacku mają znaczenie. |
| Trwała zmiana ceny bazowej zaplanowana na przyszłą datę | Brak natywnego planera na jednym ekranie dla masowych cen bazowych | Zaplanowane zadania w Mass Price Updater | Zadanie działa przez cron i zapisuje migawki rollbacku przed zmianą wierszy. |
| „Po sprzedaży 100. sztuki zmień cenę” | Nie | Niestandardowa automatyzacja licznika sprzedaży | PrestaShopowe „od ilości” oznacza bieżącą ilość w koszyku, nie łączną liczbę sprzedanych sztuk. |
| Brak sprzedaży przez X dni i stan powyżej N | Nie | Smart Dynamic & Scheduled Discounts | Potrzebne są historia zamówień, kontrole stanu, dolny próg ceny, podgląd, cron i wygasanie. |
| Cykliczne weekendowe lub dzienne okno rabatowe | Nie jako cykliczna natywna reguła katalogowa | Smart Dynamic & Scheduled Discounts | W module okna cykliczne mogą być dzienne, tygodniowe, miesięczne albo niestandardowe. |
Zacznij od nazwania zadania
- Zaplanowana promocja: tymczasowa obniżka ceny z datą rozpoczęcia i zakończenia. Oryginalna cena wraca po zamknięciu okna czasowego.
- Trwała zmiana ceny bazowej: zapisana cena produktu zmienia się i taka pozostaje. To częste po zmianach kosztów u dostawcy.
- Automatyzacja wyzwalana warunkiem: cena reaguje na sprzedaż albo stan magazynowy, na przykład brak ostatniej sprzedaży przy zapasie nadal zalegającym w magazynie.
Sami prowadzimy sklepy PrestaShop. Błędy cenowe, które powodują problemy, są zwykle drobne: reguła katalogowa zostawiona aktywna zbyt długo, próg ilościowy odczytany jako wyzwalacz sprzedaży z całego okresu albo aktualizacja ceny bazowej wykonana bez danych do rollbacku. Dlatego ten poradnik oddziela warstwy rabatów od edycji zapisanych cen.
Natywna metoda 1: zaplanuj jeden produkt przez ceny specyficzne
Dla jednego produktu i jednego okna dat nie instaluj niczego. Użyj ekranu cen produktu.
- Otwórz Katalog > Produkty.
- Edytuj produkt.
- Otwórz zakładkę Ceny.
- Dodaj Cenę specyficzną.
- Ustaw Od ilości na
1, chyba że jest to rabat ilościowy. - Wybierz stałą cenę albo obniżkę.
- Ustaw daty Od i Do.
- Zapisz i przetestuj stronę produktu w czasie działania okna dat.
Specific Price example
Product: Example Jacket
From quantity: 1
Available from: 2026-08-08 00:00:00
Available to: 2026-08-11 23:59:59
Reduction: 20 percent
Use this for:
"This product is 20 percent off next weekend."
Co z tego wynika? To natywna ścieżka o najniższym ryzyku, gdy rabat dotyczy jednego produktu. PrestaShop już sprawdza zakres dat podczas obliczania ceny.
Natywna metoda 2: zaplanuj rabat kategorii przez reguły cen katalogu
Gdy rabat obejmuje grupę produktów, użyj reguły cen katalogu. Dokładne nazewnictwo w panelu administracyjnym różni się między PrestaShop 1.7, 8 i 9, ale zasada jest taka sama: definiujesz regułę cenową, a następnie jej warunki.
- Otwórz Katalog > Rabaty.
- Utwórz Regułę cen katalogu.
- Nazwij ją jasno, z uwzględnieniem kampanii albo sezonu.
- Ustaw Od ilości na
1, chyba że chcesz próg ilościowy w koszyku. - Ustaw zakres dat.
- Wybierz typ i wartość obniżki.
- Dodaj warunki, takie jak kategoria, producent, atrybut, cecha, dostawca albo zakres cen, zależnie od wersji PrestaShop i ekranu.
- Zapisz regułę i sprawdź jeden produkt w zestawie warunków oraz jeden poza nim.
Catalog Price Rule example
Name: Weekend Outdoor 15 percent
From quantity: 1
From: 2026-08-07 00:00:00
To: 2026-08-10 23:59:59
Reduction: 15 percent
Conditions:
Category = Outdoor
Use this for:
"Everything in Outdoor is 15 percent off this weekend."
Najważniejsze: reguła cen katalogu nadal jest warstwą rabatu. Nie przepisuje zapisanych bazowych cen produktów.
Pułapka „od ilości”
PrestaShop używa pola od ilości podczas bieżącego obliczania ceny. Mówiąc prosto: chodzi o liczbę sztuk w aktualnym koszyku lub pozycji zamówienia. To nie jest licznik sprzedaży z całego okresu.
- „Kup 5 lub więcej i oszczędź 10 procent”: natywne ceny specyficzne mogą to obsłużyć.
- „Po sprzedaży łącznie 100 sztuk podnieś cenę”: nie natywnie.
Nie traktuj tego jako obietnicy funkcji w naszych obecnych modułach. Wyzwalacz „po sprzedaży 100. skumulowanej sztuki” nie jest dostarczany w omawianych tutaj modułach. To temat na późniejszą fazę automatyzacji, ponieważ zwroty płatności, zwroty towaru, kombinacje i stan multishopu wpływają na liczenie.
-- Concept only: a cumulative sales trigger needs order history,
-- not the current cart quantity used by from_quantity.
SELECT
od.product_id,
SUM(
od.product_quantity
- COALESCE(od.product_quantity_refunded, 0)
- COALESCE(od.product_quantity_return, 0)
) AS net_units_sold
FROM ps_order_detail od
INNER JOIN ps_orders o ON o.id_order = od.id_order
WHERE o.valid = 1
AND o.id_shop = 1
AND od.product_id = 123
GROUP BY od.product_id;
Prawdziwa automatyzacja powinna sprawdzić, które kolumny zwróconych lub zrefundowanych ilości istnieją w Twojej wersji PrestaShop, zanim uruchomi takie zapytanie. Dostarczony evaluator martwego stanu wykonuje taki świadomy wersji test kolumn dla własnej logiki ostatniej sprzedaży.
Trwałe zmiany cen bazowych to inne zadanie
Jeżeli dostawca podnosi koszty i chcesz, aby każdy produkt w kategorii od 1 sierpnia zdrożał o 8 procent, reguła cen katalogu jest złym narzędziem. Nie potrzebujesz tymczasowej warstwy rabatu. Potrzebujesz zaplanowanej zmiany zapisanej ceny bazowej.
Mass Price Updater 1.1.0 obsługuje to jako zaplanowane zadanie. W kodzie moduł tworzy wiersz w mprmasspriceupdate_job, czeka do run_at, a następnie przez cron aktualizuje pola cen w product i product_shop. Zanim zmieni wiersze cen, zapisuje dane rollbacku w mprmasspriceupdate_job_snapshot.
- Wybierz zakres: wszystkie produkty, kategoria, producent albo dostawca.
- Wybierz pole: cena bazowa albo cena hurtowa.
- Wybierz formułę: zwiększenie procentowe, zmniejszenie procentowe, zwiększenie kwotowe albo zmniejszenie kwotowe.
- Wyświetl podgląd produktów i nowych cen.
- Ustaw datę i godzinę harmonogramu.
- Pozwól cronowi uruchomić zadanie, a następnie użyj ekranu Zaplanowane zadania do sprawdzenia statusu i rollbacku.
Scheduled base-price job example
Module: mprmasspriceupdate 1.1.0
Scope: category
Scope ID: 12
Field: price
Formula action: increase_percent
Formula value: 8
Run at: 2026-08-01 00:05:00
Preview required before scheduling: yes
Rollback table: mprmasspriceupdate_job_snapshot

Automatyzacja martwego stanu wymaga więcej niż dat
Martwy stan magazynowy to nie tylko „przecenić produkt X między dwiema datami”. Reguła, o którą zwykle chodzi sprzedawcom, jest warunkowa:
IF product has no valid sale for 30 days
AND stock quantity is greater than 3
AND no active discount already applies
AND the final price stays above the floor
THEN apply a clearance discount
Natywny PrestaShop nie łączy tych kontroli za Ciebie. Smart Dynamic & Scheduled Discounts 1.1.0 dodaje automatyzację martwego stanu z rekordami reguł, rekordami zakresów, rekordami zastosowań, rekordami uruchomień i logami w tych tabelach:
mprdsd_automation_rule
mprdsd_automation_rule_scope
mprdsd_automation_application
mprdsd_automation_run
mprdsd_automation_log
Moduł nie zapisuje natywnych wierszy ps_specific_price dla tej automatyzacji i nie nadpisuje bazowych cen produktów. Generuje wewnętrzne cele kampanii, a rabat jest stosowany podczas obliczania ceny w PrestaShop przez actionProductPriceCalculation. Dzięki temu rollback jest czystszy: usunięcie wygenerowanych celów zatrzymuje automatyczny rabat bez próby odtwarzania natywnych cen.
Dead-stock rule example
Rule name: Warehouse clearance - slow movers
Active: yes
No Sale Days: 30
Stock Threshold: 3
Discount Type: Percentage
Discount Value: 15
Price Floor: Minimum margin percent
Floor Value: 20
Exclude Already Discounted Products: yes
Scope:
Include category: Clearance candidates
Exclude product: protected-margin SKU
Dry-run preview shows:
scanned
would discount
would expire
eligible
skipped
base price
discount
floor
final price
Dry-run writes: 0


Jak wygląda strona crona
Zadanie automatyzacji martwego stanu zarejestrowane przez Smart Dynamic & Scheduled Discounts to evaluate_dead_stock_automation, zaplanowane w module jako every:1800. Wspólny runner cron MPR wykonuje zadania, których czas nadszedł. Użyj punktu wejścia cron wygenerowanego w Twoim sklepie i przechowuj token prywatnie.
# Example MPR cron runner. Use the cron entry point generated in your shop.
*/5 * * * * php /var/www/html/modules/YOUR_MPR_CRON_MODULE/cron.php --token=YOUR_CRON_TOKEN --context=cron --max-tasks=20
# Registered task checked by the runner:
module=mprdynamicscheduleddiscounts
task_key=evaluate_dead_stock_automation
schedule=every:1800
Którą ścieżkę wybrać?
- Tymczasowy rabat na jeden produkt: użyj natywnych cen specyficznych.
- Tymczasowy rabat na kategorię lub segment katalogu: użyj natywnych reguł cen katalogu.
- Trwała masowa zmiana ceny bazowej: użyj Mass Price Updater albo innego kontrolowanego procesu edycji masowej z podglądem i danymi rollbacku.
- Przyszła trwała zmiana ceny bazowej: użyj zaplanowanych zadań w Mass Price Updater.
- Wyprzedaż martwego stanu na podstawie braku ostatniej sprzedaży i poziomu zapasu: użyj Smart Dynamic & Scheduled Discounts.
- Po sprzedaży N skumulowanych sztuk: traktuj to jako niestandardową automatyzację. To nie jest natywna funkcja PrestaShop i obecnie nie jest dostarczonym wyzwalaczem w tych modułach.
FAQ
Czy PrestaShop może natywnie planować zmiany cen?
Tak, dla tymczasowych rabatów. Użyj cen specyficznych dla jednego produktu i reguł cen katalogu dla grup produktów. Natywny PrestaShop nie daje takiego samego przepływu na jednym ekranie do planowania przyszłej trwałej masowej edycji cen bazowych.
Czy „od ilości” oznacza łączną liczbę sprzedanych sztuk?
Nie. W cenach specyficznych i regułach cen katalogu „od ilości” jest powiązane z ilością w aktualnym koszyku albo pozycji zamówienia. To nie jest historyczny licznik sprzedaży.
Czy mogę zaplanować rabat kategorii bez modułu?
Tak. Użyj reguły cen katalogu z zakresem dat i warunkiem kategorii. To natywna ścieżka dla tymczasowego rabatu kategorii.
Czy PrestaShop może automatycznie przeceniać martwy stan magazynowy?
Nie natywnie. Reguła martwego stanu wymaga historii zamówień, ilości na stanie, zakresu, kontroli dolnego progu ceny, podglądu, crona i wygasania. Smart Dynamic & Scheduled Discounts dodaje tę automatyzację.
Czy Smart Dynamic & Scheduled Discounts zmienia moje ceny bazowe?
Nie dla opisanej tutaj automatyzacji martwego stanu. Rabat jest stosowany w czasie działania przez obliczanie ceny w PrestaShop i wygenerowane wewnętrzne cele kampanii. Ta automatyzacja nie zapisuje natywnych cen specyficznych ani nie nadpisuje bazowych cen produktów.
Którego modułu użyć do trwałych zmian cen bazowych?
Użyj Mass Price Updater, gdy chcesz zmienić zapisane ceny bazowe albo hurtowe za pomocą formuły, zobaczyć objęte produkty w podglądzie, zaplanować zadanie i zachować migawki rollbacku.
Komentarze
Brak komentarzy. Bądź pierwszy!
Bądź pierwszy: zadaj pytanie albo podziel się przydatną opinią.
Dodaj komentarz
Dodaj pytanie, szczegół montażu albo opinię, która może pomóc innemu czytelnikowi.