Class: Spree::Promotion::Actions::FreeShipping
Instance Method Summary
collapse
Methods inherited from Base
page
#default_preferences, #defined_preferences, #get_preference, #has_preference!, #has_preference?, #preference_default, #preference_type, #set_preference
Instance Method Details
#compute_amount(shipment) ⇒ Object
29
30
31
|
# File 'app/models/spree/promotion/actions/free_shipping.rb', line 29
def compute_amount(shipment)
shipment.cost * -1
end
|
#label ⇒ Object
25
26
27
|
# File 'app/models/spree/promotion/actions/free_shipping.rb', line 25
def label
"#{Spree.t(:promotion)} (#{promotion.name})"
end
|
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'app/models/spree/promotion/actions/free_shipping.rb', line 5
def perform(payload={})
order = payload[:order]
promotion_code = payload[:promotion_code]
results = order.shipments.map do |shipment|
return false if promotion_credit_exists?(shipment)
shipment.adjustments.create!(
order: shipment.order,
amount: compute_amount(shipment),
source: self,
promotion_code: promotion_code,
label: label,
)
true
end
results.any? { |r| r == true }
end
|