shoppe 0.0.14 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/assets/javascripts/shoppe/application.coffee +57 -1
- data/app/assets/javascripts/shoppe/mousetrap.js +9 -0
- data/app/assets/stylesheets/shoppe/application.scss +70 -59
- data/app/assets/stylesheets/shoppe/dialog.scss +10 -0
- data/app/assets/stylesheets/shoppe/sub.scss +15 -0
- data/app/controllers/shoppe/application_controller.rb +13 -1
- data/app/controllers/shoppe/attachments_controller.rb +10 -8
- data/app/controllers/shoppe/dashboard_controller.rb +6 -4
- data/app/controllers/shoppe/delivery_service_prices_controller.rb +33 -31
- data/app/controllers/shoppe/delivery_services_controller.rb +34 -32
- data/app/controllers/shoppe/orders_controller.rb +40 -38
- data/app/controllers/shoppe/product_categories_controller.rb +34 -32
- data/app/controllers/shoppe/products_controller.rb +32 -44
- data/app/controllers/shoppe/sessions_controller.rb +24 -22
- data/app/controllers/shoppe/stock_level_adjustments_controller.rb +40 -0
- data/app/controllers/shoppe/tax_rates_controller.rb +35 -33
- data/app/controllers/shoppe/users_controller.rb +40 -33
- data/app/controllers/shoppe/variants_controller.rb +50 -0
- data/app/helpers/shoppe/shoppe_helper.rb +2 -2
- data/app/mailers/shoppe/order_mailer.rb +20 -18
- data/app/models/shoppe/country.rb +1 -1
- data/app/models/shoppe/delivery_service.rb +17 -15
- data/app/models/shoppe/delivery_service_price.rb +18 -16
- data/app/models/shoppe/order.rb +293 -290
- data/app/models/shoppe/order_item.rb +115 -113
- data/app/models/shoppe/product.rb +76 -54
- data/app/models/shoppe/product/product_attributes.rb +12 -10
- data/app/models/shoppe/product/variants.rb +26 -0
- data/app/models/shoppe/product_attribute.rb +40 -38
- data/app/models/shoppe/product_category.rb +16 -14
- data/app/models/shoppe/stock_level_adjustment.rb +1 -2
- data/app/models/shoppe/tax_rate.rb +2 -2
- data/app/models/shoppe/user.rb +34 -32
- data/app/views/shoppe/orders/index.html.haml +3 -4
- data/app/views/shoppe/orders/show.html.haml +5 -5
- data/app/views/shoppe/products/_form.html.haml +28 -27
- data/app/views/shoppe/products/_table.html.haml +42 -0
- data/app/views/shoppe/products/edit.html.haml +2 -1
- data/app/views/shoppe/products/index.html.haml +1 -24
- data/app/views/shoppe/shared/error.html.haml +4 -0
- data/app/views/shoppe/{products/stock_levels.html.haml → stock_level_adjustments/index.html.haml} +12 -6
- data/app/views/shoppe/variants/form.html.haml +64 -0
- data/app/views/shoppe/variants/index.html.haml +33 -0
- data/config/routes.rb +2 -1
- data/config/shoppe.example.yml +16 -2
- data/db/migrate/20131022090919_refactor_order_items_to_allow_any_product.rb +6 -0
- data/db/migrate/20131022092904_rename_product_title_to_name.rb +5 -0
- data/db/migrate/20131022093538_stock_level_adjustments_should_be_polymorphic.rb +6 -0
- data/db/migrate/20131022135331_add_parent_id_to_products.rb +5 -0
- data/db/migrate/20131022145653_cost_price_should_be_default_to_zero.rb +9 -0
- data/db/seeds.rb +20 -20
- data/lib/shoppe.rb +2 -0
- data/lib/shoppe/errors/not_enough_stock.rb +1 -1
- data/lib/shoppe/errors/unorderable_item.rb +11 -0
- data/lib/shoppe/orderable_item.rb +39 -0
- data/lib/shoppe/version.rb +1 -1
- data/test/dummy/db/schema.rb +14 -11
- data/test/dummy/log/development.log +75 -0
- metadata +37 -5
| @@ -1085,3 +1085,78 @@ Migrating to AddNotesToOrders (20131021135208) | |
| 1085 1085 | 
             
              [1m[35mSQL (1.7ms)[0m  INSERT INTO `schema_migrations` (`version`) VALUES ('20131021135208')
         | 
| 1086 1086 | 
             
              [1m[36m (0.4ms)[0m  [1mCOMMIT[0m
         | 
| 1087 1087 | 
             
              [1m[35mActiveRecord::SchemaMigration Load (0.1ms)[0m  SELECT `schema_migrations`.* FROM `schema_migrations`
         | 
| 1088 | 
            +
              [1m[36mActiveRecord::SchemaMigration Load (11.5ms)[0m  [1mSELECT `schema_migrations`.* FROM `schema_migrations`[0m
         | 
| 1089 | 
            +
            Migrating to RefactorOrderItemsToAllowAnyProduct (20131022090919)
         | 
| 1090 | 
            +
              [1m[35m (69.6ms)[0m  ALTER TABLE `shoppe_order_items` CHANGE `product_id` `ordered_item_id` int(11) DEFAULT NULL
         | 
| 1091 | 
            +
              [1m[36m (28.9ms)[0m  [1mALTER TABLE `shoppe_order_items` ADD `ordered_item_type` varchar(255)[0m
         | 
| 1092 | 
            +
              [1m[35m (0.1ms)[0m  BEGIN
         | 
| 1093 | 
            +
              [1m[36mSQL (6.0ms)[0m  [1mINSERT INTO `schema_migrations` (`version`) VALUES ('20131022090919')[0m
         | 
| 1094 | 
            +
              [1m[35m (0.3ms)[0m  COMMIT
         | 
| 1095 | 
            +
              [1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m  [1mSELECT `schema_migrations`.* FROM `schema_migrations`[0m
         | 
| 1096 | 
            +
              [1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m  [1mSELECT `schema_migrations`.* FROM `schema_migrations`[0m
         | 
| 1097 | 
            +
            Migrating to RenameProductTitleToName (20131022092904)
         | 
| 1098 | 
            +
              [1m[35m (25.0ms)[0m  ALTER TABLE `shoppe_products` CHANGE `title` `name` varchar(255) DEFAULT NULL
         | 
| 1099 | 
            +
              [1m[36m (0.1ms)[0m  [1mBEGIN[0m
         | 
| 1100 | 
            +
              [1m[35mSQL (1.6ms)[0m  INSERT INTO `schema_migrations` (`version`) VALUES ('20131022092904')
         | 
| 1101 | 
            +
              [1m[36m (0.3ms)[0m  [1mCOMMIT[0m
         | 
| 1102 | 
            +
              [1m[35mActiveRecord::SchemaMigration Load (0.2ms)[0m  SELECT `schema_migrations`.* FROM `schema_migrations`
         | 
| 1103 | 
            +
              [1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m  [1mSELECT `schema_migrations`.* FROM `schema_migrations`[0m
         | 
| 1104 | 
            +
            Migrating to StockLevelAdjustmentsShouldBePolymorphic (20131022093538)
         | 
| 1105 | 
            +
              [1m[35m (25.5ms)[0m  ALTER TABLE `shoppe_stock_level_adjustments` CHANGE `product_id` `item_id` int(11) DEFAULT NULL
         | 
| 1106 | 
            +
              [1m[36m (20.0ms)[0m  [1mALTER TABLE `shoppe_stock_level_adjustments` ADD `item_type` varchar(255)[0m
         | 
| 1107 | 
            +
              [1m[35m (0.1ms)[0m  BEGIN
         | 
| 1108 | 
            +
              [1m[36mSQL (2.4ms)[0m  [1mINSERT INTO `schema_migrations` (`version`) VALUES ('20131022093538')[0m
         | 
| 1109 | 
            +
              [1m[35m (0.2ms)[0m  COMMIT
         | 
| 1110 | 
            +
              [1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m  [1mSELECT `schema_migrations`.* FROM `schema_migrations`[0m
         | 
| 1111 | 
            +
              [1m[36m (22.1ms)[0m  [1mDROP DATABASE IF EXISTS `shoppe_dummy`[0m
         | 
| 1112 | 
            +
              [1m[35m (21.4ms)[0m  DROP DATABASE IF EXISTS `shoppe_dummy_test`
         | 
| 1113 | 
            +
              [1m[36m (0.3ms)[0m  [1mCREATE DATABASE `shoppe_dummy` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`[0m
         | 
| 1114 | 
            +
              [1m[35m (0.3ms)[0m  CREATE DATABASE `shoppe_dummy_test` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`
         | 
| 1115 | 
            +
              [1m[36m (21.5ms)[0m  [1mCREATE TABLE `nifty_attachments` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `parent_id` int(11), `parent_type` varchar(255), `token` varchar(255), `digest` varchar(255), `role` varchar(255), `file_name` varchar(255), `file_type` varchar(255), `data` blob(16777215), `created_at` datetime, `updated_at` datetime) ENGINE=InnoDB[0m
         | 
| 1116 | 
            +
              [1m[35m (26.6ms)[0m  CREATE TABLE `nifty_key_value_store` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `parent_id` int(11), `parent_type` varchar(255), `group` varchar(255), `name` varchar(255), `value` varchar(255)) ENGINE=InnoDB
         | 
| 1117 | 
            +
              [1m[36m (13.8ms)[0m  [1mCREATE TABLE `shoppe_countries` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `name` varchar(255), `code2` varchar(255), `code3` varchar(255), `continent` varchar(255), `tld` varchar(255), `currency` varchar(255), `eu_member` tinyint(1) DEFAULT 0) ENGINE=InnoDB[0m
         | 
| 1118 | 
            +
              [1m[35m (21.7ms)[0m  CREATE TABLE `shoppe_delivery_service_prices` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `delivery_service_id` int(11), `code` varchar(255), `price` decimal(8,2), `tax_rate_id` int(11), `min_weight` decimal(8,2), `max_weight` decimal(8,2), `created_at` datetime, `updated_at` datetime, `cost_price` decimal(8,2), `country_ids` text) ENGINE=InnoDB
         | 
| 1119 | 
            +
              [1m[36m (15.8ms)[0m  [1mCREATE TABLE `shoppe_delivery_services` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `name` varchar(255), `code` varchar(255), `default` tinyint(1) DEFAULT 0, `active` tinyint(1) DEFAULT 1, `created_at` datetime, `updated_at` datetime, `courier` varchar(255), `tracking_url` varchar(255)) ENGINE=InnoDB[0m
         | 
| 1120 | 
            +
              [1m[35m (20.6ms)[0m  CREATE TABLE `shoppe_order_items` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `order_id` int(11), `ordered_item_id` int(11), `quantity` int(11) DEFAULT 1, `unit_price` decimal(8,2), `tax_amount` decimal(8,2), `tax_rate` decimal(8,2), `weight` decimal(8,3) DEFAULT 0.0, `created_at` datetime, `updated_at` datetime, `unit_cost_price` decimal(8,2), `ordered_item_type` varchar(255)) ENGINE=InnoDB
         | 
| 1121 | 
            +
              [1m[36m (14.4ms)[0m  [1mCREATE TABLE `shoppe_orders` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `token` varchar(255), `first_name` varchar(255), `last_name` varchar(255), `company` varchar(255), `address1` varchar(255), `address2` varchar(255), `address3` varchar(255), `address4` varchar(255), `postcode` varchar(255), `country_id` int(11), `email_address` varchar(255), `phone_number` varchar(255), `status` varchar(255), `received_at` datetime, `accepted_at` datetime, `shipped_at` datetime, `created_at` datetime, `updated_at` datetime, `delivery_service_id` int(11), `delivery_price` decimal(8,2), `delivery_tax_rate` decimal(8,2), `delivery_tax_amount` decimal(8,2), `paid_at` datetime, `accepted_by` int(11), `shipped_by` int(11), `consignment_number` varchar(255), `rejected_at` datetime, `rejected_by` int(11), `ip_address` varchar(255), `payment_reference` varchar(255), `payment_method` varchar(255), `delivery_cost_price` decimal(8,2), `notes` text) ENGINE=InnoDB[0m
         | 
| 1122 | 
            +
              [1m[35m (16.6ms)[0m  CREATE TABLE `shoppe_product_attributes` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `product_id` int(11), `key` varchar(255), `value` varchar(255), `position` int(11) DEFAULT 1, `searchable` tinyint(1) DEFAULT 1, `created_at` datetime, `updated_at` datetime, `public` tinyint(1) DEFAULT 1) ENGINE=InnoDB
         | 
| 1123 | 
            +
              [1m[36m (21.3ms)[0m  [1mCREATE TABLE `shoppe_product_categories` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `name` varchar(255), `permalink` varchar(255), `description` text, `created_at` datetime, `updated_at` datetime) ENGINE=InnoDB[0m
         | 
| 1124 | 
            +
              [1m[35m (21.9ms)[0m  CREATE TABLE `shoppe_products` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `product_category_id` int(11), `name` varchar(255), `sku` varchar(255), `permalink` varchar(255), `description` text, `short_description` text, `active` tinyint(1) DEFAULT 1, `weight` decimal(8,3) DEFAULT 0.0, `price` decimal(8,2) DEFAULT 0.0, `tax_rate_id` int(11), `created_at` datetime, `updated_at` datetime, `featured` tinyint(1) DEFAULT 0, `in_the_box` text, `cost_price` decimal(8,2), `stock_control` tinyint(1) DEFAULT 1) ENGINE=InnoDB
         | 
| 1125 | 
            +
              [1m[36m (12.0ms)[0m  [1mCREATE TABLE `shoppe_stock_level_adjustments` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `item_id` int(11), `description` varchar(255), `adjustment` int(11) DEFAULT 0, `parent_type` varchar(255), `parent_id` int(11), `created_at` datetime, `updated_at` datetime, `item_type` varchar(255)) ENGINE=InnoDB[0m
         | 
| 1126 | 
            +
              [1m[35m (15.0ms)[0m  CREATE TABLE `shoppe_tax_rates` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `name` varchar(255), `rate` decimal(8,2), `created_at` datetime, `updated_at` datetime, `country_ids` text) ENGINE=InnoDB
         | 
| 1127 | 
            +
              [1m[36m (16.5ms)[0m  [1mCREATE TABLE `shoppe_users` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `first_name` varchar(255), `last_name` varchar(255), `email_address` varchar(255), `password_digest` varchar(255), `created_at` datetime, `updated_at` datetime) ENGINE=InnoDB[0m
         | 
| 1128 | 
            +
              [1m[35m (12.5ms)[0m  CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB
         | 
| 1129 | 
            +
              [1m[36m (14.1ms)[0m  [1mCREATE UNIQUE INDEX `unique_schema_migrations` ON `schema_migrations` (`version`) [0m
         | 
| 1130 | 
            +
              [1m[35m (0.2ms)[0m  SELECT version FROM `schema_migrations`
         | 
| 1131 | 
            +
              [1m[36m (0.3ms)[0m  [1mINSERT INTO `schema_migrations` (version) VALUES ('20131022093538')[0m
         | 
| 1132 | 
            +
              [1m[35m (0.3ms)[0m  INSERT INTO `schema_migrations` (version) VALUES ('20131017165217')
         | 
| 1133 | 
            +
              [1m[36m (0.6ms)[0m  [1mINSERT INTO `schema_migrations` (version) VALUES ('20131017165222')[0m
         | 
| 1134 | 
            +
              [1m[35m (0.3ms)[0m  INSERT INTO `schema_migrations` (version) VALUES ('20130926094549')
         | 
| 1135 | 
            +
              [1m[36m (0.2ms)[0m  [1mINSERT INTO `schema_migrations` (version) VALUES ('20131012123829')[0m
         | 
| 1136 | 
            +
              [1m[35m (0.3ms)[0m  INSERT INTO `schema_migrations` (version) VALUES ('20131012163301')
         | 
| 1137 | 
            +
              [1m[36m (0.3ms)[0m  [1mINSERT INTO `schema_migrations` (version) VALUES ('20131013123937')[0m
         | 
| 1138 | 
            +
              [1m[35m (0.2ms)[0m  INSERT INTO `schema_migrations` (version) VALUES ('20131013131658')
         | 
| 1139 | 
            +
              [1m[36m (0.3ms)[0m  [1mINSERT INTO `schema_migrations` (version) VALUES ('20131017144430')[0m
         | 
| 1140 | 
            +
              [1m[35m (0.3ms)[0m  INSERT INTO `schema_migrations` (version) VALUES ('20131017180920')
         | 
| 1141 | 
            +
              [1m[36m (0.3ms)[0m  [1mINSERT INTO `schema_migrations` (version) VALUES ('20131017183211')[0m
         | 
| 1142 | 
            +
              [1m[35m (0.3ms)[0m  INSERT INTO `schema_migrations` (version) VALUES ('20131020204719')
         | 
| 1143 | 
            +
              [1m[36m (0.3ms)[0m  [1mINSERT INTO `schema_migrations` (version) VALUES ('20131021135208')[0m
         | 
| 1144 | 
            +
              [1m[35m (0.3ms)[0m  INSERT INTO `schema_migrations` (version) VALUES ('20131022090919')
         | 
| 1145 | 
            +
              [1m[36m (0.2ms)[0m  [1mINSERT INTO `schema_migrations` (version) VALUES ('20131022092904')[0m
         | 
| 1146 | 
            +
              [1m[35mActiveRecord::SchemaMigration Load (0.1ms)[0m  SELECT `schema_migrations`.* FROM `schema_migrations`
         | 
| 1147 | 
            +
              [1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m  [1mSELECT `schema_migrations`.* FROM `schema_migrations`[0m
         | 
| 1148 | 
            +
            Migrating to AddParentIdToProducts (20131022135331)
         | 
| 1149 | 
            +
              [1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m  [1mSELECT `schema_migrations`.* FROM `schema_migrations`[0m
         | 
| 1150 | 
            +
            Migrating to AddParentIdToProducts (20131022135331)
         | 
| 1151 | 
            +
              [1m[35m (11.9ms)[0m  ALTER TABLE `shoppe_products` ADD `parent_id` int(11) AFTER `id`
         | 
| 1152 | 
            +
              [1m[36m (0.1ms)[0m  [1mBEGIN[0m
         | 
| 1153 | 
            +
              [1m[35mSQL (1.5ms)[0m  INSERT INTO `schema_migrations` (`version`) VALUES ('20131022135331')
         | 
| 1154 | 
            +
              [1m[36m (0.3ms)[0m  [1mCOMMIT[0m
         | 
| 1155 | 
            +
              [1m[35mActiveRecord::SchemaMigration Load (0.1ms)[0m  SELECT `schema_migrations`.* FROM `schema_migrations`
         | 
| 1156 | 
            +
              [1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m  [1mSELECT `schema_migrations`.* FROM `schema_migrations`[0m
         | 
| 1157 | 
            +
            Migrating to CostPriceShouldBeDefaultToZero (20131022145653)
         | 
| 1158 | 
            +
              [1m[35m (24.2ms)[0m  ALTER TABLE `shoppe_products` CHANGE `cost_price` `cost_price` decimal(8,2) DEFAULT 0.0
         | 
| 1159 | 
            +
              [1m[36m (0.1ms)[0m  [1mBEGIN[0m
         | 
| 1160 | 
            +
              [1m[35mSQL (1.6ms)[0m  INSERT INTO `schema_migrations` (`version`) VALUES ('20131022145653')
         | 
| 1161 | 
            +
              [1m[36m (0.3ms)[0m  [1mCOMMIT[0m
         | 
| 1162 | 
            +
              [1m[35mActiveRecord::SchemaMigration Load (0.2ms)[0m  SELECT `schema_migrations`.* FROM `schema_migrations`
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: shoppe
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.15
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2013-10- | 
| 12 | 
            +
            date: 2013-10-22 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rails
         | 
| @@ -219,6 +219,22 @@ dependencies: | |
| 219 219 | 
             
                - - ~>
         | 
| 220 220 | 
             
                  - !ruby/object:Gem::Version
         | 
| 221 221 | 
             
                    version: 1.0.0
         | 
| 222 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 223 | 
            +
              name: nifty-dialog
         | 
| 224 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 225 | 
            +
                none: false
         | 
| 226 | 
            +
                requirements:
         | 
| 227 | 
            +
                - - ~>
         | 
| 228 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 229 | 
            +
                    version: 1.0.0
         | 
| 230 | 
            +
              type: :runtime
         | 
| 231 | 
            +
              prerelease: false
         | 
| 232 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 233 | 
            +
                none: false
         | 
| 234 | 
            +
                requirements:
         | 
| 235 | 
            +
                - - ~>
         | 
| 236 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 237 | 
            +
                    version: 1.0.0
         | 
| 222 238 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 223 239 | 
             
              name: sqlite3
         | 
| 224 240 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -300,8 +316,10 @@ files: | |
| 300 316 | 
             
            - app/assets/javascripts/shoppe/application.coffee
         | 
| 301 317 | 
             
            - app/assets/javascripts/shoppe/chosen.jquery.js
         | 
| 302 318 | 
             
            - app/assets/javascripts/shoppe/jquery_ui.js
         | 
| 319 | 
            +
            - app/assets/javascripts/shoppe/mousetrap.js
         | 
| 303 320 | 
             
            - app/assets/stylesheets/shoppe/application.scss
         | 
| 304 321 | 
             
            - app/assets/stylesheets/shoppe/chosen.css
         | 
| 322 | 
            +
            - app/assets/stylesheets/shoppe/dialog.scss
         | 
| 305 323 | 
             
            - app/assets/stylesheets/shoppe/elements.scss
         | 
| 306 324 | 
             
            - app/assets/stylesheets/shoppe/reset.scss
         | 
| 307 325 | 
             
            - app/assets/stylesheets/shoppe/sub.scss
         | 
| @@ -315,8 +333,10 @@ files: | |
| 315 333 | 
             
            - app/controllers/shoppe/product_categories_controller.rb
         | 
| 316 334 | 
             
            - app/controllers/shoppe/products_controller.rb
         | 
| 317 335 | 
             
            - app/controllers/shoppe/sessions_controller.rb
         | 
| 336 | 
            +
            - app/controllers/shoppe/stock_level_adjustments_controller.rb
         | 
| 318 337 | 
             
            - app/controllers/shoppe/tax_rates_controller.rb
         | 
| 319 338 | 
             
            - app/controllers/shoppe/users_controller.rb
         | 
| 339 | 
            +
            - app/controllers/shoppe/variants_controller.rb
         | 
| 320 340 | 
             
            - app/helpers/shoppe/application_helper.rb
         | 
| 321 341 | 
             
            - app/helpers/shoppe/shoppe_helper.rb
         | 
| 322 342 | 
             
            - app/mailers/shoppe/order_mailer.rb
         | 
| @@ -327,6 +347,7 @@ files: | |
| 327 347 | 
             
            - app/models/shoppe/order.rb
         | 
| 328 348 | 
             
            - app/models/shoppe/order_item.rb
         | 
| 329 349 | 
             
            - app/models/shoppe/product/product_attributes.rb
         | 
| 350 | 
            +
            - app/models/shoppe/product/variants.rb
         | 
| 330 351 | 
             
            - app/models/shoppe/product.rb
         | 
| 331 352 | 
             
            - app/models/shoppe/product_attribute.rb
         | 
| 332 353 | 
             
            - app/models/shoppe/product_category.rb
         | 
| @@ -354,12 +375,14 @@ files: | |
| 354 375 | 
             
            - app/views/shoppe/product_categories/index.html.haml
         | 
| 355 376 | 
             
            - app/views/shoppe/product_categories/new.html.haml
         | 
| 356 377 | 
             
            - app/views/shoppe/products/_form.html.haml
         | 
| 378 | 
            +
            - app/views/shoppe/products/_table.html.haml
         | 
| 357 379 | 
             
            - app/views/shoppe/products/edit.html.haml
         | 
| 358 380 | 
             
            - app/views/shoppe/products/index.html.haml
         | 
| 359 381 | 
             
            - app/views/shoppe/products/new.html.haml
         | 
| 360 | 
            -
            - app/views/shoppe/products/stock_levels.html.haml
         | 
| 361 382 | 
             
            - app/views/shoppe/sessions/new.html.haml
         | 
| 362 383 | 
             
            - app/views/shoppe/sessions/reset.html.haml
         | 
| 384 | 
            +
            - app/views/shoppe/shared/error.html.haml
         | 
| 385 | 
            +
            - app/views/shoppe/stock_level_adjustments/index.html.haml
         | 
| 363 386 | 
             
            - app/views/shoppe/tax_rates/form.html.haml
         | 
| 364 387 | 
             
            - app/views/shoppe/tax_rates/index.html.haml
         | 
| 365 388 | 
             
            - app/views/shoppe/user_mailer/new_password.text.erb
         | 
| @@ -367,6 +390,8 @@ files: | |
| 367 390 | 
             
            - app/views/shoppe/users/edit.html.haml
         | 
| 368 391 | 
             
            - app/views/shoppe/users/index.html.haml
         | 
| 369 392 | 
             
            - app/views/shoppe/users/new.html.haml
         | 
| 393 | 
            +
            - app/views/shoppe/variants/form.html.haml
         | 
| 394 | 
            +
            - app/views/shoppe/variants/index.html.haml
         | 
| 370 395 | 
             
            - config/routes.rb
         | 
| 371 396 | 
             
            - config/shoppe.example.yml
         | 
| 372 397 | 
             
            - db/countries.txt
         | 
| @@ -380,6 +405,11 @@ files: | |
| 380 405 | 
             
            - db/migrate/20131017183211_create_shoppe_tax_rates.rb
         | 
| 381 406 | 
             
            - db/migrate/20131020204719_add_countries_to_tax_rates_and_delivery_prices.rb
         | 
| 382 407 | 
             
            - db/migrate/20131021135208_add_notes_to_orders.rb
         | 
| 408 | 
            +
            - db/migrate/20131022090919_refactor_order_items_to_allow_any_product.rb
         | 
| 409 | 
            +
            - db/migrate/20131022092904_rename_product_title_to_name.rb
         | 
| 410 | 
            +
            - db/migrate/20131022093538_stock_level_adjustments_should_be_polymorphic.rb
         | 
| 411 | 
            +
            - db/migrate/20131022135331_add_parent_id_to_products.rb
         | 
| 412 | 
            +
            - db/migrate/20131022145653_cost_price_should_be_default_to_zero.rb
         | 
| 383 413 | 
             
            - db/seeds.rb
         | 
| 384 414 | 
             
            - db/seeds_data/poe400.jpg
         | 
| 385 415 | 
             
            - db/seeds_data/snom-870-blk.jpg
         | 
| @@ -402,6 +432,8 @@ files: | |
| 402 432 | 
             
            - lib/shoppe/errors/invalid_configuration.rb
         | 
| 403 433 | 
             
            - lib/shoppe/errors/not_enough_stock.rb
         | 
| 404 434 | 
             
            - lib/shoppe/errors/payment_declined.rb
         | 
| 435 | 
            +
            - lib/shoppe/errors/unorderable_item.rb
         | 
| 436 | 
            +
            - lib/shoppe/orderable_item.rb
         | 
| 405 437 | 
             
            - lib/shoppe/setup_generator.rb
         | 
| 406 438 | 
             
            - lib/shoppe/version.rb
         | 
| 407 439 | 
             
            - lib/shoppe.rb
         | 
| @@ -465,7 +497,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 465 497 | 
             
                  version: '0'
         | 
| 466 498 | 
             
                  segments:
         | 
| 467 499 | 
             
                  - 0
         | 
| 468 | 
            -
                  hash:  | 
| 500 | 
            +
                  hash: 404704541590521889
         | 
| 469 501 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 470 502 | 
             
              none: false
         | 
| 471 503 | 
             
              requirements:
         | 
| @@ -474,7 +506,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 474 506 | 
             
                  version: '0'
         | 
| 475 507 | 
             
                  segments:
         | 
| 476 508 | 
             
                  - 0
         | 
| 477 | 
            -
                  hash:  | 
| 509 | 
            +
                  hash: 404704541590521889
         | 
| 478 510 | 
             
            requirements: []
         | 
| 479 511 | 
             
            rubyforge_project: 
         | 
| 480 512 | 
             
            rubygems_version: 1.8.23
         |