An open source eCommerce platform giving you full control and customizability. Modular and API-first. Build any eCommerce solution that your business requires. Developed by @vendo-dev
OTHER License
Bot releases are hidden (Show)
Published by damianlegawiec almost 5 years ago
This patch release contains bug fixes backported from the master branch. We'd like to thank all the contributors who made this happen 👍
Published by damianlegawiec almost 5 years ago
Published by damianlegawiec almost 5 years ago
This patch release contains bug fixes backported from the master branch. We'd like to thank all the contributors who made this happen 👍
Published by damianlegawiec about 5 years ago
Spree 4.0 is fully compatible with Rails 6.0 and the new default Zeitwerk code autoloader.
We've migrated both the default Spree frontend and Admin Panel from Bootstrap 3 to Bootstrap 4.2. This update brings all of the new features and fixes introduced in Bootstrap 4, 4.1 and 4.2. Accessibility and RWD were also improved in the process.
Besides the Spree Frontend and Admin Panel we've also upgraded all extensions that required fixes, that is:
If you use any of those extensions please update them along with the Spree update.
Previously for multiple addresses support you had to use the Spree Address Book extension. We've decided that this was an inconsistency (user account already supported multiple credit cards) and moved this code into the core Spree and improved it.
Thanks to this signed in customers can manage multiple addresses in the Checkout and Account for both Shipping and Billing.
To support schema.org we've replaced the old Microdata code with the new recommended JSON-LD format. This will make your store more future proof and improve SEO in the coming months.
gem 'spree', '~> 4.0'
gem 'spree_auth_devise', '~> 4.0'
gem 'spree_gateway', '~> 3.6'
bundle install
rails g spree:install --user_class=Spree::User
rails g spree:auth:install
rails g spree_gateway:install
Official Spree 3.7 to 4.0 upgrade guide
Please review each of the noteworthy changes to ensure your customizations or extensions are not affected. If you are affected by a change and have any suggestions please submit a PR to help the next person!
Added presence and uniqueness validation for Country#iso
and Country#iso3
attributes
Added additional default zones (Asia, South America, Middle East)
Fixed potential XSS on Product Page
Added ability to set time parts of a promotion period
Use API v2 for country state and zip in the Checkout address form
Added id to currency & security card divs in Admin Panel General Settings for easier override
Added .cache
class in Admin Panel General Settings for easier override
Added Order#valid_promotions
and Order#valid_promotion_ids
methods
Updated factory_bot
to 5.0
Updated cancancan
to 3.0
Updated Capybara
to 3.24
Updated rspec-rails
to 4.0
Updated ransack
to 3.2.0
Moved ProductScopes
into a Concern
Deprecated TestingSupport::ControllerRequests
methods like spree_get
, spree_post
etc
Removed deprecated OrderContents
Removed deprecated Address#iso_name
method
Removed deprecated Adjustment#open
and Adjustment#closed
scopes
Removed deprecated BaseHelper#variant_options
method
Removed deprecated Order#set_currency
method
Removed deprecated Order#register_line_item_comparison_hook
method
Removed deprecated Order#guest_token
method
Removed deprecated Address#same_as
method
Removed deprecated hash case in Order#create_line_items_from_params
Removed deprecated Order#line_item_options_match
Removed deprecated OrdersController#populate
and OrdersController#populate_redirect
actions
Removed deprecated RespondWith
module
Replaced Spree::ProductScopes
with a concern
Replaced deprecated chromedriver-helper
with webdrivers
gem
Replaced ControllerRequests#spree_
methods with standard get/post/put/etc
Dropped acts-as-taggable-on
dependency and tag support. This will be later moved into an extension after acts-as-taggable-on
will fully support Rails 6.0
Dropped Paperclip
support
Dropped deface
dependency
Dropped versioncake
dependency
Dropped rspec-collection_matchers
dependency
Dropped rspec-its
dependency
You can view the full changes using Github Compare.
Published by damianlegawiec about 5 years ago
Published by damianlegawiec about 5 years ago
This patch release contains bug fixes backported from master to allow smoother Spree 4 migration process (#9545 and #9527 issues). We'd like to thank all the contributors who made this happen 👍
Published by damianlegawiec about 5 years ago
This patch release contains bug fixes backported from master. We'd like to thank all the contributors who made this happen 👍
filter[]
https://github.com/spree/spree/issues/9538 https://github.com/spree/spree/pull/9539
Published by damianlegawiec about 5 years ago
Published by damianlegawiec about 5 years ago
Published by damianlegawiec about 5 years ago
This patch release contains bug fixes backported from master. We'd like to thank all the contributors who made this happen 👍
coupon_code
parameter is blankPublished by damianlegawiec over 5 years ago
This patch release contains bug fixes backported from master. We'd like to thank all the contributors who made this happen 👍
chromedriver-helper
with webdrivers
gem for integration testing https://github.com/spree/spree/commit/76b2517f2a44cabd51b67b84182b6a748c6a342a
Published by damianlegawiec over 5 years ago
This patch release contains bug fixes backported from master. We'd like to thank all the contributors who made this happen 👍
show_deleted
and show_discontinued
filters to API v2 Products endpoint https://github.com/spree/spree/commit/3e8bc1bc412b0d774197832e761daab150e3a766 https://github.com/spree/spree/commit/e4a86146665644d9a5c4982825abca6451c34fc2 https://github.com/spree/spree/commit/7772737518036775aae48aa9c9fc27186dd0d10f
coupon_code
parameter (removes first coupon code based promotion from the Cart)Published by damianlegawiec over 5 years ago
This patch release contains bug fixes backported from master. We'd like to thank all the contributors who made this happen 👍
ffaker
to ~> 2.9
https://github.com/spree/spree/commit/eb49f12f3b8a39be8936c577299536098f75431f
Published by damianlegawiec over 5 years ago
3.7 release is our last 3.x line release bridging the gap between 3.x and Spree 4.0. This is a big release packed with several amazing features and a huge number of bug fixes (over 700 commits by 17 contributors!). Upgrading to 3.7 guarantees a smooth and easy migration to Spree 4.0 (April 2019 with Rails 6.0 support).
Spree 3.7 requires Rails 5.2.2 and Ruby 2.3.3 (or higher).
We've worked hard over the last few months to deliver a completely new, easy to work with and lightweight REST API for building amazing customer interfaces with modern JavaScript libraries (React, Vue, Angular) and for native mobile apps. New Storefront API v2 is fast, easy to use and extend. It's also well documented in OpenAPI 3.0 (Swagger) format which you can import into Postman app.
New API is based on JSON API spec and uses blazing fast Netflix fast_json_api serializer library. Authentication is based on Oauth using doorkeeper library. Besides that there are no additional dependencies making it lightweight and future-proof.
Storefront API v2 consists of:
All of the endpoints support JSON API's Sparse Fieldsets to fix usual Over-Fetching issues and Related Resources to reduce the number of API queries you need to perform.
While building the API v2 we've also refactored a huge portion of Spree internals by introducing modular Service Oriented Architecture to the codebase.
We're in the process of moving domain-specific code from models to Service Objects
with a well-defined scope and predictable return values. All service objects include Service Module which unifies how those classes handle arguments and what they return.
Also, we're moving away from ransack library by introducing Finders
and Sorters
classes for simpler fetching resources and collections.
This makes Spree codebase easier to read and learn. It also makes any customizations way easier. At the same time, public APIs won't change a lot as providing backward compatibility is one of our top priorities.
We're introducing a new painless way of customizing Spree without the need of decorators. With Dependencies you can easily replace parts of Spree internals with your custom classes. You can replace Services, Abilities and Serializers. More will come in the future. We hope using Dependencies will remove the need for creating decorators at all!
CoffeeScript a few years back ago was a really great JavaScript enhancement. Nowadays with ES6 and TypeScript around it became obsolete. That's why we've converted all of the CoffeeScript assets in Spree and extensions to plain JavaScript and removed CoffeeScript dependency.
A lot of merchants were using Spree with MySQL for years now, but development of the platform was mainly focused on PostgreSQL support. We've changed that and all of our CI builds are tested and verified against both PostgreSQL and MySQL. We've also fixed all MySQL-related bugs.
gem 'spree', '~> 3.7.0'
gem 'spree_auth_devise', '~> 3.5'
gem 'spree_gateway', '~> 3.4'
bundle install
rails g spree:install --user_class=Spree::User
rails g spree:auth:install
rails g spree_gateway:install
Spree 3.6 to 3.7 upgrade guide
Please review each of the noteworthy changes to ensure your customizations or extensions are not affected. If you are affected by a change, and have any suggestions please submit a PR to help the next person!
Dropped support for Ruby 2.2
Support multiple currencies for Store Credits
management in Admin Panel
Added information if Product is backorderable on Product page
Improved OmniChannel support in the Admin Panel
Improved error handling for XHR requests in the Admin Panel
Improved Admin Panel Variant autocomplete
Order
is now associated with Store
, the presence of Store
is required for validation
Order
now has to have currency
value set
Made CreditCard
deleted softly by default
Payment source
needs to be present (validation can be turned off via source_required?
in PaymentMethod
)
Added StockLocation#name
unique validation
Added FulfilmentChanger
class
Extended OrderPromotion
model
Added ShippingRate#final_price
method
Added Shipment#free?
method
Added Product#default_variant
and Product#default_variant_id
methods
Delegated iso
and iso_name
in Address
model to Country
Replaced jquery.cookie
with js.cookie
Fixed deprecation warning: BigDecimal.new() is deprecated
Fixed displaying currency in Admin Panel
-> Return Authorizations
Fixed all deprecations of Ruby Money 6.13+
Fallback to Order#currency
if there's no currency set for Adjustment
Renamed Order#guest_token
to Order#token
Renamed Admin::GeneralSettingsHelper
to Admin::CurrencyHelper
Renamed TaxonIcon
to TaxonImage
Deprecated OrderContents
and replaced with several Cart
services (eg. Cart::AddItem
)
Deprecated Order#add_store_credit_payments
in favor of Checkout::AddStoreCredit
service
Deprecated Order#remove_store_credit_payments
in favor of Checkout::RemoveStoreCredit
service
Deprecated OrdersController#populate
and OrdersController#populate_redirect
Deprecated Address#same_as?
in favor of Address#==
Deprecated Order#add register_line_item_comparison_hook
(please use Rails.application.config.spree.line_item_comparison_hooks << hook
instead)
Deprecated ControllerHelpers::RespondWith
Deprecated BaseHelper#variant_options
Deprecated Address#iso_name
, please use Address#country_iso_name
Removed previously deprecated Spree::Core::EnvironmentExtension
Removed previously deprecated ControllerHelpers::Common#render_404
Removed previously deprecated EmailValidator
Removed previously deprecated NavigationHelper#icon
Removed previously deprecated FrontendHelper#breadcrums
Removed Product#distinct_by_product_ids
Bumped highline
dependency to 2.0.x
Bumped paperclip
dependency to 6.1.x
Bumped bootstrap-sass
to 3.4.x
You can view the full changes using Github Compare.
Published by damianlegawiec over 5 years ago
Published by damianlegawiec over 5 years ago
5.2
to fix CVE-2017-0889 SSRF
vulnerabilityPublished by damianlegawiec over 5 years ago
5.2
to fix CVE-2017-0889 SSRF
vulnerabilityPublished by damianlegawiec over 5 years ago
Published by damianlegawiec almost 6 years ago
3.7 release is our last 3.x line release bridging the gap between 3.x and Spree 4.0. This is a big release packed with several amazing features and a huge number of bug fixes (over 700 commits by 17 contributors!). Upgrading to 3.7 guarantees a smooth and easy migration to Spree 4.0 (April 2019 with Rails 6.0 support).
Spree 3.7 requires Rails 5.2.2 and Ruby 2.3.3 (or higher).
We've worked hard over the last few months to deliver a completely new, easy to work with and lightweight REST API for building amazing customer interfaces with modern JavaScript libraries (React, Vue, Angular) and for native mobile apps. New Storefront API v2 is fast, easy to use and extend. It's also well documented in OpenAPI 3.0 (Swagger) format which you can import into Postman app.
New API is based on JSON API spec and uses blazing fast Netflix fast_json_api serializer library. Authentication is based on Oauth using doorkeeper library. Besides that there are no additional dependencies making it lightweight and future-proof.
Storefront API v2 consists of:
All of the endpoints support JSON API's Sparse Fieldsets to fix usual Over-Fetching issues and Related Resources to reduce the number of API queries you need to perform.
While building the API v2 we've also refactored a huge portion of Spree internals by introducing modular Service Oriented Architecture to the codebase.
We're in the process of moving domain-specific code from models to Service Objects
with a well-defined scope and predictable return values. All service objects include Service Module which unifies how those classes handle arguments and what they return.
Also, we're moving away from ransack library by introducing Finders
and Sorters
classes for simpler fetching resources and collections.
This makes Spree codebase easier to read and learn. It also makes any customizations way easier. At the same time, public APIs won't change a lot as providing backward compatibility is one of our top priorities.
CoffeeScript a few years back ago was a really great JavaScript enhancement. Nowadays with ES6 and TypeScript around it became obsolete. That's why we've converted all of the CoffeeScript assets in Spree and extensions to plain JavaScript and removed CoffeeScript dependency.
A lot of merchants were using Spree with MySQL for years now, but development of the platform was mainly focused on PostgreSQL support. We've changed that and all of our CI builds are tested and verified against both PostgreSQL and MySQL. We've also fixed all MySQL-related bugs.
gem 'spree', '~> 3.7.0.rc1'
gem 'spree_auth_devise', '~> 3.4'
gem 'spree_gateway', '~> 3.4'
bundle install
rails g spree:install --user_class=Spree::User
rails g spree:auth:install
rails g spree_gateway:install
Spree 3.6 to 3.7 upgrade guide
Please review each of the noteworthy changes to ensure your customizations or extensions are not affected. If you are affected by a change, and have any suggestions please submit a PR to help the next person!
Dropped support for Ruby 2.2
Support multiple currencies for Store Credits
management in Admin Panel
Added information if Product is backorderable on Product page
Improved OmniChannel support in the Admin Panel
Improved error handling for XHR requests in the Admin Panel
Improved Admin Panel Variant autocomplete
Order
is now associated with Store
, the presence of Store
is required for validation
Order
now has to have currency
value set
Made CreditCard
deleted softly by default
Payment source
needs to be present (validation can be turned off via source_required?
in PaymentMethod
)
Added StockLocation#name
unique validation
Added FulfilmentChanger
class
Extended OrderPromotion
model
Added ShippingRate#final_price
method
Added Shipment#free?
method
Added Product#default_variant
and Product#default_variant_id
methods
Replaced jquery.cookie
with js.cookie
Fixed deprecation warning: BigDecimal.new() is deprecated
Fixed displaying currency in Admin Panel
-> Return Authorizations
Fixed all deprecations of Ruby Money 6.13+
Fallback to Order#currency
if there's no currency set for Adjustment
Renamed Order#guest_token
to Order#token
Renamed Admin::GeneralSettingsHelper
to Admin::CurrencyHelper
Renamed TaxonIcon
to TaxonImage
Deprecated OrderContents
and replaced with several Cart
services (eg. Cart::AddItem
)
Deprecated Order#add_store_credit_payments
in favor of Checkout::AddStoreCredit
service
Deprecated Order#remove_store_credit_payments
in favor of Checkout::RemoveStoreCredit
service
Deprecated OrdersController#populate
and OrdersController#populate_redirect
Deprecated Address#same_as?
in favor of Address#==
Deprecated Order#add register_line_item_comparison_hook
(please use Rails.application.config.spree.line_item_comparison_hooks << hook
instead)
Deprecated ControllerHelpers::RespondWith
Deprecated BaseHelper#variant_options
Removed previously deprecated Spree::Core::EnvironmentExtension
Removed previously deprecated ControllerHelpers::Common#render_404
Removed previously deprecated EmailValidator
Removed previously deprecated NavigationHelper#icon
Removed previously deprecated FrontendHelper#breadcrums
Removed Product#distinct_by_product_ids
Bumped highline
dependency to 2.0.x
Bumped paperclip
dependency to 6.1.x
Bumped bootstrap-sass
to 3.4.x
You can view the full changes using Github Compare.
Published by damianlegawiec almost 6 years ago