RECEIPT / 003

Automatic does not mean uncontrolled.

PerkRule only auto-removes coupon mutations it can prove it applied automatically. Configuration alone does not grant mutation ownership.

Why it matters

A coupon can be configured for Auto Apply and still be entered manually by a customer. Treating configuration as ownership would let automation undo deliberate customer actions.

Implementation

  1. Auto Apply is an application mode for a native WooCommerce coupon, not a synthetic discount type.
  2. Application and removal use WooCommerce public cart APIs.
  3. Successful automatic mutations are recorded separately from coupon configuration.
  4. Manual coupons remain protected, including a coupon that was previously auto-applied, removed and then manually re-applied.
  5. Candidate discovery is bounded; capacity overflow fails with zero partial automatic mutation.

Evidence

  • Runtime tests cover automatic apply/remove behavior and protection of unrelated manual coupons.
  • Native individual-use behavior remains a hard constraint rather than being weakened for automation.
  • A request-local recursion guard is always released through a finally path to avoid persistent request state after failures.

Known boundary

Visual-builder preview environments and full Store API request-path testing remain separate compatibility gates.