Shoppe Change Log

All notable changes to this project will be documented in this file.

The full commit history can be found on GitHub.


  • ...

1.1.2 - 2015-12-02

  • Added missing es-US translation (#258)
  • Added missing translation that failed to save categories (#261)
  • Fix bug with product variants (#262)
  • Fix issue with attachment uploader (#266)
  • Adjusted phone number regex (#276)
  • Added missing German translations (#280)
  • Fixed login_with_demo_mode typo (#281)
  • Fixed cut off payment button (#282)
  • Fixed products import (#285)
  • Update quantities on product import (#286)
  • Added German translations to Customer section (#287)
  • Improved Spanish translation (#289)
  • Added Russian translation (#295)
  • Fixed cost price German translation (#299)
  • Fixed seeds when run twice (#300)
  • Updated to Ruby 1.9 syntax (#304)

1.1.1 - 2015-08-09

  • Bug with defaultimagefile (#244)

1.1.0 - 2015-07-07

  • Bug with product category translations
  • Product category image uploads


  • Attachments (#211)
  • Added rake task to help with migration from nifty-attachments to Attachments
  • Fixed translation (#205)


  • Localisations / Translations for Products & Product Categories
  • Customers & Addresses (#167)


  • Fix to seeds
  • Product category hierarchy_array (#194)


  • German translations (#180)
  • Multiple product categories with nesting (#137)
  • Added refund callback to Payment model


  • Added Customers (#119)

  • Fixed creation of orders in admin interface

  • Updated gemspec for Rails 4.2.0 (#162)

  • Fixed issue where order callbacks weren't being executed on order accept! and reject! methods (#166)


  • Added items_sub_total method to Orders

  • Extracted text to locale files (#83)

  • Polish translations

  • Permalink Validations (#127)

  • Moved Order email actions to separate methods (#130)

  • Added index to all tables (#131)

  • Spanish translations (#135)

  • Fixed HAML render error & added support for decorators (#138)

  • Updated Nifty Dialog (#150)


  • Updates to the Gemfile to support Rails 4.1.

  • Fixes issues with local jump errors in ActiveRecord blocks

  • Renames the public scope on Shoppe::ProductAttribute to publicly_accessible and add deprecation warning for public.


  • Add an admin-side order form for adding new orders and editing existing orders

  • Adds Shoppe::NavigationManager which is used for managing sets of navigation within the Shoppe interface. This allows module developers to add their own when appropriate without needing to hack it into the view.


  • Only check that a delivery service is suitable if one has actually been selected. Ensures that some orders can have no delivery service associated.

  • Add country management to to the Shoppe UI.

  • Split the order show page into some partials for easier updates later.

  • If an order's total weight is 0, no delivery service is required.

  • The seeds file is now less specific and the delivery services & tax rates contained within are not scoped to any countries so always apply.

  • Catch Shoppe::Errors::PaymentDeclined errors when accepting and rejecting orders.


  • Changes uglifier version


  • Adds number_to_currency view helper which will use the correct currency as defined in the Shoppe settings.

  • Adds number_to_weight which accpets a number of kilogramts and returns the number with the appropriate 'kg' suffix.

  • Tax rates can choose whether to work with the delivery or billing address on the order

  • Order details can be editted through the Shoppe UI

  • Orders now have multiple payments associated with them which can be refunded as appropriate and module can hook into this as appropriate.

  • Shoppe::Order and Shoppe::Payment models now have exported booleans in their schema which module can use to record when an object has been exported to an external system. Shoppe does not enforce these and they are data-only attributes.

  • Shoppe::Order now has a invoice_number attribute which can be used by external systems to store the invoice number along with the order if one is created. This is displayed with the order details in the Shoppe UI.


  • Adds despatch notes to orders

  • Adds a default to product variants

  • Breaking change: Shoppe::Order#address has been split into Shoppe::Order#billing_address and Shoppe::Order#delivery_address.

  • Breaking change: all migrations have been collapsed. You will need to reset your database when upgrading to this version.

  • Breaking change: settings are now all stored in the database and set up using the Settings page within the Shoppe interface. There is no need for a shoppe.yml config file. If you have settings in such a file, they should be transferred to your database version on upgrade.

v0.0.15 - The break everything release

  • Breaking change: The Shoppe::OrderItem model no longer responds to product as part of a change to allow items other than products to be ordered. Order items will now respond to ordered_item which is a polymorphic association to any model which implements the Shoppe::OrderableItem protocol (see /lib/shoppe/orderableitem.rb). Base applications which work with this will need to be updated to use this new association name. Also, the `Shoppe::OrderItem.addproducthas been renamed toShoppe::OrderItem.add_item`.

  • Breaking change: Shoppe::Product#title has been renamed to Shoppe::Product#name as title was a stupid name for a product. Base application will need to use name to display the name of a product.

  • Breaking change: Shoppe::StockLevelAdjustment is now polymorphic rather than only beloning to a product. StockLevelAdjustment#product has been replaced with StockLevelAdjustment#item. This shouldn't require any adjustments to base applications unless they interact with the stock level adjustments model directly.

  • Moves stock level adjustments into their own polymorphic accessible controller.

  • Stock level adjustments are now managable from within a dialog (as well as without)

  • Add's product variants which products to have sub-products which can be purchased as normal products.

  • When accessing the name of an orderable item, you should use full_name rather than just name.

  • Adds a demo mode to allow for auto logins and no user editting


  • Fixes serious styling issue with the user form.


  • Orders have notes which can be viewed & editted through the Shoppe UI.
  • Adjustments to the design in the Shoppe UI.


  • Don't persist order item pricing until the order is confirmed. While an order is being built all prices will be calculated live from the parent product and these values will be persisted (in case of any future changes to the product) at the point of confirmation. This makes way for changes to the tax rates based on order itself to be introduced.


  • All countries are now stored in the database which will allow for delivery & tax rate decisions to be made as appropriate. There is now no need to use things like country_select in applications. Any existing order which has a country will have this data lost. A rake task method is provide to allow a default set of countries to be imported (rake shoppe:import_countries). There is currently no way to manage countries from the Shoppe interface.

  • Items with prices are now assigned to a Shoppe::TaxRate object rather than specifying a percentage on each item manually. This allows rates to be changed globally and allows us to change how tax should be charged based on other factors (country?).


  • Improved stock control so that a journal is kept of all stock movement in and out of the system. There is no need to make any changes to your application however all existing stock levels will be removed when upgrading to this version.