Nach der Dokumentation auf dieser Seite ... http://guides.spreecommerce.com/developer/calculators.htmleine benutzerdefinierte Spree Rechner Registrierung nicht
Ich habe eine Klasse in Modellen/Spree/Rechner erstellt/
module Spree
class Calculator::ZipTax < Calculator
def self.description
"Calculates Tax Rates From Zipcode in TaxRates Table"
end
def compute(computable)
case computable
when Spree::Order
compute_order(computable)
when Spree::LineItem
compute_line_item(computable)
end
end
def compute_order(order)
zipcode = order.bill_address.zipcode[0,5]
zip = TaxTable.where(:zipcode => zipcode).first
if(zip.present?)
rate = zip.combined_rate
order.line_items.sum(&:total) * rate
else
0
end
end
end
end
Und in initializers/spree Arbeits .rb ich habe hinzugefügt:
config = Rails.application.config
config.spree.calculators.tax_rates << Spree::Calculator::ZipTax
Aber ich kann nicht bekommen Rails zu starten. Ich bekomme undefinierte Methode `< < 'für nil: NilClass (NoMethodError) auf der Initialisierer/spree.rb-Datei.
Wie registriere ich einen benutzerdefinierten Rechner? Verwenden von Spree 1.3.2.
Vielen Dank. Beim nächsten Mal werde ich besser wissen, als Spree's Dokumente so genau zu folgen;) –
Bei einer Seitennotiz für Versandtaschenrechner vergewissern Sie sich, dass der Klassenname 'Spree :: Shipping ::' lautet, damit Ihr Rechner in der Admin-Bereich https://github.com/spree/spree/blob/2a3f91229f65e1c0c7e16eb47da455d3488195bc/core/app/models/spree/shipping_method.rb#L50. Bald zu Versionen von Spree freizugeben nur erfordern, dass Versandrechner erben von 'Spree :: ShippingCalculator' https://github.com/spree/spree/blob/82fd0e0f762f17493c1609a998192272dab83e07/core/app/models/spree/shipping_method.rb#L50 –
davidtingsu
I denke, das sollte eigentlich ein Klassenname von Spree :: Calculator :: Shipping :: sein, damit es im Admin Panel angezeigt wird. –
lightcap