A rule that trigger another stock.move based on a stock.move.
Example: When products arrive in “Input” location, you want to move them to “stock” directly with a push rule (this example intentionally simplifies the flow by not taking eventual quality checks into account)
So, when a stock.move “Supplier → Input” is confirmed, this rule will create another stock.move: “Input → Stock”. It allows 3 mode: automatic (the second operation will be validated automatically), manual (the second operation must be validated manually), manual no step added. (the destination of the first move is replaced instead of creating another stock.move.
Push rules can be defined on products or locations (or combinations of both).
When several push rules are triggered at the same time (by action_confirm on stock.picking), we must be sure that all chained moves that have the same destination location are grouped in the same picking. (according to group concept explained later)
This concept already exists in OpenERP.