Skip to main content
Namespace: cartpresets/v1.
There are no public endpoints. Every route requires the manage_woocommerce capability and a valid nonce. These exist to serve the admin panel, not to be a storefront API — a preset reaches a customer through its link, not through REST.
The capability is filterable through cartpresets_admin_capability, which is safety-clamped.

Presets

Listing parameters

GET /presets accepts search, status, sort, dir, page, per_page, and filters, plus the pre-builder arguments added_after, added_before, price_op, price, price_max, orders_op, orders, orders_max, product, stock_problem and has_coupon. The full grammar is documented under cartpresets_list_args, which receives exactly these arguments after they are resolved.

Settings

Supporting routes

Reporting

Licensing

A licence key travels in and never back out. GET /licence returns status, plan, expiry and seat counts — not the key.

Absent, not refusing

On the free build the Pro routes are not registered at all. A request to /sales or /presets/import returns a plain 404, exactly like a route that never existed. That is deliberate. A route that exists and refuses tells an attacker the feature is there; a route that does not exist tells them nothing, and it means the free build ships no premium code to refuse with.

Adding your own routes

Register on cartpresets_register_rest_routes, which fires once the plugin’s own controllers are up. That is the same seam Pro uses, so nothing about the premium routes is privileged.
Supply your own permission_callback. Registering inside this action does not inherit the plugin’s capability check.