spree_drop_ship 3.1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/Gemfile +9 -0
- data/LICENSE +21 -0
- data/README.md +116 -0
- data/Rakefile +15 -0
- data/Versionfile +6 -0
- data/app/assets/javascripts/spree/backend/spree_drop_ship.js +2 -0
- data/app/assets/javascripts/spree/frontend/spree_drop_ship.js +1 -0
- data/app/assets/stylesheets/spree/backend/spree_drop_ship.scss +22 -0
- data/app/assets/stylesheets/spree/frontend/spree_drop_ship.css +3 -0
- data/app/controllers/ckeditor/attachment_files_controller_decorator.rb +20 -0
- data/app/controllers/ckeditor/pictures_controller_decorator.rb +17 -0
- data/app/controllers/spree/admin/drop_ship_settings_controller.rb +19 -0
- data/app/controllers/spree/admin/products_controller_decorator.rb +19 -0
- data/app/controllers/spree/admin/shipments_controller.rb +47 -0
- data/app/controllers/spree/admin/stock_locations_controller_decorator.rb +14 -0
- data/app/controllers/spree/admin/suppliers_controller.rb +32 -0
- data/app/controllers/spree/api/v1/stock_locations_controller_decorator.rb +18 -0
- data/app/controllers/spree/base_controller_decorator.rb +23 -0
- data/app/mailers/spree/drop_ship_order_mailer.rb +13 -0
- data/app/mailers/spree/supplier_mailer.rb +12 -0
- data/app/models/ckeditor/asset_decorator.rb +5 -0
- data/app/models/spree/drop_ship_configuration.rb +17 -0
- data/app/models/spree/order_decorator.rb +27 -0
- data/app/models/spree/payment_decorator.rb +7 -0
- data/app/models/spree/product_decorator.rb +32 -0
- data/app/models/spree/shipment_decorator.rb +39 -0
- data/app/models/spree/stock/splitter/drop_ship.rb +42 -0
- data/app/models/spree/stock_location_decorator.rb +18 -0
- data/app/models/spree/supplier.rb +117 -0
- data/app/models/spree/supplier_ability.rb +28 -0
- data/app/models/spree/supplier_variant.rb +6 -0
- data/app/models/spree/user_decorator.rb +11 -0
- data/app/models/spree/variant_decorator.rb +24 -0
- data/app/models/spree.rb +5 -0
- data/app/overrides/spree/admin/products/_form/converted_admin_product_form_right.html.erb.deface +5 -0
- data/app/overrides/spree/admin/products/index/override_rows.html.erb.deface +22 -0
- data/app/overrides/spree/admin/shared/sub_menu/_configuration/add_drop_ship_settings.html.erb.deface +3 -0
- data/app/overrides/spree/admin/stock_locations/_form/add_supplier.html.erb.deface +12 -0
- data/app/overrides/spree/admin/stock_movements/_form/fix_bootstrap_form.html.erb.deface +11 -0
- data/app/overrides/spree/layouts/admin/add_profile_admin_tabs.html.erb.deface +8 -0
- data/app/overrides/spree/layouts/admin/converted_admin_tabs.html.erb.deface +18 -0
- data/app/views/spree/admin/drop_ship_settings/edit.html.erb +21 -0
- data/app/views/spree/admin/shared/_header.html.erb +24 -0
- data/app/views/spree/admin/shipments/edit.html.erb +24 -0
- data/app/views/spree/admin/shipments/index.html.erb +95 -0
- data/app/views/spree/admin/suppliers/_form.html.erb +69 -0
- data/app/views/spree/admin/suppliers/edit.html.erb +22 -0
- data/app/views/spree/admin/suppliers/index.html.erb +71 -0
- data/app/views/spree/admin/suppliers/new.html.erb +17 -0
- data/app/views/spree/drop_ship_order_mailer/supplier_order.html.erb +119 -0
- data/app/views/spree/shared/unauthorized.erb +1 -0
- data/app/views/spree/supplier_mailer/welcome.html.erb +53 -0
- data/config/locales/en.yml +89 -0
- data/config/locales/es.yml +133 -0
- data/config/routes.rb +9 -0
- data/db/migrate/20121006073854_create_suppliers.rb +20 -0
- data/db/migrate/20130216070944_product_belongs_to_supplier.rb +6 -0
- data/db/migrate/20130405005502_stock_locations_belongs_to_supplier.rb +6 -0
- data/db/migrate/20130405011127_user_belongs_to_supplier.rb +6 -0
- data/db/migrate/20130428063053_add_balanced_token_to_suppliers.rb +7 -0
- data/db/migrate/20130510181443_add_supplier_id_to_ckeditor_assets.rb +8 -0
- data/db/migrate/20130606220913_add_permalink_to_suppliers.rb +6 -0
- data/db/migrate/20140323170638_add_supplier_commission_to_shipments.rb +5 -0
- data/db/migrate/20140416184616_migrate_payment_and_commission.rb +7 -0
- data/db/migrate/20140529041325_create_spree_supplier_variants.rb +15 -0
- data/lib/generators/spree_drop_ship/install/install_generator.rb +30 -0
- data/lib/spree_drop_ship/engine.rb +31 -0
- data/lib/spree_drop_ship/factories.rb +93 -0
- data/lib/spree_drop_ship.rb +6 -0
- data/lib/tasks/spree_sample.rake +72 -0
- data/script/rails +7 -0
- data/spec/features/admin/orders_spec.rb +12 -0
- data/spec/features/admin/products_spec.rb +25 -0
- data/spec/features/admin/return_authorizations_spec.rb +7 -0
- data/spec/features/admin/settings_spec.rb +33 -0
- data/spec/features/admin/shipments_spec.rb +80 -0
- data/spec/features/admin/stock_management_spec.rb +153 -0
- data/spec/features/admin/stock_spec.rb +98 -0
- data/spec/features/admin/suppliers_spec.rb +126 -0
- data/spec/models/spree/order_decorator_spec.rb +54 -0
- data/spec/models/spree/payment_decorator_spec.rb +7 -0
- data/spec/models/spree/product_decorator_spec.rb +13 -0
- data/spec/models/spree/shipment_decorator_spec.rb +47 -0
- data/spec/models/spree/stock/splitter/drop_ship_spec.rb +62 -0
- data/spec/models/spree/stock_location_decorator_spec.rb +33 -0
- data/spec/models/spree/supplier_ability_spec.rb +172 -0
- data/spec/models/spree/supplier_spec.rb +123 -0
- data/spec/models/spree/supplier_variant_spec.rb +5 -0
- data/spec/models/spree/user_decorator_spec.rb +17 -0
- data/spec/models/spree/variant_decorator_spec.rb +7 -0
- data/spec/spec_helper.rb +79 -0
- data/spec/support/integration_helpers.rb +15 -0
- data/spree_drop_ship.gemspec +42 -0
- metadata +411 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
<% content_for :page_actions do %>
|
2
|
+
<%= button_link_to Spree.t('back_to_suppliers'), spree.admin_suppliers_path, icon: 'arrow-left' %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<% content_for :page_title do %>
|
6
|
+
<%= Spree.t('new_supplier') %>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<%= render 'spree/shared/error_messages', target: @object%>
|
10
|
+
|
11
|
+
<%= form_for [:admin, @object] do |f| %>
|
12
|
+
<%= render "form", form: f %>
|
13
|
+
<%# render 'create' and 'cancel' buttons %>
|
14
|
+
<div class="col-md-8">
|
15
|
+
<%= render :partial => 'spree/admin/shared/new_resource_links' %>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
@@ -0,0 +1,119 @@
|
|
1
|
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
2
|
+
<tbody>
|
3
|
+
<tr>
|
4
|
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
5
|
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #e0e0e0">
|
6
|
+
<tbody>
|
7
|
+
<tr>
|
8
|
+
<td valign="top">
|
9
|
+
<figure id="logo" data-hook><%= link_to image_tag(Spree::Config[:logo]), spree.root_url %></figure>
|
10
|
+
</td>
|
11
|
+
</tr>
|
12
|
+
<tr>
|
13
|
+
<td valign="top">
|
14
|
+
<h1 style="font-size:22px;font-weight:normal;line-height:22px;"><%= Spree.t('drop_ship_order_mailer.
|
15
|
+
supplier_order.hello', name: @supplier.name ) %></h1>
|
16
|
+
<p style="font-size:12px;line-height:16px;margin:0">
|
17
|
+
An order has been placed. Please confirm the shipment details, and <%= link_to 'update the shipment', spree.edit_admin_shipment_url(@shipment) %> once it has shipped.
|
18
|
+
</p>
|
19
|
+
</td>
|
20
|
+
</tr>
|
21
|
+
<tr>
|
22
|
+
<td>
|
23
|
+
<h2 style="font-size:18px;font-weight:normal;">Reference Number: <%= @shipment.number %></h2>
|
24
|
+
<h4 style="font-size:14px;font-weight:normal;">Placed on: <%= @shipment.created_at.strftime('%A %b %e, %Y at %l:%M%p %Z') %></h4>
|
25
|
+
</td>
|
26
|
+
</tr>
|
27
|
+
<tr>
|
28
|
+
<td>
|
29
|
+
<table cellspacing="0" cellpadding="0" border="0" width="650">
|
30
|
+
<thead>
|
31
|
+
<tr>
|
32
|
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px;padding:5px 9px 6px 9px;line-height:1em">Shipping Information:</th>
|
33
|
+
<th width="10"></th>
|
34
|
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px;padding:5px 9px 6px 9px;line-height:1em">Shipping Method:</th>
|
35
|
+
</tr>
|
36
|
+
</thead>
|
37
|
+
<tbody>
|
38
|
+
<tr>
|
39
|
+
<td valign="top" style="font-size:12px;padding:7px 9px 9px 9px;border-left:1px solid #eaeaea;border-bottom:1px solid #eaeaea;border-right:1px solid #eaeaea">
|
40
|
+
<%= @shipment.order.ship_address.firstname %> <%= @shipment.order.ship_address.lastname %><br/>
|
41
|
+
<%= @shipment.order.ship_address.address1 %><br/>
|
42
|
+
<% unless @shipment.order.ship_address.address2.blank? %><%= @shipment.order.ship_address.address2 %><br/><% end %>
|
43
|
+
<%= @shipment.order.ship_address.city %>, <%= @shipment.order.ship_address.state.name %> <%= @shipment.order.ship_address.zipcode %><br/>
|
44
|
+
<%= @shipment.order.ship_address.country.name %><br/>
|
45
|
+
T: <a href="tel:<%= @shipment.order.ship_address.phone %>" value="<%= @shipment.order.ship_address.phone %>" target="_blank"><%= @shipment.order.ship_address.phone %></a>
|
46
|
+
</td>
|
47
|
+
<td> </td>
|
48
|
+
<td valign="top" style="font-size:12px;padding:7px 9px 9px 9px;border-left:1px solid #eaeaea;border-bottom:1px solid #eaeaea;border-right:1px solid #eaeaea">
|
49
|
+
<%= @shipment.shipping_method.name %><br/>
|
50
|
+
</td>
|
51
|
+
</tr>
|
52
|
+
</tbody>
|
53
|
+
</table>
|
54
|
+
<br>
|
55
|
+
<table cellspacing="0" cellpadding="0" border="0" width="650" style="border:1px solid #eaeaea">
|
56
|
+
<thead>
|
57
|
+
<tr>
|
58
|
+
<th align="left" bgcolor="#EAEAEA" style="font-size:13px;padding:3px 9px">Item</th>
|
59
|
+
<th align="left" bgcolor="#EAEAEA" style="font-size:13px;padding:3px 9px">Sku</th>
|
60
|
+
<th align="center" bgcolor="#EAEAEA" style="font-size:13px;padding:3px 9px">Qty</th>
|
61
|
+
<th align="right" bgcolor="#EAEAEA" style="font-size:13px;padding:3px 9px">Subtotal</th>
|
62
|
+
</tr>
|
63
|
+
</thead>
|
64
|
+
<tbody bgcolor="#F6F6F6">
|
65
|
+
<% @shipment.line_items.each do |line_item| %>
|
66
|
+
<tr>
|
67
|
+
<td align="left" valign="top" style="font-size:11px;padding:3px 9px;border-bottom:1px dotted #cccccc">
|
68
|
+
<strong style="font-size:11px"><%= line_item.variant.name %></strong>
|
69
|
+
</td>
|
70
|
+
<td align="left" valign="top" style="font-size:11px;padding:3px 9px;border-bottom:1px dotted #cccccc"><%= line_item.variant.sku %></td>
|
71
|
+
<td align="center" valign="top" style="font-size:11px;padding:3px 9px;border-bottom:1px dotted #cccccc"><%= line_item.quantity %></td>
|
72
|
+
<td align="right" valign="top" style="font-size:11px;padding:3px 9px;border-bottom:1px dotted #cccccc">
|
73
|
+
<span><%= line_item.display_amount %></span>
|
74
|
+
</td>
|
75
|
+
</tr>
|
76
|
+
<% end %>
|
77
|
+
</tbody>
|
78
|
+
<tbody>
|
79
|
+
<tr>
|
80
|
+
<td colspan="3" align="right" style="padding:3px 9px">
|
81
|
+
Subtotal
|
82
|
+
</td>
|
83
|
+
<td align="right" style="padding:3px 9px">
|
84
|
+
<span><%= @shipment.display_item_cost %></span>
|
85
|
+
</td>
|
86
|
+
</tr>
|
87
|
+
<tr>
|
88
|
+
<td colspan="3" align="right" style="padding:3px 9px">
|
89
|
+
Shipping & Handling
|
90
|
+
</td>
|
91
|
+
<td align="right" style="padding:3px 9px">
|
92
|
+
<span><%= @shipment.display_final_price %></span>
|
93
|
+
</td>
|
94
|
+
</tr>
|
95
|
+
<tr>
|
96
|
+
<td colspan="3" align="right" style="padding:3px 9px">
|
97
|
+
<strong>Grand Total</strong>
|
98
|
+
</td>
|
99
|
+
<td align="right" style="padding:3px 9px">
|
100
|
+
<strong><span><%= @shipment.display_final_price_with_items %></span></strong>
|
101
|
+
</td>
|
102
|
+
</tr>
|
103
|
+
</tbody>
|
104
|
+
</table>
|
105
|
+
</td>
|
106
|
+
</tr>
|
107
|
+
<tr>
|
108
|
+
<td bgcolor="#EAEAEA" align="center" style="background:#eaeaea;text-align:center">
|
109
|
+
<center>
|
110
|
+
<p style="font-size:12px;margin:0"><%= raw Spree.t('drop_ship_order_mailer.supplier_order.thank_you_again', name: Spree::Store.current.name) %></p>
|
111
|
+
</center>
|
112
|
+
</td>
|
113
|
+
</tr>
|
114
|
+
</tbody>
|
115
|
+
</table>
|
116
|
+
</td
|
117
|
+
</tr>
|
118
|
+
</tbody>
|
119
|
+
</table>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= Spree.t(:authorization_failure) %>
|
@@ -0,0 +1,53 @@
|
|
1
|
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
2
|
+
<tbody>
|
3
|
+
<tr>
|
4
|
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
5
|
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #e0e0e0">
|
6
|
+
<tbody>
|
7
|
+
<tr>
|
8
|
+
<td valign="top">
|
9
|
+
<h1><%= link_to Spree::Store.current.name, spree.root_url %></h1>
|
10
|
+
</td>
|
11
|
+
</tr>
|
12
|
+
<tr>
|
13
|
+
<td valign="top">
|
14
|
+
<h1 style="font-size:22px;font-weight:normal;line-height:22px;"><%= Spree.t('supplier_mailer.welcome.hello', name: @supplier.name ) %></h1>
|
15
|
+
<p style="font-size:12px;line-height:16px;">
|
16
|
+
<%= Spree.t('supplier_mailer.welcome.manage_your_account' ) %>
|
17
|
+
<%= link_to Spree.t('supplier_mailer.welcome.logging_into_your_account'), spree.login_url, target: '_blank' %>
|
18
|
+
</p>
|
19
|
+
</td>
|
20
|
+
</tr>
|
21
|
+
<tr>
|
22
|
+
<td>
|
23
|
+
<h2 style="font-size:18px;font-weight:normal;"><%= Spree.t('supplier_mailer.welcome.please_verify_your_information') %></h2>
|
24
|
+
<table cellspacing="0" cellpadding="0" border="0" width="650">
|
25
|
+
<thead>
|
26
|
+
<tr>
|
27
|
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px;padding:5px 9px 6px 9px;line-height:1em"><%= Spree.t('supplier_mailer.welcome.supplier_information') %></th>
|
28
|
+
</tr>
|
29
|
+
</thead>
|
30
|
+
<tbody>
|
31
|
+
<tr>
|
32
|
+
<td valign="top" style="font-size:12px;padding:7px 9px 9px 9px;border-left:1px solid #eaeaea;border-bottom:1px solid #eaeaea;border-right:1px solid #eaeaea">
|
33
|
+
<b><%= Spree.t(:name) %>:</b> <%= @supplier.name %><br/>
|
34
|
+
<b><%= Spree.t(:email) %>:</b> <%= mail_to @supplier.email %><br/>
|
35
|
+
</td>
|
36
|
+
</tr>
|
37
|
+
</tbody>
|
38
|
+
</table>
|
39
|
+
</td>
|
40
|
+
</tr>
|
41
|
+
<tr>
|
42
|
+
<td bgcolor="#EAEAEA" align="center" style="background:#eaeaea;text-align:center">
|
43
|
+
<center>
|
44
|
+
<p style="font-size:12px;margin:0"><%= raw Spree.t('supplier_mailer.welcome.thank_you_again', name: Spree::Store.current.name) %></p>
|
45
|
+
</center>
|
46
|
+
</td>
|
47
|
+
</tr>
|
48
|
+
</tbody>
|
49
|
+
</table>
|
50
|
+
</td>
|
51
|
+
</tr>
|
52
|
+
</tbody>
|
53
|
+
</table>
|
@@ -0,0 +1,89 @@
|
|
1
|
+
en:
|
2
|
+
activerecord:
|
3
|
+
attributes:
|
4
|
+
spree/supplier:
|
5
|
+
commission_flat_rate: Commission Flat Rate
|
6
|
+
commission_percentage: Commission Percentage
|
7
|
+
name: Name
|
8
|
+
tax_id: TAX ID
|
9
|
+
url: URL
|
10
|
+
errors:
|
11
|
+
models:
|
12
|
+
spree/supplier:
|
13
|
+
attributes:
|
14
|
+
url:
|
15
|
+
invalid: is invalid. Please be sure to include include 'http://'
|
16
|
+
not_responding: 'is invalid, not responding or redirecting to another location'
|
17
|
+
spree:
|
18
|
+
admin:
|
19
|
+
drop_ship_settings:
|
20
|
+
update:
|
21
|
+
success: Drop ship settings successfully updated.
|
22
|
+
orders:
|
23
|
+
edit:
|
24
|
+
approve_drop_ship_orders: Approve Drop Ship Orders
|
25
|
+
resend_drop_ship_orders: Resend Drop Ship Orders
|
26
|
+
drop_ship_order_approval_confirmation: This will send an email notification to each supplier. Continue?
|
27
|
+
show:
|
28
|
+
approve_drop_ship_orders: Approve Drop Ship Orders
|
29
|
+
resend_drop_ship_orders: Resend Drop Ship Orders
|
30
|
+
drop_ship_order_approval_confirmation: This will send an email notification to each supplier. Continue?
|
31
|
+
back_to_orders_list: Back To Orders List
|
32
|
+
back_to_suppliers: Back To Suppliers
|
33
|
+
business: Business
|
34
|
+
cancel: Cancel
|
35
|
+
company_info: Company Info
|
36
|
+
confirm_order: Confirm Order
|
37
|
+
contact_address: Contact Address
|
38
|
+
drop_ship: Drop Ship
|
39
|
+
drop_ship_order_mailer:
|
40
|
+
supplier_order:
|
41
|
+
hello: "Hello %{name},"
|
42
|
+
subject: "%{name} Drop Shipment #%{number}"
|
43
|
+
thank_you_again: "Thank you again for your business, <b>%{name}</b>"
|
44
|
+
drop_ship_order_number: "Drop Ship Order #%{number}"
|
45
|
+
drop_ship_orders: Drop Ship Orders
|
46
|
+
drop_ship_settings: Drop Ship Settings
|
47
|
+
editing_supplier: Editing Supplier
|
48
|
+
individual: Individual
|
49
|
+
listing_suppliers: Listing Suppliers
|
50
|
+
manage: Manage
|
51
|
+
must_be_logged_in: 'Must Be Logged In'
|
52
|
+
name: Name
|
53
|
+
new_supplier: New Supplier
|
54
|
+
or: or
|
55
|
+
order_state:
|
56
|
+
active: Active
|
57
|
+
completed: Completed
|
58
|
+
confirmed: Confirmed
|
59
|
+
delivered: Delivered
|
60
|
+
resend_order_to_supplier: Resend Order To Supplier
|
61
|
+
save: Save
|
62
|
+
search: Search
|
63
|
+
send_order_to_supplier: Send Order To Supplier
|
64
|
+
shared:
|
65
|
+
unauthorized:
|
66
|
+
explained: You are not authorized to access this page.
|
67
|
+
unauthorized: Unauthorized
|
68
|
+
show_only_incomplete_orders: Show Only Incomplete Orders
|
69
|
+
signup: Sign Up
|
70
|
+
signup_to_become_a_supplier: 'Sign Up To Become A Supplier'
|
71
|
+
supplier: Supplier
|
72
|
+
supplier_details: Supplier Details
|
73
|
+
supplier_info: Supplier Info
|
74
|
+
supplier_information: Supplier Information
|
75
|
+
supplier_mailer:
|
76
|
+
welcome:
|
77
|
+
hello: "Hello %{name},"
|
78
|
+
logging_into_your_account: logging into your account.
|
79
|
+
manage_your_account: You may now manage your profile and inventory by
|
80
|
+
subject: 'Thank you for signing up. Please verify your information.'
|
81
|
+
thank_you_again: "Thank you again for your business, <b>%{name}</b>"
|
82
|
+
thank_you_for_signing_up: Thank you for signing up to be a drop ship supplier.
|
83
|
+
supplier_registration:
|
84
|
+
already_signed_up: "You've already signed up to become a supplier."
|
85
|
+
create:
|
86
|
+
invalid_password: Invalid password please sign in or sign up.
|
87
|
+
success: Thank you for signing up!
|
88
|
+
supplier_signup: Supplier Sign Up
|
89
|
+
suppliers: Suppliers
|
@@ -0,0 +1,133 @@
|
|
1
|
+
es:
|
2
|
+
activerecord:
|
3
|
+
attributes:
|
4
|
+
spree/supplier:
|
5
|
+
commission_flat_rate: Tarifa fija de comisión
|
6
|
+
commission_percentage: Porcentaje de comisión
|
7
|
+
name: Nombre
|
8
|
+
tax_id: TAX ID
|
9
|
+
url: URL
|
10
|
+
address1: Dirección
|
11
|
+
address2: Dirección (continuación)
|
12
|
+
city: Ciudad
|
13
|
+
commission: Comisión
|
14
|
+
country: País
|
15
|
+
email: Email
|
16
|
+
state: Estado
|
17
|
+
active: Activo
|
18
|
+
url: URL
|
19
|
+
zipcode: Código Postal(ZipCode)
|
20
|
+
supplier_info: Información de proveedor
|
21
|
+
supplier_signup: Registro de proveedor
|
22
|
+
suppliers: Proveedores
|
23
|
+
spree/shipment:
|
24
|
+
created_at: Creado
|
25
|
+
number: Número
|
26
|
+
state: Estatus
|
27
|
+
item_cost: Costo ítem
|
28
|
+
cost: Costo
|
29
|
+
total_tax: Total impuesto
|
30
|
+
final_price: Precio final
|
31
|
+
supplier_commission: Comisión Proveedor
|
32
|
+
errors:
|
33
|
+
models:
|
34
|
+
spree/supplier:
|
35
|
+
attributes:
|
36
|
+
url:
|
37
|
+
invalid: es inválido. Por favor asegúrece que 'http://' esté incluido
|
38
|
+
not_responding: 'es inválido, no responde o ha redireccionado a otra url'
|
39
|
+
drop_ship_order_number: "Drop Ship Orden #%{number}"
|
40
|
+
drop_ship_orders: Drop Ship Ordenes
|
41
|
+
drop_ship_settings: Drop Ship Configuración
|
42
|
+
must_be_logged_in: 'Debe Estar Autenticado'
|
43
|
+
signup: Registro
|
44
|
+
signup_to_become_a_supplier: 'Autentíquese para ser un Proveedor'
|
45
|
+
spree:
|
46
|
+
admin:
|
47
|
+
drop_ship_settings:
|
48
|
+
update:
|
49
|
+
success: Configuración Drop ship actualizada correctamente
|
50
|
+
orders:
|
51
|
+
drop_ship_order_order_header:
|
52
|
+
drop_ship_order_ids: DSO IDs
|
53
|
+
edit:
|
54
|
+
approve_drop_ship_orders: Ordenes aprobadas por el proveedor
|
55
|
+
resend_drop_ship_orders: Reenviar ordenes al proveedor
|
56
|
+
drop_ship_order_approval_confirmation: Se le enviará una notificación por correo electrónico a cada proveedor. ¿Desea continuar?
|
57
|
+
show:
|
58
|
+
approve_drop_ship_orders: Ordene aprobadas por el proveedor
|
59
|
+
resend_drop_ship_orders: Reenviar ordenes al proveedor
|
60
|
+
drop_ship_order_approval_confirmation: Se le enviará una notificación por correo electrónico a cada proveedor. ¿Desea continuar?
|
61
|
+
suppliers:
|
62
|
+
edit:
|
63
|
+
back_to_suppliers: Regresar a los proveedores
|
64
|
+
new:
|
65
|
+
new_supplier: Nuevo Proveedor
|
66
|
+
form:
|
67
|
+
supplier_details: Detalles del Proveedor
|
68
|
+
supplier_address: Dirección del Proveedor
|
69
|
+
drop_ship_orders:
|
70
|
+
deliver:
|
71
|
+
error: "La orden %{number} no pudo ser enviada al proveedor."
|
72
|
+
success: "La orden %{number} fue enviada al proveedor."
|
73
|
+
orders_sent: Todas las ordenes fueron enviadas a los proveedores
|
74
|
+
orders_not_sent: Algunas o todas las ordenes no pudieron ser enviadas. Por favor contacte directamente al proveedor.
|
75
|
+
back_to_orders_list: Regresar a las ordenes
|
76
|
+
back_to_suppliers: Regresar a los proveedores
|
77
|
+
business: Negocio
|
78
|
+
cancel: Cancelar
|
79
|
+
company_info: Informacion de la compañia
|
80
|
+
confirm_order: Confirmar Orden
|
81
|
+
contact_address: Dirección de contacto
|
82
|
+
drop_ship: Drop Ship
|
83
|
+
editing_supplier: Editar proveedor
|
84
|
+
default_commission_flat_rate: Comision por defecto
|
85
|
+
default_commission_percentage: Porcentaje de comision por defecto
|
86
|
+
automatically_deliver_orders_to_supplier: Enviar orden automaticamente a los proveedores
|
87
|
+
send_supplier_email: Enviar correo al proveedor
|
88
|
+
individual: Individual
|
89
|
+
listing_suppliers: Lista de proveedores
|
90
|
+
manage: Gestionar
|
91
|
+
name: Nombre
|
92
|
+
or: ó
|
93
|
+
suppliers: Proveedores
|
94
|
+
listing_shipments: 'Lista de envíos'
|
95
|
+
order_state:
|
96
|
+
active: Activo
|
97
|
+
completed: Completado
|
98
|
+
confirmed: Confirmado
|
99
|
+
delivered: Entregado
|
100
|
+
resend_order_to_supplier: Reenviar orden al proveedor.
|
101
|
+
save: Guardar
|
102
|
+
search: Buscar
|
103
|
+
send_order_to_supplier: Enviar orden al proveedor.
|
104
|
+
show_only_incomplete_orders: Solo mostrar ordenes incompletas
|
105
|
+
supplier: Proveedor
|
106
|
+
supplier_information: Información del proveedor
|
107
|
+
drop_ship_order_mailer:
|
108
|
+
supplier_order:
|
109
|
+
hello: "Hola %{name},"
|
110
|
+
subject: "%{name} Orden al proveedor #%{number}"
|
111
|
+
thank_you_again: "Gracias nuevamente por su negocio, <b>%{name}</b>"
|
112
|
+
shared:
|
113
|
+
unauthorized:
|
114
|
+
explained: Usted no está autorizado a acceder a esta página.
|
115
|
+
unauthorized: No autorizado
|
116
|
+
supplier_mailer:
|
117
|
+
welcome:
|
118
|
+
hello: "Hola %{name},"
|
119
|
+
check_your_status: Puede revisar el estado de su pedido por
|
120
|
+
logging_into_your_account: Autentíquese.
|
121
|
+
once_your_request_is_approved: Una vez que su pedido sea aprobado podrá gestionar su inventario.
|
122
|
+
subject: 'Gracias por autenticarse. Por favor verifique la información.'
|
123
|
+
thank_you_again: "Gracias nuevamente por su negocio, <b>%{name}</b>"
|
124
|
+
thank_you_for_signing_up: Gracias por autenticarse para ser un proveedor.
|
125
|
+
suppliers:
|
126
|
+
already_signed_up: "Ya está autenticado para convertirse en un proveedor."
|
127
|
+
create:
|
128
|
+
success: Gracias por autenticarse!
|
129
|
+
supplier_registration:
|
130
|
+
already_signed_up: "Ya inicio sesión como proveedor."
|
131
|
+
create:
|
132
|
+
invalid_password: Clave incorrecta por favor inicie sesion.
|
133
|
+
success: Gracias por registrarse!
|
data/config/routes.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
class CreateSuppliers < ActiveRecord::Migration
|
2
|
+
|
3
|
+
def change
|
4
|
+
create_table :spree_suppliers do |t|
|
5
|
+
t.boolean :active, default: false, null: false
|
6
|
+
t.references :address
|
7
|
+
t.decimal :commission_flat_rate, :precision => 8, :scale => 2, :default => 0.0, :null => false
|
8
|
+
t.float :commission_percentage, default: 0.0, null: false
|
9
|
+
t.string :email
|
10
|
+
t.string :name
|
11
|
+
t.string :url
|
12
|
+
t.datetime :deleted_at
|
13
|
+
t.timestamps
|
14
|
+
end
|
15
|
+
add_index :spree_suppliers, :address_id
|
16
|
+
add_index :spree_suppliers, :deleted_at
|
17
|
+
add_index :spree_suppliers, :active
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class CreateSpreeSupplierVariants < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :spree_supplier_variants do |t|
|
4
|
+
t.belongs_to :supplier, index: true
|
5
|
+
t.belongs_to :variant, index: true
|
6
|
+
t.decimal :cost
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
Spree::Product.where.not(supplier_id: nil).each do |product|
|
11
|
+
product.add_supplier! product.supplier_id
|
12
|
+
end
|
13
|
+
remove_column :spree_products, :supplier_id
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module SpreeDropShip
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
class_option :auto_run_migrations, :type => :boolean, :default => false
|
5
|
+
|
6
|
+
def add_javascripts
|
7
|
+
# append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/spree_drop_ship\n"
|
8
|
+
append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/spree_drop_ship\n"
|
9
|
+
end
|
10
|
+
|
11
|
+
def add_stylesheets
|
12
|
+
# inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/spree_drop_ship\n", :before => /\*\//, :verbose => true
|
13
|
+
inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/spree_drop_ship\n", :before => /\*\//, :verbose => true
|
14
|
+
end
|
15
|
+
|
16
|
+
def add_migrations
|
17
|
+
run 'bundle exec rake railties:install:migrations FROM=spree_drop_ship'
|
18
|
+
end
|
19
|
+
|
20
|
+
def run_migrations
|
21
|
+
run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]')
|
22
|
+
if run_migrations
|
23
|
+
run 'bundle exec rake db:migrate'
|
24
|
+
else
|
25
|
+
puts 'Skipping rake db:migrate, don\'t forget to run it!'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module SpreeDropShip
|
2
|
+
class Engine < Rails::Engine
|
3
|
+
require 'spree/core'
|
4
|
+
isolate_namespace Spree
|
5
|
+
engine_name 'spree_drop_ship'
|
6
|
+
|
7
|
+
config.autoload_paths += %W(#{config.root}/lib)
|
8
|
+
|
9
|
+
# use rspec for tests
|
10
|
+
config.generators do |g|
|
11
|
+
g.test_framework :rspec
|
12
|
+
end
|
13
|
+
|
14
|
+
initializer 'spree_drop_ship.custom_splitters', after: 'spree.register.stock_splitters' do |app|
|
15
|
+
app.config.spree.stock_splitters << Spree::Stock::Splitter::DropShip
|
16
|
+
end
|
17
|
+
|
18
|
+
initializer "spree_drop_ship.preferences", before: :load_config_initializers do |app|
|
19
|
+
SpreeDropShip::Config = Spree::DropShipConfiguration.new
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.activate
|
23
|
+
Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
|
24
|
+
Rails.configuration.cache_classes ? require(c) : load(c)
|
25
|
+
end
|
26
|
+
Spree::Ability.register_ability(Spree::SupplierAbility)
|
27
|
+
end
|
28
|
+
|
29
|
+
config.to_prepare &method(:activate).to_proc
|
30
|
+
end
|
31
|
+
end
|