This ensures the cache is up-to-date when a user accesses the shopfront
and we use the appropriate stock levels.
Besides, this makes the (very annoying) ProductsCacheIntegrityCheckerJob
succeed and thus Bugsnag won't be flooded with failures anymore.
As for the implementation of this. I'm not happy at all. It's disgusting
to use `class_eval` for this but it's a good trade-off to deliver this
fix ASAP. Katuma's been experiencing this error far too long
🙈. I was working on a better implementation that required
a bit of refactoring but it was taking too much time. I'll open another
PR with it soon.
This will allow us to see the difference between the cache entry and the
actual shopfront. Otherwise, there is no way to see what wasn't
refreshed in the cache.
This is required because when the default stock location is created, the backorderable_default column doesnt exist and when this column is created, the initial default is true. This is why we need to force it to false here. This column is the default value for on_demand which must be false.
This method has become only a small part of the logic for updating the
order's ship address. This no longer follows the method naming
convention within OrderSyncer where update_*_for describes almost the
complete logic for updating the association.
This is renamed in preparation for extraction of the complete update
logic for ship_address. The new method will be named
update_ship_address_for.
The way that the bill contact details and distributor address are set
for pickup orders has changed. At this point, after before_save_hook is
called, the bill contact details have already been set as well.
This still achieves a logic issue before the Spree upgrade, where
switching from pick-up to delivery affects whether simultaneous changes
to shipping address are ignored or not.
This behaviour can be fixed in a separate PR.
Sets the "use_s3" (for images) option based on presence of `s3_images_bucket` from ofn-install instead of presence of s3 keys, for instances that use s3 for backups but not for images.
This solves the error showed below when executed `bundle exec rake
db2fog:backup RAILS_ENV=staging` on Katuma staging
```
Excon::Error::BadRequest: Expected(200) <=> Actual(400 Bad Request)
excon.error.response
:body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AuthorizationHeaderMalformed</Code><Message>The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'eu-central-1'</Message><Region>eu-central-1</Region><RequestId>3DE2763883FC601D</RequestId><HostId>1E6UapnblBqVZM0SeeLrdPNDd+VaQ0nxCWwrQ9mi8HjRo2xevAUwtSq5V3fxhsj4Cj9ynnDroco=</HostId></Error>"
```
This ensures that Db2fog always picks up the latest value of the S3_*
env vars and not the one that was persisted last time. Now you can do
things like `S3_BUCKET=xxx bundle exec rake db2fog:backup` if you had
to.