NEW
Notice something different? Meet the new Solidus brand!

Version 1.1.0

JH

John Hawthorn

25 Nov 2015 - 4 mins read

Cover image of Version 1.1.0 post

github rubygems

Just before Black Friday, a new minor release of Solidus. As this is a minor release, we've done our best to keep compatibility and have added deprecation notices wherever possible.

With this version we've pulled in a few migrations and schema changes from spree 3.0, which should make it possible to migrate a spree 3.0 store directly to solidus.

There have been schema changes as well as some changes to indexes and foreign keys. You may want to perform a PostgreSQL vacuumdb --analyze or a MySQL ANALYZE after migrations for best performance.

User Address Books

  • Address is now immutable (Address#readonly? is always true). This allows us to minimize cloning addresses, while still ensuring historical data is preserved.

  • UserAddressBook module added to manage a user's multiple addresses

  • GET /admin/search/users searches all of a user's addresses, not just current bill and ship addresss

Schema changes

  • Adjustment state column has been replaced with a finalized boolean column. This includes a migration replacing the column, which may cause some downtime for large stores.

  • Some HABTM associations have been converted to HMT associations. Referential integrity has also been added as well. Specifically:

    • Prototype <=> Taxon
    • ShippingMethod <=> Zone
    • Product <=> PromotionRule
  • An apply_automatically field was added to promotions to distinguish coupons needing a code or path to be applied from those which were applied automatically to any cart matching the ruleset. This significantly improves performance on stores with a large number of promotions.

  • The schema and migrations have been updated to allow a clean data migration from spree 3.0

Permissions

  • Support read-only access to promotions

  • Hide api keys from non-superuser admins

  • Disable modification of roles from non-superuser admins

Misc

  • Handlebars templates in the admin are now stored in assets and precompiled with the rest of the admin js.

  • Change all mails deliveries to #deliver_later. Emails will now be sent in the background if you configure active_job to do so. See the rails guides for more information.

  • Cartons deliveries now send one email per-order, instead of one per-carton. This allows setting @order and @store correctly for the template. For most stores, which don't combine multiple orders into a carton, this will behave the same.

  • Improvements and fixes to the granular permission system introduced in solidus 1.0

  • Added inventory_cache_threshold configuration option, which causes cache to be invalidated when stock levels rise or fall below a specified level.

  • Added OrderUpdateAttributes class to replace the Spree::Order#update_from_params method

  • Added PaymentCreate class for creating payments. This allowed removing after_initialize filters previously responsible for creating or associating a payment source.

  • Fixed :image factory

  • Order#outstanding_balance now considers refunds in its calculation.

  • Fix select2 product selector ajax pagination in admin.

Removals

  • Removed map_nested_attributes_keys from the Api::BaseController. This method was only used in one place and was oblivious of strong_params.

  • Deprecate delegate_belongs_to in favour of rails' standard belongs_to