<?php

  require_once 'DCLWebService.php';

  $SESSION_ID = "";

 

  $ws = new DCLWebService();

    

  // Perform login and store session_id

  $arg = new Login();

  $arg->strUser = 'Type Your Username';

  $arg->strPwd = 'Type Your Password';

 

  $LoginResponse = $ws->Login($arg);

  $SESSION_ID = $LoginResponse->LoginResult;

    

  // Login() return a SESSION_ID if success, empty string otherwise

  if (strlen($SESSION_ID) == 0)

  {

    echo "User not authorized.\r\n";

    return;

  }

 

  // -------------------------------------------------------------

  // Sample 'SubmitBatchOrder2'

  $Batch = new BatchType01Object();

  $Batch->Location = 'FR';

  $Batch->OrderArray = array();

 

  // Add first order ------------------------------------------

  $Order = new OrderType01Object();

  $Batch->OrderArray[] = $Order; // Add order to OrderArray (array of OrderType01Object)

 

  $Order->AccountNumber = '01234';

  $Order->OrderNumber = 'TEST125';

  $Order->ShipTo = new AddressType01Object();

  $Order->ShipTo->Attention = 'Mr. Smith';

  $Order->ShipTo->Address1 = '48641 Milmont Dr';

  $Order->ShipTo->City = 'Fremont';

  $Order->ShipTo->Country = 'US';

  $Order->ShipTo->PostalCode = '94538';

  $Order->ShipTo->StateProvince = 'CA';

 

  $Order->FreightAccount = '00500';

  $Order->ShippingCarrier = 'UPS';

  $Order->ShippingService = 'GROUND';

  $Order->OrderStatus = OrderStatusObject::NormalOrder;

 

  $Order->DetailArray = array();

  $Detail = new DetailType01Object();

  $Order->DetailArray[] = $Detail; // Add detail to DetailArray (array of DetailType01Object)

 

  $Detail->ItemNumber = 'ITEM0001';

  $Detail->Quantity = 1;

 

  // Add second order ------------------------------------------

  $Order = new OrderType01Object();

  $Batch->OrderArray[] = $Order;

  $Order->AccountNumber = '01234';

  $Order->OrderNumber = 'TEST789';

  $Order->ShipTo = new AddressType01Object();

  $Order->ShipTo->Attention = 'Mr. Smith';

  $Order->ShipTo->Address1 = '48641 Milmont Dr';

  $Order->ShipTo->City = 'Fremont';

  $Order->ShipTo->Country = 'US';

  $Order->ShipTo->PostalCode = '94538';

  $Order->ShipTo->StateProvince = 'CA';

 

  $Order->FreightAccount = '00500';

  $Order->ShippingCarrier = 'UPS';

  $Order->ShippingService = 'GROUND';

  $Order->OrderStatus = OrderStatusObject::NormalOrder;

 

  $Order->DetailArray = array();

  $Detail = new DetailType01Object();

  $Order->DetailArray[] = $Detail; // Add detail to DetailArray (array of DetailType01Object)

 

  $Detail->ItemNumber = 'ITEM0002';

  $Detail->Quantity = 1;

 

 // Submit Order ----------------------------------

  $arg = new SubmitBatchOrder2();

  $arg->SessionID = $SESSION_ID;

  $arg->Batch = $Batch;

  //var_dump($arg);

 

  $SubmitBatchOrder2Response = $ws->SubmitBatchOrder2($arg);

  if ($SubmitBatchOrder2Response->SubmitBatchOrder2Result->ResultStatus->Error != 0) {

    // Show the reason why the batch has been rejected

    echo $SubmitBatchOrder2Response->SubmitBatchOrder2Result->ResultStatus->ErrorStr;

    return;

  }

  else {

    // Let's see which order has been accepted and which one has been rejected

    $total_orders = count($SubmitBatchOrder2Response->SubmitBatchOrder2Result->OrderStatusArray->ResultStatusObject); // Same as count($Batch->OrderArray)

    for ($i = 0; $i < $total_orders; $i++) {

      $ResultStatusObject = $SubmitBatchOrder2Response->SubmitBatchOrder2Result->OrderStatusArray->ResultStatusObject[$i];

      if ($ResultStatusObject->Error != 0) {

        echo 'Order n.' . $Batch->OrderArray[$i]->OrderNumber . ' has been rejected with error: ' . $ResultStatusObject->ErrorStr . "\n";

      }

      else {

        echo 'Order n.' . $Batch->OrderArray[$i]->OrderNumber . ' has been accepted' . "\n";

      }

    }

    //echo 'BatchName = ' . $SubmitBatchOrder2Response->SubmitBatchOrder2Result->BatchName;

  }

  //var_dump($SubmitBatchOrder2Response);

?>