CI-239: fix placing multiple orders #41
Merged
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.
When creating multiple orders in a row (e.g. setting up several order fixtures for mass action testing), then
\Magento\Quote\Model\QuoteAddressValidator::doValidate
fails with an "Invalid customer address id" exception if the order gets createdwithCart
, because the address has the customer ID of the previous order assigned. I did not get to the bottom of why exactly this happens. Creating the cart builder before logging the customer in is part of the issue.The workaround is to have the order builder log the customer out after the order was placed. It is the order builder which initially logged the customer in, so it is just appropriate to reverse that / clean up state there.