self.send :define_method, "total_#{price}" do |items = nil|
        items ||= (self.ordered_items rescue nil) || self.items
        items.collect(&price).inject(0) { |sum, p| sum + p.to_f }