Variable products are where quantity plugins go to break. If you have ever set a “group of 6” rule and watched it snap back to 1 the moment a customer picks a size, you have met the category’s defining bug.
The usual failure modes
| Symptom | Cause |
|---|---|
| Step resets to 1 on variation change | Rules read from the parent product only; variation state is ignored client-side. |
| Variation rule not enforced in the cart | Server-side validation checks the parent, not the chosen variation. |
| Wrong price tier applied | Tier payload not sent per variation via woocommerce_available_variation. |
| Quantity field not updating | No listener on the found_variation event. |
What correct looks like
Each variation carries its own min / max / step / default and its own price tiers. On found_variation the quantity field re-applies the selected variation’s rule. On the server, validation and cart totals use the variation, not the parent. Nothing “resets”.
This is a correctness problem, not a settings problem — you cannot configure your way out of a plugin that reads the wrong object.