class Gemgento::API::SOAP::Sales::OrderShipment

Public Class Methods

add_comment(shipment_comment, email = nil, include_in_email = nil) click to toggle source
# File lib/gemgento/api/soap/sales/order_shipment.rb, line 7
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
add_track(shipment_track) click to toggle source
# File lib/gemgento/api/soap/sales/order_shipment.rb, line 19
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
create(shipment) click to toggle source
# File lib/gemgento/api/soap/sales/order_shipment.rb, line 31
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
get_carriers(order_increment_id) click to toggle source
# File lib/gemgento/api/soap/sales/order_shipment.rb, line 52
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
info(shipment_increment_id) click to toggle source
# File lib/gemgento/api/soap/sales/order_shipment.rb, line 69
def self.info(shipment_increment_id)
  MagentoApi.create_call(:sales_order_shipment_info, shipment_increment_id: shipment_increment_id)
end
list() click to toggle source
# File lib/gemgento/api/soap/sales/order_shipment.rb, line 73
def self.list
  response = MagentoApi.create_call(:sales_order_shipment_list)

  if response.success?
    return response.body[:result]
  else
    return false
  end
end
remove_track(shipment_increment_id, track_id) click to toggle source
# File lib/gemgento/api/soap/sales/order_shipment.rb, line 83
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
send_info(shipment_increment_id, comment = '') click to toggle source
# File lib/gemgento/api/soap/sales/order_shipment.rb, line 93
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 Class Methods

compose_items_qty(shipment_items) click to toggle source
# File lib/gemgento/api/soap/sales/order_shipment.rb, line 105
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