piggybak 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -0
- data/Gemfile.lock +5 -0
- data/README.md +117 -0
- data/Rakefile +2 -1
- data/VERSION +1 -1
- data/app/assets/javascripts/piggybak.js +62 -2
- data/app/controllers/piggybak/orders_controller.rb +26 -5
- data/{lib/application_helper.rb → app/helpers/piggybak_helper.rb} +6 -1
- data/app/models/piggybak/address.rb +14 -1
- data/app/models/piggybak/cart.rb +19 -12
- data/app/models/piggybak/country.rb +5 -0
- data/app/models/piggybak/credit.rb +8 -0
- data/app/models/piggybak/line_item.rb +13 -6
- data/app/models/piggybak/order.rb +12 -6
- data/app/models/piggybak/payment.rb +5 -3
- data/app/models/piggybak/payment_calculator/authorize_net.rb +4 -0
- data/app/models/piggybak/payment_calculator/fake.rb +4 -0
- data/app/models/piggybak/payment_method.rb +8 -3
- data/app/models/piggybak/shipping_calculator/free.rb +13 -0
- data/app/models/piggybak/shipping_calculator/pickup.rb +1 -1
- data/app/models/piggybak/shipping_method.rb +9 -7
- data/app/models/piggybak/state.rb +1 -0
- data/app/models/piggybak/tax_calculator/{flat_rate.rb → percent.rb} +1 -1
- data/app/models/piggybak/tax_method.rb +8 -2
- data/app/models/piggybak/{product.rb → variant.rb} +5 -4
- data/app/views/piggybak/cart/_form.html.erb +7 -7
- data/app/views/piggybak/cart/_items.html.erb +9 -9
- data/app/views/piggybak/cart/show.html.erb +2 -0
- data/app/views/piggybak/notifier/order_notification.text.erb +1 -1
- data/app/views/piggybak/orders/_address_form.html.erb +18 -14
- data/app/views/piggybak/orders/_details.html.erb +48 -0
- data/app/views/piggybak/orders/download.text.erb +19 -0
- data/app/views/piggybak/orders/list.html.erb +12 -12
- data/app/views/piggybak/orders/no_access.text.erb +1 -0
- data/app/views/piggybak/orders/receipt.html.erb +1 -49
- data/app/views/piggybak/orders/show.html.erb +36 -31
- data/app/views/rails_admin/main/_actions.html.erb +9 -2
- data/config/routes.rb +12 -3
- data/db/migrate/20111227150106_create_orders.rb +4 -3
- data/db/migrate/20111227150322_create_addresses.rb +2 -1
- data/db/migrate/20111227150432_create_line_items.rb +2 -2
- data/db/migrate/{20111227213558_create_products.rb → 20111227213558_create_variants.rb} +3 -3
- data/db/migrate/20111228231829_create_payments.rb +3 -1
- data/db/migrate/20111228231838_create_shipments.rb +1 -1
- data/db/migrate/20120102162414_create_countries.rb +10 -0
- data/db/migrate/20120102162415_create_states.rb +1 -0
- data/db/migrate/20120104020930_populate_countries_and_states.rb +18 -0
- data/db/migrate/20120106010412_create_credits.rb +14 -0
- data/lib/{acts_as_product → acts_as_variant}/base.rb +6 -6
- data/lib/piggybak.rb +59 -23
- data/piggybak.gemspec +26 -11
- metadata +64 -62
- data/README.rdoc +0 -19
@@ -0,0 +1,19 @@
|
|
1
|
+
Order: #<%= @order.id %>
|
2
|
+
|
3
|
+
Email: <%= @order.email %>
|
4
|
+
Phone: <%= @order.phone %>
|
5
|
+
|
6
|
+
<% @order.line_items.each do |line_item| %>
|
7
|
+
<%= line_item.quantity %> x <%= raw line_item.variant.description %> (<%= number_to_currency line_item.total %>)
|
8
|
+
<% end -%>
|
9
|
+
|
10
|
+
Subtotal: <%= number_to_currency @order.line_items.inject(0) { |subtotal, li| subtotal + li.total } %>
|
11
|
+
Tax: <%= number_to_currency @order.tax_charge %>
|
12
|
+
Shipping: <%= number_to_currency @order.shipments.inject(0) { |shipping, shipment| shipping + shipment.total } %>
|
13
|
+
Total: <%= number_to_currency @order.total %>
|
14
|
+
|
15
|
+
Billing Information
|
16
|
+
<%= raw @order.billing_address.display.gsub("<br />", "\n") %>
|
17
|
+
|
18
|
+
Shipping Information
|
19
|
+
<%= raw @order.shipping_address.display.gsub("<br />", "\n") %>
|
@@ -1,12 +1,12 @@
|
|
1
|
-
<
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
<
|
7
|
-
|
8
|
-
|
9
|
-
<%=
|
10
|
-
|
11
|
-
|
12
|
-
|
1
|
+
<div id="list_orders">
|
2
|
+
<h1>Your Orders</h1>
|
3
|
+
|
4
|
+
<% current_user.piggybak_orders.each do |order| -%>
|
5
|
+
|
6
|
+
<h2>Order #<%= order.id %></h2>
|
7
|
+
Status: <%= order.status %><br />
|
8
|
+
Created at: <%= order.created_at.strftime("%m-%d-%Y") %><br />
|
9
|
+
<%= render "details", :order => order %>
|
10
|
+
|
11
|
+
<% end -%>
|
12
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
You do not have access to view this information.
|
@@ -1,53 +1,5 @@
|
|
1
1
|
<div id="receipt">
|
2
2
|
<h1>Thanks for your Order</h1>
|
3
|
-
|
4
|
-
<table id="items" cellpadding="5" cellspacing="0">
|
5
|
-
<tr>
|
6
|
-
<th>Item</th>
|
7
|
-
<th>Price</th>
|
8
|
-
<th>Quantity</th>
|
9
|
-
<th>Subtotal</th>
|
10
|
-
</tr>
|
11
|
-
<% @order.line_items.each do |line_item| %>
|
12
|
-
<tr>
|
13
|
-
<td><%= line_item.product.description %></td>
|
14
|
-
<td><%= line_item.product.price %></td>
|
15
|
-
<td><%= line_item.quantity %></td>
|
16
|
-
<td><%= number_to_currency line_item.total %></td>
|
17
|
-
</tr>
|
18
|
-
<% end -%>
|
19
|
-
<tr>
|
20
|
-
<td colspan="4"></td>
|
21
|
-
</tr>
|
22
|
-
<tr>
|
23
|
-
<td colspan="2"></td>
|
24
|
-
<td>Subtotal</td>
|
25
|
-
<td><%= number_to_currency @order.line_items.inject(0) { |subtotal, li| subtotal + li.total } %></td>
|
26
|
-
</tr>
|
27
|
-
<tr>
|
28
|
-
<td colspan="2"></td>
|
29
|
-
<td>Tax</td>
|
30
|
-
<td><%= number_to_currency @order.tax_charge %></td>
|
31
|
-
</tr>
|
32
|
-
<tr>
|
33
|
-
<td colspan="2"></td>
|
34
|
-
<td>Shipping</td>
|
35
|
-
<td><%= number_to_currency @order.shipments.inject(0) { |shipping, shipment| shipping + shipment.total } %></td>
|
36
|
-
</tr>
|
37
|
-
<tr>
|
38
|
-
<td colspan="2"></td>
|
39
|
-
<td>Total</td>
|
40
|
-
<td><%= number_to_currency @order.total %></td>
|
41
|
-
</tr>
|
42
|
-
</table>
|
43
3
|
|
44
|
-
|
45
|
-
Phone: <%= @order.phone %>
|
46
|
-
|
47
|
-
<h3>Billing Information</h3>
|
48
|
-
<%= raw @order.billing_address.display %>
|
49
|
-
|
50
|
-
<h3>Shipping Information</h3>
|
51
|
-
<%= raw @order.shipping_address.display %>
|
52
|
-
|
4
|
+
<%= render "details", :order => @order %>
|
53
5
|
</div>
|
@@ -4,10 +4,31 @@
|
|
4
4
|
<%= form_for @order, :url => piggybak.order_submit_url, :method => "POST" do |f| %>
|
5
5
|
|
6
6
|
<% if @order.errors.any? -%>
|
7
|
+
<div id="checkout_error">
|
7
8
|
<b>You have errors with your submission:</b><br />
|
8
9
|
<%= raw @order.errors.full_messages.join("<br />") %>
|
10
|
+
</div>
|
9
11
|
<% end -%>
|
10
12
|
<div class="clear"></div>
|
13
|
+
|
14
|
+
<div id="user_details">
|
15
|
+
<h3>User Details</h3>
|
16
|
+
<div class="item">
|
17
|
+
<% if current_user -%>
|
18
|
+
<%= f.label :email %>
|
19
|
+
<%= f.text_field :email, { :readonly => true, :class => "readonly" } %><br />
|
20
|
+
<span>or <%= link_to 'LOGOUT', destroy_user_session_path, :method => :delete, :class => "last" %></span>
|
21
|
+
<% else -%>
|
22
|
+
<%= f.label :email %>
|
23
|
+
<%= f.text_field :email %><br />
|
24
|
+
<span>or <%= link_to 'LOG IN', new_user_session_path %></span>
|
25
|
+
<% end -%>
|
26
|
+
</div>
|
27
|
+
<div class="item">
|
28
|
+
<%= f.label :phone %>
|
29
|
+
<%= f.text_field :phone %>
|
30
|
+
</div>
|
31
|
+
</div>
|
11
32
|
|
12
33
|
<div id="billing_address">
|
13
34
|
<h3>Billing Address</h3>
|
@@ -16,48 +37,30 @@
|
|
16
37
|
<% end -%>
|
17
38
|
</div>
|
18
39
|
<div id="shipping_address">
|
19
|
-
<h3>
|
40
|
+
<h3>
|
41
|
+
Shipping Address
|
42
|
+
<a href="#" id="copy">copy from billing</a>
|
43
|
+
</h3>
|
44
|
+
|
20
45
|
<%= f.fields_for :shipping_address do |shipping_address| %>
|
21
46
|
<%= render "address_form", :address => shipping_address %>
|
22
47
|
<% end -%>
|
23
48
|
</div>
|
24
49
|
|
25
50
|
<div id="add_details">
|
26
|
-
<div id="user_details">
|
27
|
-
<h3>User Details</h3>
|
28
|
-
<p>
|
29
|
-
<% if current_user -%>
|
30
|
-
<%= f.label :email %>
|
31
|
-
<%= f.text_field :email, { :readonly => true, :class => "readonly" } %>
|
32
|
-
<% if false -%>
|
33
|
-
<span>or <%= link_to 'LOGOUT', destroy_user_session_path, :method => :delete, :class => "last" %></span>
|
34
|
-
<% end -%>
|
35
|
-
<% else -%>
|
36
|
-
<%= f.label :email %>
|
37
|
-
<%= f.text_field :email %>
|
38
|
-
<% if false -%>
|
39
|
-
<span>or <%= link_to 'LOG IN', new_user_session_path %></span>
|
40
|
-
<% end -%>
|
41
|
-
<% end -%>
|
42
|
-
</p>
|
43
|
-
<p>
|
44
|
-
<%= f.label :phone %>
|
45
|
-
<%= f.text_field :phone %>
|
46
|
-
</p>
|
47
|
-
</div>
|
48
51
|
<div id="shipping">
|
49
52
|
<h3>Shipping Option</h3>
|
50
53
|
<%= f.fields_for :shipments, f.object.shipments.build do |shipment| %>
|
51
|
-
<
|
54
|
+
<div class="item">
|
52
55
|
<%= shipment.label :shipping_method_id %>
|
53
56
|
<%= shipment.select :shipping_method_id, [] %>
|
54
|
-
</
|
57
|
+
</div>
|
55
58
|
<% end -%>
|
56
59
|
</div>
|
57
60
|
<div id="payment">
|
58
61
|
<h3>Payment</h3>
|
59
62
|
<%= f.fields_for :payments, f.object.payments.build do |payment| %>
|
60
|
-
<
|
63
|
+
<div class="item">
|
61
64
|
<%= payment.label :number %>
|
62
65
|
<% if @order.errors.keys.include?("payments.number".to_sym) %>
|
63
66
|
<span class="field_with_errors">
|
@@ -66,9 +69,9 @@
|
|
66
69
|
<% else -%>
|
67
70
|
<%= payment.text_field :number %>
|
68
71
|
<% end -%>
|
69
|
-
</
|
72
|
+
</div>
|
70
73
|
|
71
|
-
<
|
74
|
+
<div class="item">
|
72
75
|
<%= payment.label :verification_value %>
|
73
76
|
<% if @order.errors.keys.include?("payments.verification_value".to_sym) %>
|
74
77
|
<span class="field_with_errors">
|
@@ -77,9 +80,9 @@
|
|
77
80
|
<% else -%>
|
78
81
|
<%= payment.text_field :verification_value %>
|
79
82
|
<% end -%>
|
80
|
-
</
|
83
|
+
</div>
|
81
84
|
|
82
|
-
<
|
85
|
+
<div class="item">
|
83
86
|
<%= payment.label :month %>
|
84
87
|
<% if @order.errors.keys.include?("payments.verification_value".to_sym) %>
|
85
88
|
<span class="field_with_errors">
|
@@ -90,7 +93,7 @@
|
|
90
93
|
<%= payment.select :month, 1.upto(12) %> /
|
91
94
|
<%= payment.select :year, Time.now.year.upto(Time.now.year + 10) %>
|
92
95
|
<% end -%>
|
93
|
-
</
|
96
|
+
</div>
|
94
97
|
<% end -%>
|
95
98
|
</div>
|
96
99
|
<div id="submit">
|
@@ -106,7 +109,9 @@
|
|
106
109
|
|
107
110
|
</div>
|
108
111
|
|
112
|
+
<%= javascript_include_tag "piggybak" %>
|
109
113
|
<script type="text/javascript">
|
110
114
|
var shipping_lookup = "<%= piggybak.orders_shipping_url %>";
|
111
115
|
var tax_lookup = "<%= piggybak.orders_tax_url %>";
|
116
|
+
var geodata_lookup = "<%= piggybak.orders_geodata_url %>";
|
112
117
|
</script>
|
@@ -1,5 +1,12 @@
|
|
1
|
+
<ul>
|
1
2
|
<% if params[:action] == 'edit' -%>
|
2
|
-
|
3
|
+
<li><%= link_to "Send Email Confirmation", piggybak.orders_email_url(params[:id]) %></li>
|
3
4
|
<% else -%>
|
4
|
-
<b>You may not send a confirmation email until you have a saved order.</b>
|
5
|
+
<li><b>You may not send a confirmation email until you have a saved order.</b></li>
|
5
6
|
<% end -%>
|
7
|
+
<% if params[:action] == 'edit' -%>
|
8
|
+
<li><%= link_to "View as Text", piggybak.orders_download_url(params[:id]) %></li>
|
9
|
+
<% else -%>
|
10
|
+
<li><b>You may not download until you have a saved order.</b></li>
|
11
|
+
<% end -%>
|
12
|
+
</ul>
|
data/config/routes.rb
CHANGED
@@ -1,15 +1,24 @@
|
|
1
1
|
Piggybak::Engine.routes.draw do
|
2
2
|
scope :module => "piggybak" do
|
3
|
-
|
3
|
+
# cart actions
|
4
4
|
match "/cart" => "cart#show", :as => :cart
|
5
5
|
match "/cart/add" => "cart#add", :via => :post, :as => :cart_add
|
6
6
|
match "/cart/update" => "cart#update", :via => :post, :as => :cart_update
|
7
7
|
match "/cart/remove/:item" => "cart#remove", :via => :delete, :as => :remove_item
|
8
|
+
|
9
|
+
# order actions
|
10
|
+
match "/show" => "orders#show", :as => :orders
|
8
11
|
match "/submit" => "orders#submit", :via => :post, :as => :order_submit
|
9
12
|
match "/receipt" => "orders#receipt", :as => :receipt
|
10
|
-
match "/orders" => "orders#list", :as => :orders_list
|
11
|
-
match "/admin/orders/:id/email" => "orders#email", :as => :orders_email
|
12
13
|
match "/orders/shipping" => "orders#shipping", :as => :orders_shipping
|
13
14
|
match "/orders/tax" => "orders#tax", :as => :orders_tax
|
15
|
+
match "/orders/geodata" => "orders#geodata", :as => :orders_geodata
|
16
|
+
|
17
|
+
# list orders
|
18
|
+
match "/orders" => "orders#list", :as => :orders_list
|
19
|
+
|
20
|
+
# admin actions
|
21
|
+
match "/admin/orders/:id/email" => "orders#email", :as => :orders_email
|
22
|
+
match "/admin/orders/:id/download" => "orders#download", :as => :orders_download, :format => "txt"
|
14
23
|
end
|
15
24
|
end
|
@@ -8,9 +8,9 @@ class CreateOrders < ActiveRecord::Migration
|
|
8
8
|
t.string :email, :null => false
|
9
9
|
t.string :phone, :null => false
|
10
10
|
|
11
|
-
t.
|
12
|
-
t.
|
13
|
-
t.
|
11
|
+
t.decimal :total, :null => false
|
12
|
+
t.decimal :total_due, :null => false
|
13
|
+
t.decimal :tax_charge, :null => false
|
14
14
|
t.string :status, :null => false
|
15
15
|
|
16
16
|
t.timestamps
|
@@ -19,3 +19,4 @@ class CreateOrders < ActiveRecord::Migration
|
|
19
19
|
end
|
20
20
|
|
21
21
|
# Note: To force precision, alter column type in database console
|
22
|
+
# Always use decimal when dealing with currency
|
@@ -6,7 +6,8 @@ class CreateAddresses < ActiveRecord::Migration
|
|
6
6
|
t.string :address1, :null => false
|
7
7
|
t.string :address2
|
8
8
|
t.string :city, :null => false
|
9
|
-
t.
|
9
|
+
t.string :state_id, :null => false # because both text states and ids are allowed
|
10
|
+
t.references :country, :null => false
|
10
11
|
t.string :zip, :null => false
|
11
12
|
|
12
13
|
t.timestamps
|
@@ -3,8 +3,8 @@ class CreateLineItems < ActiveRecord::Migration
|
|
3
3
|
create_table :line_items do |t|
|
4
4
|
t.references :order, :null => false
|
5
5
|
t.integer :quantity, :null => false
|
6
|
-
t.references :
|
7
|
-
t.
|
6
|
+
t.references :variant, :null => false
|
7
|
+
t.decimal :total
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -1,9 +1,9 @@
|
|
1
|
-
class
|
1
|
+
class CreateVariants < ActiveRecord::Migration
|
2
2
|
def change
|
3
|
-
create_table :
|
3
|
+
create_table :variants do |t|
|
4
4
|
t.string :sku, :null => false
|
5
5
|
t.string :description, :null => false
|
6
|
-
t.
|
6
|
+
t.decimal :price, :null => false
|
7
7
|
t.integer :quantity, :null => false, :default => 0
|
8
8
|
t.integer :item_id, :null => false
|
9
9
|
t.string :item_type, :null => false
|
@@ -4,13 +4,15 @@ class CreatePayments < ActiveRecord::Migration
|
|
4
4
|
t.references :order
|
5
5
|
t.references :payment_method
|
6
6
|
t.string :status, :null => false, :default => 'paid'
|
7
|
-
t.
|
7
|
+
t.decimal :total, :null => false, :default => 0.0
|
8
8
|
|
9
9
|
t.string :number
|
10
10
|
t.integer :month
|
11
11
|
t.integer :year
|
12
12
|
t.string :verification_value
|
13
13
|
|
14
|
+
t.string :transaction_id
|
15
|
+
|
14
16
|
t.timestamps
|
15
17
|
end
|
16
18
|
end
|
@@ -4,7 +4,7 @@ class CreateShipments < ActiveRecord::Migration
|
|
4
4
|
t.references :order, :null => false
|
5
5
|
t.references :shipping_method, :null => false
|
6
6
|
t.string :status, :null => false, :default => "new"
|
7
|
-
t.
|
7
|
+
t.decimal :total, :null => false, :default => 0.0
|
8
8
|
|
9
9
|
t.timestamps
|
10
10
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "countries"
|
2
|
+
|
3
|
+
class PopulateCountriesAndStates < ActiveRecord::Migration
|
4
|
+
def change
|
5
|
+
ISO3166::Country.all.each do |country_array|
|
6
|
+
name = country_array[0]
|
7
|
+
abbr = country_array[1]
|
8
|
+
country = Piggybak::Country.create :name => name, :abbr => abbr
|
9
|
+
|
10
|
+
iso3166_country = ISO3166::Country.new(abbr)
|
11
|
+
iso3166_country.states.each do |key, value|
|
12
|
+
abbr = key
|
13
|
+
name = value["name"]
|
14
|
+
Piggybak::State.create! :name => name, :abbr => abbr, :country => country
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Piggybak
|
2
|
-
module
|
2
|
+
module ActsAsVariant
|
3
3
|
## Define ModelMethods
|
4
4
|
module Base
|
5
5
|
def self.included(klass)
|
@@ -9,12 +9,12 @@ module Piggybak
|
|
9
9
|
end
|
10
10
|
|
11
11
|
module ClassMethods
|
12
|
-
def
|
13
|
-
has_one :
|
12
|
+
def acts_as_variant
|
13
|
+
has_one :piggybak_variant, :as => "item", :class_name => "::Piggybak::Variant"
|
14
14
|
|
15
|
-
accepts_nested_attributes_for :
|
15
|
+
accepts_nested_attributes_for :piggybak_variant, :allow_destroy => true
|
16
16
|
|
17
|
-
include Piggybak::
|
17
|
+
include Piggybak::ActsAsVariant::Base::InstanceMethods
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -29,4 +29,4 @@ module Piggybak
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
::ActiveRecord::Base.send :include, Piggybak::
|
32
|
+
::ActiveRecord::Base.send :include, Piggybak::ActsAsVariant::Base
|
data/lib/piggybak.rb
CHANGED
@@ -1,29 +1,45 @@
|
|
1
|
-
require '
|
1
|
+
require 'acts_as_variant/base'
|
2
2
|
require 'acts_as_orderer/base'
|
3
|
-
require 'application_helper'
|
4
3
|
require 'active_merchant'
|
5
4
|
require 'currency'
|
6
|
-
|
7
|
-
ActiveMerchant::Billing::Base.mode = :test
|
8
5
|
|
9
6
|
module Piggybak
|
7
|
+
|
10
8
|
class Engine < Rails::Engine
|
11
|
-
initializer "
|
9
|
+
initializer "piggybak.add_helper" do |app|
|
10
|
+
ApplicationController.class_eval do
|
11
|
+
helper :piggybak
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
initializer "piggybak.rails_admin_config" do |app|
|
12
16
|
# RailsAdmin config file. Generated on December 21, 2011 13:04
|
13
17
|
# See github.com/sferik/rails_admin for more informations
|
14
18
|
|
15
19
|
RailsAdmin.config do |config|
|
16
20
|
config.model Piggybak::Order do
|
17
21
|
label "Order"
|
18
|
-
navigation_label "
|
22
|
+
navigation_label "Orders"
|
19
23
|
weight 1
|
20
24
|
object_label_method :admin_label
|
21
25
|
|
22
26
|
show do
|
23
27
|
field :status
|
24
|
-
field :total
|
25
|
-
|
26
|
-
|
28
|
+
field :total do
|
29
|
+
formatted_value do
|
30
|
+
"$%.2f" % value
|
31
|
+
end
|
32
|
+
end
|
33
|
+
field :tax_charge do
|
34
|
+
formatted_value do
|
35
|
+
"$%.2f" % value
|
36
|
+
end
|
37
|
+
end
|
38
|
+
field :total_due do
|
39
|
+
formatted_value do
|
40
|
+
"$%.2f" % value
|
41
|
+
end
|
42
|
+
end
|
27
43
|
field :created_at
|
28
44
|
field :email
|
29
45
|
field :phone
|
@@ -43,7 +59,7 @@ module Piggybak
|
|
43
59
|
end
|
44
60
|
end
|
45
61
|
field :created_at do
|
46
|
-
strftime_format "%d-%m-%Y"
|
62
|
+
#strftime_format "%d-%m-%Y"
|
47
63
|
end
|
48
64
|
field :user
|
49
65
|
end
|
@@ -52,6 +68,10 @@ module Piggybak
|
|
52
68
|
read_only true
|
53
69
|
help "Autopopulated"
|
54
70
|
end
|
71
|
+
field :actions do
|
72
|
+
partial "actions"
|
73
|
+
help ""
|
74
|
+
end
|
55
75
|
field :user do
|
56
76
|
read_only do
|
57
77
|
!bindings[:object].new_record?
|
@@ -59,15 +79,15 @@ module Piggybak
|
|
59
79
|
end
|
60
80
|
field :email
|
61
81
|
field :phone
|
62
|
-
field :billing_address
|
63
|
-
|
82
|
+
field :billing_address do
|
83
|
+
help "Required"
|
84
|
+
end
|
85
|
+
field :shipping_address do
|
86
|
+
help "Required"
|
87
|
+
end
|
64
88
|
field :line_items
|
65
89
|
field :shipments
|
66
90
|
field :payments
|
67
|
-
field :actions do
|
68
|
-
partial "actions"
|
69
|
-
help "Click above to resend email with current order details."
|
70
|
-
end
|
71
91
|
end
|
72
92
|
end
|
73
93
|
|
@@ -84,7 +104,7 @@ module Piggybak
|
|
84
104
|
visible false
|
85
105
|
|
86
106
|
edit do
|
87
|
-
field :
|
107
|
+
field :variant
|
88
108
|
field :quantity
|
89
109
|
field :total do
|
90
110
|
read_only true
|
@@ -160,7 +180,7 @@ module Piggybak
|
|
160
180
|
end
|
161
181
|
|
162
182
|
config.model Piggybak::PaymentMethod do
|
163
|
-
navigation_label "
|
183
|
+
navigation_label "Configuration"
|
164
184
|
weight 2
|
165
185
|
object_label_method :admin_label
|
166
186
|
list do
|
@@ -254,21 +274,37 @@ module Piggybak
|
|
254
274
|
end
|
255
275
|
end
|
256
276
|
|
277
|
+
config.model Piggybak::Country do
|
278
|
+
label "Countries"
|
279
|
+
navigation_label "Geodata"
|
280
|
+
weight 3
|
281
|
+
list do
|
282
|
+
field :name
|
283
|
+
field :abbr
|
284
|
+
end
|
285
|
+
edit do
|
286
|
+
field :name
|
287
|
+
field :abbr
|
288
|
+
end
|
289
|
+
end
|
290
|
+
|
257
291
|
config.model Piggybak::State do
|
258
|
-
|
259
|
-
|
292
|
+
parent Piggybak::Country
|
293
|
+
label "States"
|
260
294
|
list do
|
261
295
|
field :name
|
262
296
|
field :abbr
|
297
|
+
field :country
|
263
298
|
end
|
264
299
|
edit do
|
265
300
|
field :name
|
266
301
|
field :abbr
|
302
|
+
field :country
|
267
303
|
end
|
268
304
|
end
|
269
305
|
|
270
|
-
config.model Piggybak::
|
271
|
-
label "
|
306
|
+
config.model Piggybak::Variant do
|
307
|
+
label "Variant"
|
272
308
|
parent Piggybak::Order
|
273
309
|
object_label_method :admin_label
|
274
310
|
edit do
|
@@ -279,7 +315,7 @@ module Piggybak
|
|
279
315
|
end
|
280
316
|
include_all_fields
|
281
317
|
field :unlimited_inventory do
|
282
|
-
help "If true, backorders on this
|
318
|
+
help "If true, backorders on this variant will be allowed, regardless of quantity on hand."
|
283
319
|
end
|
284
320
|
end
|
285
321
|
list do
|