ProductChange: validates the change exists and is still pending, then sets it to declined with declined_by, declined_at, and declined_reason — the staged actions are never applied to the master product. Emits product-change.declined with { id }.
Usage
Input
Id of the product change to decline. Must exist and be in
pending status.Actor id recorded as the decliner on the change.
Vendor-facing reason stored on the change.
Arbitrary data forwarded to the
productChangeRejected hook.Result
Returns nothing; the change status is updated in place.
Hooks
Runs first with
{ input } — use it to block rejection.Runs after the decline with
{ id, additional_data }.