spree_correios_shipping 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +1 -0
  4. data/Gemfile +5 -0
  5. data/Gemfile.lock +270 -0
  6. data/LICENSE +26 -0
  7. data/README.md +45 -0
  8. data/Rakefile +29 -0
  9. data/Versionfile +14 -0
  10. data/app/assets/javascripts/spree/backend/product_packages/edit.js.coffee +4 -0
  11. data/app/assets/javascripts/spree/backend/product_packages/index.js.coffee +28 -0
  12. data/app/assets/javascripts/spree/backend/product_packages/new.js.coffee +7 -0
  13. data/app/controllers/spree/admin/correios_shipping_settings_controller.rb +18 -0
  14. data/app/controllers/spree/admin/product_packages_controller.rb +12 -0
  15. data/app/controllers/spree/checkout_controller_decorator.rb +9 -0
  16. data/app/models/spree/calculator/shipping/correios/base.rb +165 -0
  17. data/app/models/spree/calculator/shipping/correios/e_sedex.rb +16 -0
  18. data/app/models/spree/calculator/shipping/correios/e_sedex_express.rb +17 -0
  19. data/app/models/spree/calculator/shipping/correios/e_sedex_grupo1.rb +17 -0
  20. data/app/models/spree/calculator/shipping/correios/e_sedex_grupo2.rb +17 -0
  21. data/app/models/spree/calculator/shipping/correios/e_sedex_grupo3.rb +17 -0
  22. data/app/models/spree/calculator/shipping/correios/e_sedex_prioritario.rb +17 -0
  23. data/app/models/spree/calculator/shipping/correios/overweight.rb +25 -0
  24. data/app/models/spree/calculator/shipping/correios/pac.rb +17 -0
  25. data/app/models/spree/calculator/shipping/correios/pac_com_contrato.rb +17 -0
  26. data/app/models/spree/calculator/shipping/correios/sedex.rb +17 -0
  27. data/app/models/spree/calculator/shipping/correios/sedex10.rb +17 -0
  28. data/app/models/spree/calculator/shipping/correios/sedex_a_cobrar.rb +17 -0
  29. data/app/models/spree/calculator/shipping/correios/sedex_a_cobrar_com_contrato.rb +17 -0
  30. data/app/models/spree/calculator/shipping/correios/sedex_com_contrato1.rb +17 -0
  31. data/app/models/spree/calculator/shipping/correios/sedex_com_contrato2.rb +17 -0
  32. data/app/models/spree/calculator/shipping/correios/sedex_com_contrato3.rb +17 -0
  33. data/app/models/spree/calculator/shipping/correios/sedex_com_contrato4.rb +17 -0
  34. data/app/models/spree/calculator/shipping/correios/sedex_com_contrato5.rb +17 -0
  35. data/app/models/spree/calculator/shipping/correios/sedex_hoje.rb +17 -0
  36. data/app/models/spree/product_package.rb +9 -0
  37. data/app/models/spree/stock/splitter/correios_package.rb +51 -0
  38. data/app/models/spree/stock/splitter/correios_weight.rb +31 -0
  39. data/app/models/spree/stock_location_decorator.rb +10 -0
  40. data/app/overrides/spree/admin/shared/sub_menu/_configuration/add_correios_shipping_settings_tab.html.erb.deface +3 -0
  41. data/app/views/spree/admin/correios_shipping_settings/edit.html.erb +28 -0
  42. data/app/views/spree/admin/product_packages/_form.html.erb +31 -0
  43. data/app/views/spree/admin/product_packages/edit.html.erb +20 -0
  44. data/app/views/spree/admin/product_packages/index.html.erb +49 -0
  45. data/app/views/spree/admin/product_packages/new.html.erb +14 -0
  46. data/app/views/spree/admin/shared/_correios_tabs.html.erb +11 -0
  47. data/config/locales/en.yml +7 -0
  48. data/config/locales/pt-BR.yml +19 -0
  49. data/config/routes.rb +7 -0
  50. data/db/migrate/20150303111955_create_product_packages.rb +11 -0
  51. data/lib/generators/spree_correios_shipping/install/install_generator.rb +19 -0
  52. data/lib/spree/correios_shipping_configuration.rb +10 -0
  53. data/lib/spree/shipping_error.rb +3 -0
  54. data/lib/spree_correios_shipping/engine.rb +69 -0
  55. data/lib/spree_correios_shipping/version.rb +3 -0
  56. data/lib/spree_correios_shipping.rb +3 -0
  57. data/script/rails +7 -0
  58. data/spec/spec_helper.rb +44 -0
  59. data/spree_correios_shipping.gemspec +30 -0
  60. metadata +201 -0
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class ESedexExpress < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "e-Sedex Express - 81035"
8
+ end
9
+
10
+ def self.service_code
11
+ :e_sedex_express
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class ESedexGrupo1 < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "e-Sedex Grupo 1 - 81868"
8
+ end
9
+
10
+ def self.service_code
11
+ :e_sedex_grupo_1
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class ESedexGrupo2 < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "e-Sedex Grupo 2 - 81833"
8
+ end
9
+
10
+ def self.service_code
11
+ :e_sedex_grupo_2
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class ESedexGrupo3 < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "e-Sedex Grupo 3 - 81850"
8
+ end
9
+
10
+ def self.service_code
11
+ :e_sedex_grupo_3
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class ESedexPrioritario < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "e-Sedex Prioritario - 81027"
8
+ end
9
+
10
+ def self.service_code
11
+ :e_sedex_prioritario
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,25 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class Overweight < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Acima de 30kg"
8
+ end
9
+
10
+ def available?(package)
11
+ package_weight > 30 ? true : false
12
+ end
13
+
14
+ def compute_package(package)
15
+ 0.00
16
+ end
17
+
18
+ def deliver_time(package)
19
+ nil
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class Pac < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Pac sem contrato - 41106"
8
+ end
9
+
10
+ def self.service_code
11
+ :pac
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class PacComContrato < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Pac com contrato - 41068"
8
+ end
9
+
10
+ def self.service_code
11
+ :pac_com_contrato
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class Sedex < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Sedex sem contrato - 40010"
8
+ end
9
+
10
+ def self.service_code
11
+ :sedex
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class Sedex10 < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Sedex 10 sem contrato - 40215"
8
+ end
9
+
10
+ def self.service_code
11
+ :sedex_10
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class SedexACobrar < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Sedex a cobrar sem contrato - 40045"
8
+ end
9
+
10
+ def self.service_code
11
+ :sedex_a_cobrar
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class SedexACobrarComContrato < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Sedex a cobrar com contrato - 40126"
8
+ end
9
+
10
+ def self.service_code
11
+ :sedex_a_cobrar_com_contrato
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class SedexComContrato1 < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Sedex com Contrato 1 - 40096"
8
+ end
9
+
10
+ def self.service_code
11
+ :sedex_com_contrato_1
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class SedexComContrato2 < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Sedex com Contrato 2 - 40436"
8
+ end
9
+
10
+ def self.service_code
11
+ :sedex_com_contrato_2
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class SedexComContrato3 < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Sedex com Contrato 3 - 40444"
8
+ end
9
+
10
+ def self.service_code
11
+ :sedex_com_contrato_3
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class SedexComContrato4 < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Sedex com Contrato 4 - 40568"
8
+ end
9
+
10
+ def self.service_code
11
+ :sedex_com_contrato_4
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class SedexComContrato5 < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Sedex com Contrato 5 - 40606"
8
+ end
9
+
10
+ def self.service_code
11
+ :sedex_com_contrato_5
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ module Calculator::Shipping
3
+ module Correios
4
+ class SedexHoje < Spree::Calculator::Shipping::Correios::Base
5
+
6
+ def self.description
7
+ "Sedex hoje sem contrato - 40290"
8
+ end
9
+
10
+ def self.service_code
11
+ :sedex_hoje
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ module Spree
2
+ class ProductPackage < ActiveRecord::Base
3
+
4
+ validates :length, :width, :height, :weight,
5
+ :numericality => { :only_integer => true,
6
+ :message => Spree.t('validation.must_be_int'),
7
+ :greater_than => 0 }
8
+ end
9
+ end
@@ -0,0 +1,51 @@
1
+ module Spree
2
+ module Stock
3
+ module Splitter
4
+ class CorreiosPackage < Spree::Stock::Splitter::Base
5
+ attr_reader :packer, :next_splitter
6
+
7
+ def available_product_packages
8
+ ProductPackage.all
9
+ end
10
+
11
+ def split(packages)
12
+ packages.each do |package|
13
+ removed_contents = reduce package
14
+ packages << build_package(removed_contents) unless removed_contents.empty?
15
+ end
16
+ return_next packages
17
+ end
18
+
19
+ private
20
+ def reduce(package)
21
+ removed = []
22
+ while package.weight > self.threshold.to_f
23
+ break if package.contents.size == 1
24
+ removed << package.contents.shift
25
+ end
26
+ removed
27
+ end
28
+
29
+
30
+ def organize_packages(packages)
31
+
32
+ end
33
+
34
+ def boxes_volume
35
+ boxes_array = available_product_packages.inject([]) { |arr, box| arr << (box.widht * box.height * box.depth) }
36
+ boxes_array.sort
37
+ end
38
+
39
+ def total_package_volume(package)
40
+ package.contents.inject(0.0) { |volume, item| volume += (item.width * item.height * item.depth ) }
41
+ end
42
+
43
+ def package_fits_inside_box(package)
44
+ package_volume = total_package_volume(package)
45
+ box = boxes_volume.detect { |box| package_volume <= box }
46
+ end
47
+
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,31 @@
1
+ module Spree
2
+ module Stock
3
+ module Splitter
4
+ class CorreiosWeight < Spree::Stock::Splitter::Base
5
+ attr_reader :packer, :next_splitter
6
+
7
+ cattr_accessor :threshold do
8
+ Spree::CorreiosShipping::Config[:max_shipping_weight]
9
+ end
10
+
11
+ def split(packages)
12
+ packages.each do |package|
13
+ removed_contents = reduce package
14
+ packages << build_package(removed_contents) unless removed_contents.empty?
15
+ end
16
+ return_next packages
17
+ end
18
+
19
+ private
20
+ def reduce(package)
21
+ removed = []
22
+ while package.weight > self.threshold.to_f
23
+ break if package.contents.size == 1
24
+ removed << package.contents.shift
25
+ end
26
+ removed
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,10 @@
1
+ Spree::StockLocation.class_eval do
2
+ validates_presence_of :address1, :city, :zipcode, :country_id
3
+ validate :state_id_or_state_name_is_present
4
+
5
+ def state_id_or_state_name_is_present
6
+ if state_id.nil? && state_name.nil?
7
+ errors.add(:state_name, "can't be blank")
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ <!-- insert_bottom "[data-hook='admin_configurations_sidebar_menu'], #admin_configurations_sidebar_menu[data-hook]" -->
2
+
3
+ <%= configurations_sidebar_menu_item t(:correios_shipping_settings), edit_admin_correios_shipping_settings_path %>
@@ -0,0 +1,28 @@
1
+ <% content_for :page_title do %>
2
+ <%= Spree.t(:correios_shipping_settings) %>
3
+ <% end %>
4
+
5
+ <%= render 'spree/admin/shared/correios_tabs', current: 'Correios Settings' %>
6
+
7
+ <%= form_tag admin_correios_shipping_settings_path, :method => :put do %>
8
+ <fieldset class="no-border-top">
9
+ <div data-hook="admin_correios_shipping_settings_form_fields">
10
+ <div class="row">
11
+ <div class="col-md-12" data-hook="preferences_fields">
12
+ <% @preferences.each do |key|
13
+ type = @config.preference_type(key) %>
14
+
15
+ <%= label_tag(key, t(key, scope: :correios_shipping) + ': ') + tag(:br) if type != :boolean %>
16
+ <%= preference_field_tag(key,@config[key], :type => type) %>
17
+ <%= label_tag(key, t(key, scope: :correios_shipping)) + tag(:br) if type == :boolean %>
18
+
19
+ <% end %>
20
+ </div>
21
+ </div>
22
+
23
+ </fieldset>
24
+ <div class="form-actions" data-hook="buttons">
25
+ <%= button Spree.t('actions.update') %>
26
+ </div>
27
+ <% end %>
28
+
@@ -0,0 +1,31 @@
1
+ <div data-hook="admin_product_package_form_fields" class="row">
2
+
3
+ <div class="col-md-3">
4
+ <div data-hook="length" class="form-group">
5
+ <%= f.label Spree.t(:length) %>
6
+ <%= f.text_field :length, class: 'form-control' %>
7
+ </div>
8
+ </div>
9
+
10
+ <div class="col-md-3">
11
+ <div data-hook="width" class="form-group">
12
+ <%= f.label Spree.t(:width) %>
13
+ <%= f.text_field :width, class: 'form-control' %>
14
+ </div>
15
+ </div>
16
+
17
+ <div class="col-md-3">
18
+ <div data-hook="height" class="form-group">
19
+ <%= f.label Spree.t(:height) %>
20
+ <%= f.text_field :height, class: 'form-control' %>
21
+ </div>
22
+ </div>
23
+
24
+ <div class="col-md-3">
25
+ <div data-hook="weight" class="form-group">
26
+ <%= f.label Spree.t(:weight) %>
27
+ <%= f.text_field :weight, class: 'form-control' %>
28
+ </div>
29
+ </div>
30
+
31
+ </div>
@@ -0,0 +1,20 @@
1
+ <% content_for :page_title do %>
2
+ <%= Spree.t(:product_packages) %>
3
+ <% end %>
4
+
5
+ <%= render :partial => 'spree/admin/shared/correios_tabs', :locals => { :current => 'Product Packages' } %>
6
+ <%= render 'spree/admin/shared/error_messages', :target => @product_package %>
7
+
8
+ <%= form_for [:admin, @product_package], :html => { :multipart => true } do |f| %>
9
+ <div class="well">
10
+ <fieldset data-hook="edit_product_package">
11
+ <legend align="center"><%= Spree.t(:edit_package) %></legend>
12
+ <%= render :partial => 'form', :locals => { :f => f } %>
13
+ <%= render :partial => 'spree/admin/shared/edit_resource_links' %>
14
+ </fieldset>
15
+ </div>
16
+ <% end %>
17
+
18
+ <% content_for :head do %>
19
+ <%= javascript_include_tag 'spree/backend/product_packages/edit.js' %>
20
+ <% end %>
@@ -0,0 +1,49 @@
1
+ <% content_for :head do %>
2
+ <%= javascript_include_tag 'spree/backend/product_packages/index.js' %>
3
+ <% end %>
4
+
5
+ <%= render 'spree/admin/shared/correios_tabs', current: 'Product Packages' %>
6
+ <%= render 'spree/admin/shared/error_messages', :target => @product_package %>
7
+
8
+ <% content_for :page_title do %>
9
+ <%= Spree.t(:product_packages) %>
10
+ <% end %>
11
+
12
+ <% content_for :page_actions do %>
13
+ <%= button_link_to(Spree.t(:new_package), new_admin_product_package_url(@product_package), :id => 'new_product_package_link', :class => 'btn-success spree_add_fields pull-right', icon: 'add') %>
14
+ <% end %>
15
+ <div id="product_packages" data-hook></div>
16
+
17
+ <% unless @product_packages.any? %>
18
+ <div class="no-objects-found alert alert-info">
19
+ <%= Spree.t(:no_product_package_found) %>,
20
+ <%= link_to(Spree.t(:add_one), spree.new_admin_product_package_path(@product_package)) if can? :create, Spree::Product %>!
21
+ </div>
22
+ <% else %>
23
+ <table class="table">
24
+ <thead data-hook="option_header">
25
+ <tr data-hook="product_packages_header">
26
+ <th><%= Spree.t(:length) %></th>
27
+ <th><%= Spree.t(:width) %></th>
28
+ <th><%= Spree.t(:height) %></th>
29
+ <th><%= Spree.t(:weight) %></th>
30
+ <th class="actions"></th>
31
+ </tr>
32
+ </thead>
33
+ <tbody id="product_packages" data-hook>
34
+ <% @product_packages.each do |package| %>
35
+ <tr id="<%= dom_id(package) %>" data-hook="product_package_row">
36
+ <td><%= package.length %></td>
37
+ <td><%= package.width %></td>
38
+ <td><%= package.height %></td>
39
+ <td><%= package.weight %></td>
40
+ <td class="actions actions-2 text-right">
41
+ <%= link_to_edit package, :no_text => true, :data => {:action => 'edit'} %>
42
+ &nbsp;
43
+ <%= link_to_delete package, { :url => admin_product_package_url(package), :no_text => true }%>
44
+ </td>
45
+ </tr>
46
+ <% end %>
47
+ </tbody>
48
+ </table>
49
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <%= render :partial => 'spree/admin/shared/correios_tabs', :locals => { :current => 'Product Packages' } %>
2
+ <%= render 'spree/admin/shared/error_messages', :target => @product_package %>
3
+
4
+ <%= form_for [:admin, @product_package], :html => { :multipart => true } do |f| %>
5
+ <div class="well">
6
+ <fieldset data-hook="new_product_package">
7
+ <legend align="center"><%= Spree.t(:new_package) %></legend>
8
+ <%= render :partial => 'form', :locals => { :f => f } %>
9
+ <%= render :partial => 'spree/admin/shared/new_resource_links' %>
10
+ </fieldset>
11
+ </div>
12
+ <% end %>
13
+
14
+ <%= javascript_include_tag 'spree/backend/product_packages/new.js' %>
@@ -0,0 +1,11 @@
1
+ <% content_for :sidebar do %>
2
+ <ul class="nav nav-pills nav-stacked" data-hook="admin_correios_settings_tabs">
3
+ <%= content_tag :li, :class => ('active' if current == 'Correios Settings') do %>
4
+ <%= link_to_with_icon 'edit', Spree.t(:correios_settings), edit_admin_correios_shipping_settings_path %>
5
+ <% end if can?(:admin, current_store) %>
6
+
7
+ <%= content_tag :li, :class => ('active' if current == 'Product Packages') do %>
8
+ <%= link_to_with_icon 'gift', Spree.t(:product_packages), admin_product_packages_path %>
9
+ <% end if can?(:admin, current_store) %>
10
+ </ul>
11
+ <% end %>
@@ -0,0 +1,7 @@
1
+ en:
2
+ correios_shipping_settings: 'Correios Shipping Preferences'
3
+ correios_shipping:
4
+ id_correios: Correios ID
5
+ password_correios: Password (Supplied by ECT)
6
+ services: Services (separated by comma)
7
+ default_item_weight: Default item weight
@@ -0,0 +1,19 @@
1
+ pt-BR:
2
+ or: ou
3
+ correios_shipping_settings: 'Preferências dos Correios (ECT)'
4
+ spree:
5
+ edit_package: Editar Embalagem
6
+ correios_shipping_settings: 'Preferências dos Correios (ECT)'
7
+ correios_settings: Preferências
8
+ product_packages: Embalagens de Produto
9
+ new_package: Nova Embalagem
10
+ no_product_package_found: Nenhuma embalagem encontrada
11
+ length: Comprimento
12
+ correios_shipping:
13
+ id_correios: Identificação Correios
14
+ password_correios: Senha (Fornecida pela ECT)
15
+ services: Serviços (utilize "_" ao invés de espaços e separe por vírgula). Não altera a menos que tenha certeza do que está fazendo!
16
+ default_item_weight: Peso do item padrão (quando peso não for fornecido)
17
+ split_shipments: Permitir criar mais de um pacote para envio (Se o pedido passar das confs máximas da ECT)
18
+ max_shipping_weight: Peso máximo aceito pela ECT
19
+
data/config/routes.rb ADDED
@@ -0,0 +1,7 @@
1
+ Spree::Core::Engine.routes.draw do
2
+ namespace :admin do
3
+ resource :correios_shipping_settings, only: ['update', 'edit']
4
+
5
+ resources :product_packages
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ class CreateProductPackages < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_product_packages do |t|
4
+ t.integer "length", :default => 0, :null => false
5
+ t.integer "width", :default => 0, :null => false
6
+ t.integer "height", :default => 0, :null => false
7
+ t.integer "weight", :default => 0, :null => false
8
+ t.timestamps
9
+ end
10
+ end
11
+ end