Category and brand promotions (catalogue price rules)

ps_manage_catalog_price_rules

Write · preview + approveCommerce · switch, until turned offTellMyShop Pro onlySaves: Commerce switch (until turned off)Visible right after install

Puts one discount on whole categories or brands at once, and it also covers products you add later.

TellMyShop Free: No. This tool is only in TellMyShop Pro. TellMyShop Free has only ready reports that read your store.

Ask Claude

„Black Friday: 20% off all wellies and raincoats from Friday 00:00 to Monday 23:59.”

Example preview

New rule "Black Friday – wellies and raincoats -20%": categories 31 Wellies, 32 Raincoats (with subcategories), -20%, 2026-11-27 00:00 to 2026-11-30 23:59, all customer groups. 86 products. Example: Wellies Dots 149.00 -> 119.20 PLN gross. Warning: 4 products already have a promotion, PrestaShop applies only one.

Technical details

A promotion for many products at once: whole categories (with subcategories), manufacturers, feature values, as a PrestaShop catalogue price rule. Use it instead of ps_manage_specific_prices when more than a few products are involved: one rule, and PrestaShop applies it to products added later too. action=list shows rules with conditions and the number of products covered; action=add creates a rule; action=delete removes one (rule_id). Conditions: the product must be in ANY of category_ids AND (if given) have ANY of manufacturer_ids AND (if given) any of feature_value_ids. Discounts don't add up: when a product has several promotions PrestaShop picks one (the preview warns). The preview shows the number of products and sample prices before and after.

Parameters

NameTypeRequiredDescription
actionenum: list | add | deleteyeslist | add | delete.
shop_idintegernoShop ID in a multistore installation. Defaults to the shop in the connector address. IDs are listed by ps_get_shop_info.
langstringnoISO language code, for example pl or en. Defaults to the shop's default language.
namestringwhen: action=addadd: rule name (shown in the back office, for example "Black Friday – wellies -20%"). Max 255 characters.
category_idsarray of integernoadd: categories (IDs from ps_get_category_tree). Max 50 items.
include_subcategoriesbooleannoadd: also cover subcategories (on its own PrestaShop counts only products assigned directly to the category). Default true.
manufacturer_idsarray of integernoadd: manufacturers (brands). Max 50 items.
feature_value_idsarray of integernoadd: feature values (IDs from ps_list_features). Max 50 items.
whole_shopbooleannoadd: a rule for ALL products of the shop (no conditions), only on explicit request. Default false.
reduction_typeenum: percentage | amountwhen: action=addadd: percentage or amount discount.
reductionnumberwhen: action=addadd: a percentage (20 = 20%) or an amount in the shop currency. Max 1,000,000.
tax_includedbooleannoadd: an amount discount applies to the gross price (default) or the net price.
date_fromstring (YYYY-MM-DD)noadd: start (default now), YYYY-MM-DD.
date_tostring (YYYY-MM-DD)noadd: end (inclusive). No date = no end, YYYY-MM-DD.
time_fromstring (HH:MM)noadd: start time (HH:MM). Default 00:00.
time_tostring (HH:MM)noadd: end time (HH:MM). Default 23:59.
customer_group_idintegernoadd: only for a customer group (0 = all). Default 0.
from_quantityintegernoadd: from how many units of the product in the cart. Default 1.
allow_big_changebooleannoadd: allow a discount above 90% (after the user confirmed). Default false.
rule_idintegerwhen: action=deletedelete: rule ID from action=list.
only_currentbooleannolist: only running and scheduled rules (no finished ones). Default false.
limitintegernoMaximum rows (default 50, max 200).
confirmbooleannofalse (default) returns a preview and saves nothing. true executes, only after the user approved the preview, together with change_token.
change_tokenstringwhen: confirm=trueToken from the preview. Required with confirm=true. Valid 30 minutes, single use, bound to the previewed arguments and data state.

Limits

Up to 50 categories, manufacturers and feature values each. Discount above 50%: warning; above 90%: needs allow_big_change. whole_shop only on explicit request. List max 200 rows (default 50). It is a write tool, so without an active licence it is hidden, list included; add and delete need the Commerce switch. Revertible with ps_revert_change.

What you see before anything is saved

Claude first calls the tool without confirming it. The module returns a preview (current and new values) and a single-use token valid for 30 minutes. Claude shows you the preview and saves the change only after your yes.

Related tools

Use cases with this tool

Last updated: 2026-10-11