Don't fill backorders on incomplete orders (e.g. in abandoned in payment state) #4056
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently the scope used to find inventory doesn't scope to those belonging to orders that are actually completed, so abandoned carts can have the inventory_units filled prior to real orders.
Also, I've changed the ordering to use the order's completed_at timestamp rather that the inventory unit's created_at timestamp. I believe the former is preferable in order to ensure that backorders are filled on a first come, first served basis. Otherwise people who had the item in their cart but didn't complete the order until much later could have their backorders filled prior to those who completed their orders earlier.
This should probably be applied to master and 2-1-stable as well but doesn't yet merge cleanly.