code: public function createShipment($request)
      {
          if (!($request instanceof MWSMerchantFulfillmentService_Model_CreateShipmentRequest)) {
              require_once (dirname(__FILE__) . '/Model/CreateShipmentRequest.php');
              $request = new MWSMerchantFulfillmentService_Model_CreateShipmentRequest($request);
          }
          $parameters = $request->toQueryParameterArray();
          $parameters['Action'] = 'CreateShipment';
          $httpResponse = $this->_invoke($parameters);
  
          require_once (dirname(__FILE__) . '/Model/CreateShipmentResponse.php');
          $response = MWSMerchantFulfillmentService_Model_CreateShipmentResponse::fromXML($httpResponse['ResponseBody']);
          $response->setResponseHeaderMetadata($httpResponse['ResponseHeaderMetadata']);
          return $response;
      }
docs: Create Shipment
  Creates a shipment for the shipping information specified.  Purchases and returns a label for the specified
  shipping service or shipping service offering.
  
  @param mixed $request array of parameters for MWSMerchantFulfillmentService_Model_CreateShipment request or MWSMerchantFulfillmentService_Model_CreateShipment object itself
  @see MWSMerchantFulfillmentService_Model_CreateShipmentRequest
  @return MWSMerchantFulfillmentService_Model_CreateShipmentResponse
  
  @throws MWSMerchantFulfillmentService_Exception