Getting ready for Teatro.io stage server
Merge pull request #5067 from semenyukdmitriy/teatro_stage

Getting ready for Teatro.io stage server
Validate uniqueness of order numbers... Why was this FIXME never fixed until now... Fixes #5102
Add `Spree::Promotion#products` back.

Currently used in the frontend.

Closes #5071
Add mail_from_address field to general settings page

Closes #5047
Associate a user’s shipping and billing addresses with their order when checking out
Fixes issue that caused admin users to get unassociated from an order if a user_id parameter was not provided.

With these changes, when a user_id is provided it will either associate the provided user_id to an order if the value is not nil, or disassociate the admin user from the order if the value is nil. When a user_id is not provided, the order will stay associated with the admin user.
Add missing check from original implementation
Associate default user address in pre-transition callback

Two advantages:

1) Centralizes this logic, as we want this to happen whether you create
an order from frontend, backend or API.

2) Waits until the last possible moment to assign an address and will
thus get the most recent default address, rather than the one at the
time the cart was created.
Move all the way to callbacks