<?php

require_once __DIR__ . '/../RemoteService.php';
if (!isset($argv[1])) {
    die('Please provide order increment ID' . PHP_EOL);
}
$orderIncrementId = $argv[1];
try {
    $service = new RemoteService();
    $order = $service->salesOrderInfo(array('orderIncrementId' => $orderIncrementId));
    $items = array();
    foreach ($order->result->items->complexObjectArray as $item) {
        echo "[{$item->sku}] {$item->name} £{$item->row_invoiced} - ";
        $qty = (int) $service->ask("Qty to Ship [{$item->qty_invoiced}]", 'text', $item->qty_invoiced);
        if ($qty > $item->qty_invoiced || $qty < 0) {
            die('Invalid Quantity' . PHP_EOL);
        }
        if ($qty > 0) {
            $shipItem = new stdClass();
            $shipItem->order_item_id = $item->item_id;
            $shipItem->qty = $qty;
            $items[] = $shipItem;
        }
    }
    if (empty($items)) {
        die('No items to ship' . PHP_EOL);
    }
    $result = $service->salesOrderShipmentCreate(array('orderIncrementId' => $orderIncrementId, 'itemsQty' => $items, 'comment' => 'Test Shipment', 'email' => 1, 'includeComment' => 1));
    print_r($result);
    echo PHP_EOL;
} catch (SoapFault $e) {
<?php

require_once __DIR__ . '/../RemoteService.php';
try {
    $questions = array(array('param' => 'email', 'question' => 'Email', 'type' => 'text'), array('param' => 'firstname', 'question' => 'First Name', 'type' => 'text'), array('param' => 'lastname', 'question' => 'Last Name', 'type' => 'text'), array('param' => 'password', 'question' => 'Password', 'type' => 'password'), array('param' => 'website_id', 'question' => 'Website ID', 'type' => 'text'));
    $service = new RemoteService();
    $data = array();
    foreach ($questions as $question) {
        $data[$question['param']] = $service->ask($question['question'], $question['type']);
    }
    $result = $service->customerCustomerCreate(array('customerData' => $data));
    print_r($result);
} catch (SoapFault $e) {
    echo "Exception '" . get_class($e) . "':\n";
    print_r($e);
}
<?php

require_once __DIR__ . '/../RemoteService.php';
if (!isset($argv[1])) {
    die('Please provide order increment ID' . PHP_EOL);
}
$orderIncrementId = $argv[1];
try {
    $service = new RemoteService();
    $order = $service->salesOrderInfo(array('orderIncrementId' => $orderIncrementId));
    $invoice = $service->salesOrderInvoiceList(['filters' => ['filter' => [['key' => 'order_id', 'value' => $order->result->order_id]]]]);
    $invoiceIncrementId = $invoice->result->complexObjectArray->increment_id;
    $items = array();
    foreach ($order->result->items->complexObjectArray as $item) {
        echo "[{$item->sku}] {$item->name} £{$item->row_invoiced} - ";
        $qty = (int) $service->ask("Qty to Refund [{$item->qty_invoiced}]", 'text', $item->qty_invoiced);
        if ($qty > $item->qty_invoiced || $qty < 0) {
            die('Invalid Quantity' . PHP_EOL);
        }
        if ($qty >= 0) {
            $cmItem = new stdClass();
            $cmItem->order_item_id = $item->item_id;
            $cmItem->qty = $qty;
            $items[] = $cmItem;
            $rrItem = new stdClass();
            $rrItem->order_item_id = $item->item_id;
            $rrItem->return_code = 1;
            $rrs[] = $rrItem;
        }
    }
    if (empty($items)) {