使用 Spree 2.0.5,我试图为小于 13 盎司的包裹提供 USPS 头等包裹服务,并为 >= 13 盎司的包裹提供优先邮件。
我发现了这个可能过时的解决方案http://madebydna.com/all/code/2010/05/26/setting-up-usps-shipping-with-spree.html,当逐字粘贴时,它确实限制了第一类包裹方法的可用性。但是,进行看似明显的调整不会影响优先邮件。
下面的代码显然甚至没有被调用。原版可以吗?方法不会被覆盖,并且无论重量如何,都可以使用优先邮件运输方法。
#app/models/spree/calculator/hideprioritymail.rb
class Calculator::Usps::PriorityMail < Calculator::Usps::Base
def self.description
"USPS Priority Mail"
end
def available?(order)
multiplier = Spree::ActiveShipping::Config[:unit_multiplier]
weight = order.line_items.inject(0) do |weight, line_item|
weight + (line_item.variant.weight ? (line_item.quantity * line_item.variant.weight * multiplier) : 0)
end
weight >= 13 ? false : true
end
end