module Gemgento module API module SOAP module Sales class OrderShipment def self.add_comment(shipment_comment, email = nil, include_in_email = nil) message = { shipment_increment_id: shipment_comment.shipment.increment_id, comment: shipment_comment.comment, email: email, include_in_email: include_in_email } response = MagentoApi.create_call(:sales_order_shipment_add_comment, message) return response.success? end def self.add_track(shipment_track) message = { shipment_increment_id: shipment_track.shipment.increment_id, carrier: shipment_track.carrier_code, title: shipment_track.title, track_number: shipment_track.number } response = MagentoApi.create_call(:sales_order_shipment_add_track, message) return response.success? end def self.create(shipment) message = { order_increment_id: shipment.order.increment_id, email: shipment.email ? 1 : 0, comment: shipment.comment, include_comment: shipment.include_comment ? 1 : 0 } if shipment.shipment_items.any? message[:items_qty] = { item: compose_items_qty(shipment.shipment_items) } end response = MagentoApi.create_call(:sales_order_shipment_create, message) if response.success? return response.body[:shipment_increment_id] else return false end end def self.get_carriers(order_increment_id) message = { order_increment_id: order_increment_id, } response = MagentoApi.create_call(:sales_order_shipment_get_carriers, message) if response.success? if response.body[:result][:item].nil? return response.body[:result] else response.body[:result][:item] end else return false end end def self.info(shipment_increment_id) MagentoApi.create_call(:sales_order_shipment_info, shipment_increment_id: shipment_increment_id) end def self.list response = MagentoApi.create_call(:sales_order_shipment_list) if response.success? return response.body[:result] else return false end end def self.remove_track(shipment_increment_id, track_id) message = { shipment_increment_id: shipment_increment_id, track_id: track_id } response = MagentoApi.create_call(:sales_order_shipment_remove_track, message) return response.success? end def self.send_info(shipment_increment_id, comment = '') message = { shipment_increment_id: shipment_increment_id, comment: comment } response = MagentoApi.create_call(:sales_order_shipment_send_info, message) return response.success? end private def self.compose_items_qty(shipment_items) items_qty = [] shipment_items.each do |shipment_item| items_qty << { 'line_item_id' => shipment_item.line_item.magento_id, qty: shipment_item.quantity } end return items_qty end end end end end end