def mark_order(number, state = 'shipped') o = Spree::Order.find_by(number: number) o.update_attribute('shipment_state', state) s = o.shipments.first s.update_attribute('state', state) s.update_attribute('shipped_at', s.expected_shipping_date) if state == 'shipped' end def mark_customisation(number, state = 'prepared') o = Spree::Order.find_by(number: number) o.line_items.each do |li| c = li.customisation c.update_attribute('state', state) end end