solidify 0.0.1.alpha
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.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/.rubocop.yml +40 -0
- data/.travis.yml +10 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +3 -0
- data/Guardfile +51 -0
- data/LICENSE.txt +21 -0
- data/README.md +75 -0
- data/Rakefile +42 -0
- data/app/controllers/concerns/solidify/liquid.rb +26 -0
- data/app/controllers/solidify/addresses_controller.rb +15 -0
- data/app/controllers/solidify/carts_controller.rb +15 -0
- data/app/controllers/solidify/collections_controller.rb +26 -0
- data/app/controllers/solidify/customers_controller.rb +16 -0
- data/app/controllers/solidify/home_controller.rb +15 -0
- data/app/controllers/solidify/liquid_controller.rb +25 -0
- data/app/controllers/solidify/orders_controller.rb +19 -0
- data/app/controllers/solidify/pages_controller.rb +22 -0
- data/app/controllers/solidify/products_controller.rb +34 -0
- data/app/controllers/solidify/registrations_controller.rb +25 -0
- data/app/controllers/solidify/responders/solidify/liquid_responder.rb +29 -0
- data/app/controllers/solidify/search_controller.rb +41 -0
- data/app/controllers/solidify/sessions_controller.rb +15 -0
- data/app/drops/rails_settings/scoped_settings_drop.rb +11 -0
- data/app/drops/solidify/errors_drop.rb +14 -0
- data/app/drops/solidify/link_drop.rb +15 -0
- data/app/drops/solidify/link_list_drop.rb +7 -0
- data/app/drops/solidify/nil_drop.rb +7 -0
- data/app/drops/solidify/page_drop.rb +7 -0
- data/app/drops/solidify/search_drop.rb +7 -0
- data/app/drops/spree/address_drop.rb +28 -0
- data/app/drops/spree/image_drop.rb +32 -0
- data/app/drops/spree/line_item_drop.rb +98 -0
- data/app/drops/spree/option_type_drop.rb +4 -0
- data/app/drops/spree/order_drop.rb +64 -0
- data/app/drops/spree/product_drop.rb +97 -0
- data/app/drops/spree/taxon_drop.rb +53 -0
- data/app/drops/spree/user_drop.rb +54 -0
- data/app/drops/spree/variant_drop.rb +111 -0
- data/app/fields/spree/address_fields.rb +18 -0
- data/app/fields/spree/image_fields.rb +12 -0
- data/app/fields/spree/line_item_fields.rb +21 -0
- data/app/fields/spree/order_fields.rb +22 -0
- data/app/fields/spree/product_fields.rb +22 -0
- data/app/fields/spree/taxon_fields.rb +18 -0
- data/app/fields/spree/user_fields.rb +14 -0
- data/app/fields/spree/variant_fields.rb +19 -0
- data/app/filters/solidify/additional_filters.rb +22 -0
- data/app/filters/solidify/html_filters.rb +16 -0
- data/app/filters/solidify/money_filters.rb +39 -0
- data/app/filters/solidify/string_filters.rb +47 -0
- data/app/filters/solidify/url_filters.rb +59 -0
- data/app/helpers/solidify/liquid_helper.rb +111 -0
- data/app/helpers/solidify/shop_helper.rb +7 -0
- data/app/models/concerns/solidify/address.rb +15 -0
- data/app/models/concerns/solidify/full_name.rb +11 -0
- data/app/models/concerns/solidify/handle.rb +25 -0
- data/app/models/concerns/solidify/inventory_policy.rb +7 -0
- data/app/models/concerns/solidify/validation_cancel.rb +33 -0
- data/app/models/concerns/spree/order_state.rb +19 -0
- data/app/models/solidify/asset.rb +12 -0
- data/app/models/solidify/link.rb +10 -0
- data/app/models/solidify/link_list.rb +7 -0
- data/app/models/solidify/page.rb +5 -0
- data/app/models/solidify/setting.rb +8 -0
- data/app/models/solidify/theme.rb +19 -0
- data/app/models/spree/address_decorator.rb +13 -0
- data/app/models/spree/image_decorator.rb +7 -0
- data/app/models/spree/line_item_decorator.rb +7 -0
- data/app/models/spree/order_decorator.rb +10 -0
- data/app/models/spree/product_decorator.rb +8 -0
- data/app/models/spree/taxon_decorator.rb +20 -0
- data/app/models/spree/user_decorator.rb +9 -0
- data/app/models/spree/variant_decorator.rb +11 -0
- data/app/poro/solidify/search.rb +14 -0
- data/app/services/solidify/app_specific_string_io.rb +15 -0
- data/app/services/solidify/asset_compiler.rb +11 -0
- data/app/services/solidify/asset_postprocessor.rb +53 -0
- data/app/services/solidify/collections_all_builder.rb +12 -0
- data/app/services/solidify/link_list_seeder.rb +26 -0
- data/app/services/solidify/liquid_asset_compiler.rb +19 -0
- data/app/services/solidify/scss_asset_compiler.rb +15 -0
- data/app/services/solidify/shop_settings_seeder.rb +26 -0
- data/app/services/solidify/theme_mechanic.rb +30 -0
- data/app/uploaders/solidify/asset_uploader.rb +10 -0
- data/app/views/solidify/global/content_for_header.html.erb +0 -0
- data/app/views/solidify/themes/skeleton-theme/README.md +54 -0
- data/app/views/solidify/themes/skeleton-theme/assets/arrow-down.svg.liquid +3 -0
- data/app/views/solidify/themes/skeleton-theme/assets/cart.svg.liquid +4 -0
- data/app/views/solidify/themes/skeleton-theme/assets/shop.js.liquid +75 -0
- data/app/views/solidify/themes/skeleton-theme/assets/shopify_common.js +14 -0
- data/app/views/solidify/themes/skeleton-theme/assets/style.scss.liquid +768 -0
- data/app/views/solidify/themes/skeleton-theme/config/settings.html +217 -0
- data/app/views/solidify/themes/skeleton-theme/config/settings_data.json +26 -0
- data/app/views/solidify/themes/skeleton-theme/layout/theme.liquid +181 -0
- data/app/views/solidify/themes/skeleton-theme/snippets/article-grid-item.liquid +73 -0
- data/app/views/solidify/themes/skeleton-theme/snippets/collection-grid-item.liquid +46 -0
- data/app/views/solidify/themes/skeleton-theme/snippets/collection-listing.liquid +46 -0
- data/app/views/solidify/themes/skeleton-theme/snippets/open-graph-tags.liquid +35 -0
- data/app/views/solidify/themes/skeleton-theme/snippets/product-grid-item.liquid +70 -0
- data/app/views/solidify/themes/skeleton-theme/snippets/site-nav.liquid +57 -0
- data/app/views/solidify/themes/skeleton-theme/snippets/social-links.liquid +42 -0
- data/app/views/solidify/themes/skeleton-theme/snippets/twitter-card.liquid +41 -0
- data/app/views/solidify/themes/skeleton-theme/templates/404.liquid +2 -0
- data/app/views/solidify/themes/skeleton-theme/templates/article.liquid +160 -0
- data/app/views/solidify/themes/skeleton-theme/templates/blog.grid.liquid +30 -0
- data/app/views/solidify/themes/skeleton-theme/templates/blog.liquid +92 -0
- data/app/views/solidify/themes/skeleton-theme/templates/cart.liquid +123 -0
- data/app/views/solidify/themes/skeleton-theme/templates/collection.liquid +102 -0
- data/app/views/solidify/themes/skeleton-theme/templates/customers/account.liquid +57 -0
- data/app/views/solidify/themes/skeleton-theme/templates/customers/activate_account.liquid +26 -0
- data/app/views/solidify/themes/skeleton-theme/templates/customers/addresses.liquid +173 -0
- data/app/views/solidify/themes/skeleton-theme/templates/customers/login.liquid +90 -0
- data/app/views/solidify/themes/skeleton-theme/templates/customers/order.liquid +103 -0
- data/app/views/solidify/themes/skeleton-theme/templates/customers/register.liquid +32 -0
- data/app/views/solidify/themes/skeleton-theme/templates/customers/reset_password.liquid +27 -0
- data/app/views/solidify/themes/skeleton-theme/templates/index.liquid +39 -0
- data/app/views/solidify/themes/skeleton-theme/templates/list-collections.liquid +19 -0
- data/app/views/solidify/themes/skeleton-theme/templates/page.liquid +16 -0
- data/app/views/solidify/themes/skeleton-theme/templates/product.liquid +202 -0
- data/app/views/solidify/themes/skeleton-theme/templates/search.liquid +72 -0
- data/bin/rails +12 -0
- data/config/app.yml +0 -0
- data/config/initializers/carrierwave.rb +25 -0
- data/config/initializers/devise.rb +286 -0
- data/config/initializers/form_tag.rb +43 -0
- data/config/initializers/liquid.rb +213 -0
- data/config/initializers/sass.rb +15 -0
- data/config/initializers/spree.rb +7 -0
- data/config/initializers/theme_settings.rb +29 -0
- data/config/routes.rb +52 -0
- data/config/spring.rb +2 -0
- data/db/migrate/20170223064316_create_solidify_assets.solidify.rb +14 -0
- data/db/migrate/20170223064317_create_solidify_themes.solidify.rb +10 -0
- data/db/migrate/20170223064318_create_solidify_link_lists.solidify.rb +12 -0
- data/db/migrate/20170223064319_create_solidify_links.solidify.rb +13 -0
- data/db/migrate/20170223064320_create_solidify_settings.solidify.rb +22 -0
- data/db/migrate/20170223064321_create_solidify_pages.solidify.rb +16 -0
- data/db/migrate/20170223064322_add_attributes_to_spree_users.solidify.rb +7 -0
- data/db/migrate/20170223064323_add_handle_to_spree_taxons.solidify.rb +7 -0
- data/db/migrate/20170228115149_add_state_and_country_fields_to_spree_addresses.solidify.rb +7 -0
- data/lib/generators/solidify/install/install_generator.rb +23 -0
- data/lib/solidify.rb +11 -0
- data/lib/solidify/configuration.rb +21 -0
- data/lib/solidify/engine.rb +24 -0
- data/lib/solidify/testing_support/factories.rb +5 -0
- data/lib/solidify/testing_support/factories/assets.rb +75 -0
- data/lib/solidify/testing_support/factories/solidify_pages.rb +10 -0
- data/lib/solidify/testing_support/factories/spree_addresses.rb +9 -0
- data/lib/solidify/testing_support/factories/spree_line_items.rb +10 -0
- data/lib/solidify/testing_support/factories/spree_orders.rb +9 -0
- data/lib/solidify/testing_support/factories/spree_products.rb +8 -0
- data/lib/solidify/testing_support/factories/spree_taxons.rb +7 -0
- data/lib/solidify/testing_support/factories/spree_variants.rb +7 -0
- data/lib/solidify/testing_support/factories/themes.rb +7 -0
- data/lib/solidify/version.rb +3 -0
- data/lib/tasks/download_theme.rake +18 -0
- data/lib/tasks/seed_default_theme.rake +8 -0
- data/lib/tasks/seed_everything.rake +12 -0
- data/lib/tasks/seed_link_list.rake +8 -0
- data/lib/tasks/seed_shop_settings.rake +8 -0
- data/solidify.gemspec +61 -0
- metadata +668 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
class OrderDrop < ::Liquid::Rails::Drop
|
|
3
|
+
attributes(*OrderFields::JSON)
|
|
4
|
+
|
|
5
|
+
delegate :billing_address, :shipping_address, :created_at, to: :order
|
|
6
|
+
|
|
7
|
+
delegate :number, to: :order, prefix: true
|
|
8
|
+
alias name order_number
|
|
9
|
+
|
|
10
|
+
def cancelled
|
|
11
|
+
order.canceled?
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def cancelled_at
|
|
15
|
+
order.canceled_at
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def customer_url
|
|
19
|
+
"#{view.request.base_url}#{view.customer_order_path(order.number)}"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
delegate :email, to: :order
|
|
23
|
+
|
|
24
|
+
delegate :item_count, to: :order
|
|
25
|
+
|
|
26
|
+
delegate :line_items, to: :order
|
|
27
|
+
alias items line_items
|
|
28
|
+
|
|
29
|
+
def note
|
|
30
|
+
order.special_instructions
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def requires_shipping
|
|
34
|
+
true
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def subtotal_price
|
|
38
|
+
order.item_total - order.adjustment_total
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def total_discount
|
|
42
|
+
0
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def total_price
|
|
46
|
+
order.total.to_money.cents
|
|
47
|
+
end
|
|
48
|
+
alias original_total_price total_price
|
|
49
|
+
|
|
50
|
+
def total_weight
|
|
51
|
+
0
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
private
|
|
55
|
+
|
|
56
|
+
def order
|
|
57
|
+
@object
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def view
|
|
61
|
+
@context.registers[:view]
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
class ProductDrop < ::Liquid::Rails::Drop
|
|
3
|
+
attributes(*ProductFields::JSON)
|
|
4
|
+
|
|
5
|
+
has_many :images
|
|
6
|
+
|
|
7
|
+
def available
|
|
8
|
+
!@object.deleted? && @object.variants_including_master.any?(&:available)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def collections
|
|
12
|
+
@object.taxons
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def compare_at_price
|
|
16
|
+
nil
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def compare_at_price_max
|
|
20
|
+
0
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def compare_at_price_min
|
|
24
|
+
0
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def compare_at_price_varies
|
|
28
|
+
false
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
alias content description
|
|
32
|
+
|
|
33
|
+
def first_available_variant
|
|
34
|
+
@object.variants.find(&:available) || @object.master
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def featured_image
|
|
38
|
+
# display_image just shows first image
|
|
39
|
+
# probably producing many queries on the db
|
|
40
|
+
@object.display_image
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def options
|
|
44
|
+
@object.option_types.map(&:presentation)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def price
|
|
48
|
+
@object.price.to_money.cents
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
alias price_max price
|
|
52
|
+
alias price_min price
|
|
53
|
+
|
|
54
|
+
def price_varies
|
|
55
|
+
false
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def selected_variant
|
|
59
|
+
@object.selected_variant
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def selected_or_first_available_variant
|
|
63
|
+
selected_variant || first_available_variant
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def tags
|
|
67
|
+
[]
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def type
|
|
71
|
+
''
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def url
|
|
75
|
+
@object.url
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def variants
|
|
79
|
+
if @object.variants.any?
|
|
80
|
+
@object.variants
|
|
81
|
+
else
|
|
82
|
+
[@object.master]
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def vendor
|
|
87
|
+
Solidify::Setting['name']
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# def metafields
|
|
91
|
+
# ::RailsSettings::ScopedSettingsDrop.new(@object.settings)
|
|
92
|
+
# end
|
|
93
|
+
|
|
94
|
+
# shopify json returns datetime in shop's timezone
|
|
95
|
+
alias published_at created_at
|
|
96
|
+
end
|
|
97
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
class TaxonDrop < ::Liquid::Rails::Drop
|
|
3
|
+
attributes(*TaxonFields::JSON)
|
|
4
|
+
|
|
5
|
+
has_many :products
|
|
6
|
+
|
|
7
|
+
def all_products_count
|
|
8
|
+
@object.products.size
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def all_tags
|
|
12
|
+
[]
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def description
|
|
16
|
+
@object.description
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
alias body_html description
|
|
20
|
+
|
|
21
|
+
def image
|
|
22
|
+
@object.image
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def products_count
|
|
26
|
+
@object.products.size
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def published_at
|
|
30
|
+
@object.created_at
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def published_scope
|
|
34
|
+
'global'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def sort_order
|
|
38
|
+
'alpha-asc'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def template_suffix
|
|
42
|
+
''
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def updated_at
|
|
46
|
+
@object.updated_at
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def url
|
|
50
|
+
@object.url
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
class UserDrop < ::Liquid::Rails::Drop
|
|
3
|
+
include ::Solidify::FullName
|
|
4
|
+
|
|
5
|
+
attributes :id, :default_address, :email, :first_name, :last_name, :name,
|
|
6
|
+
:password
|
|
7
|
+
|
|
8
|
+
has_many :addresses
|
|
9
|
+
|
|
10
|
+
def accepts_marketing
|
|
11
|
+
false
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def addresses_count
|
|
15
|
+
@object.addresses.size
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def errors
|
|
19
|
+
Solidify::ErrorsDrop.new(@object.errors)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# rubocop:disable Style/PredicateName
|
|
23
|
+
def has_account
|
|
24
|
+
true
|
|
25
|
+
end
|
|
26
|
+
# rubocop:enable Style/PredicateName
|
|
27
|
+
|
|
28
|
+
def last_order
|
|
29
|
+
@object.orders.complete.by_completed_at.last
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def orders
|
|
33
|
+
@object.orders.complete
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def orders_count
|
|
37
|
+
@object.orders.complete.size
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def password_needed
|
|
41
|
+
true
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def tags; end
|
|
45
|
+
|
|
46
|
+
def total_spent
|
|
47
|
+
0
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def to_json(_json)
|
|
51
|
+
{ "error": 'json not allowed for this object' }.to_json
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
class VariantDrop < ::Liquid::Rails::Drop
|
|
3
|
+
attributes(*VariantFields::JSON)
|
|
4
|
+
|
|
5
|
+
# For a variant to be available, its variant.inventory_quantity must be
|
|
6
|
+
# greater than zero or variant.inventory_policy must be set to continue. A
|
|
7
|
+
# variant with no variant.inventory_management is also considered available.
|
|
8
|
+
def available
|
|
9
|
+
# inventory_management.blank? ||
|
|
10
|
+
# inventory_policy == INVENTORY_POLICY_ALLOW ||
|
|
11
|
+
# inventory_quantity(??? check VariantDrop) > 0
|
|
12
|
+
# call Variant.available, because ProductDrop calls Variant.available
|
|
13
|
+
# both should always call the same method
|
|
14
|
+
# (either in Variant or in VariantDrop)
|
|
15
|
+
@object.available
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def barcode
|
|
19
|
+
''
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def compare_at_price
|
|
23
|
+
nil
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def featured_image
|
|
27
|
+
@object.images.first
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
alias image featured_image
|
|
31
|
+
|
|
32
|
+
def incoming
|
|
33
|
+
false
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def inventory_management
|
|
37
|
+
'shopify'
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def inventory_policy
|
|
41
|
+
Solidify::InventoryPolicy::INVENTORY_POLICY_DENY
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def inventory_quantity
|
|
45
|
+
@object.total_on_hand
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def name
|
|
49
|
+
"#{@object.name} - #{title}"
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def next_incoming_date
|
|
53
|
+
nil
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def option1
|
|
57
|
+
@object.option_values.first.try(:presentation)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def option2
|
|
61
|
+
@object.option_values.second.try(:presentation)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def option3
|
|
65
|
+
@object.option_values.third.try(:presentation)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def options
|
|
69
|
+
@object.option_values.map(&:presentation)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def price
|
|
73
|
+
@object.price.to_money.cents
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def requires_shipping
|
|
77
|
+
true
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def selected
|
|
81
|
+
@object.product.selected_variant == @object
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def taxable
|
|
85
|
+
true
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def title
|
|
89
|
+
@object.option_values.map(&:presentation).join(' / ')
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
alias public_title title
|
|
93
|
+
|
|
94
|
+
def url
|
|
95
|
+
Solidify::Engine.routes.url_helpers
|
|
96
|
+
.variant_path(@object.product, @object)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def weight
|
|
100
|
+
@object.weight.to_i
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def weight_in_unit
|
|
104
|
+
@object.weight.to_i
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def weight_unit
|
|
108
|
+
'kg'
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
class AddressFields
|
|
3
|
+
JSON = %w(
|
|
4
|
+
id address1 address2 city company country country_code country_name
|
|
5
|
+
default first_name last_name name phone province province_code zip
|
|
6
|
+
).freeze
|
|
7
|
+
|
|
8
|
+
METHODS = %w(
|
|
9
|
+
id address1 address2 city company country country_code default first_name
|
|
10
|
+
last_name latitude longitude name phone province province_code street zip
|
|
11
|
+
).freeze
|
|
12
|
+
|
|
13
|
+
PARAMS = %w(
|
|
14
|
+
id address1 address2 city company country default first_name last_name
|
|
15
|
+
phone province zip
|
|
16
|
+
).freeze
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
class LineItemFields
|
|
3
|
+
JSON = %w(
|
|
4
|
+
id discounted_price discounts gift_card grams handle image key line_price
|
|
5
|
+
original_line_price original_price price product_description product_id
|
|
6
|
+
product_title product_type properties quantity requires_shipping sku title
|
|
7
|
+
total_discount url variant_id variant_options variant_title vendor
|
|
8
|
+
).freeze
|
|
9
|
+
|
|
10
|
+
METHODS = %w(
|
|
11
|
+
id discounts fulfillment fulfillment_service gift_card grams image key
|
|
12
|
+
line_price message original_line_price original_price price product
|
|
13
|
+
product_id properties quantity requires_shipping sku
|
|
14
|
+
successfully_fulfilled_quantity taxable title total_discount url variant
|
|
15
|
+
variant_id vendor
|
|
16
|
+
).freeze
|
|
17
|
+
|
|
18
|
+
PARAMS = %w(
|
|
19
|
+
).freeze
|
|
20
|
+
end
|
|
21
|
+
end
|