Skip to content

Instantly share code, notes, and snippets.

@AndrewSepic
Created November 9, 2021 19:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndrewSepic/615eeacb0f454b754a414ae7ea4b8660 to your computer and use it in GitHub Desktop.
Save AndrewSepic/615eeacb0f454b754a414ae7ea4b8660 to your computer and use it in GitHub Desktop.
Manually created XML for soapVar()
<?php
namespace SoapSapBridge\Server\Action\GetOrder\Nodes;
/**
* Class GetOrdersResult
* @package SoapSapBridge\Server\Model\GetOrdersModel
*/
class GetOrdersResult {
/**
* @var \ArrayObject
*/
public $DOC;
/**
* Array of orders
* GetOrdersResult constructor.
*/
public function __construct()
{
$this->DOC = new \ArrayObject();
}
/**
* DOM documents since lots of attributes needs to be added
* @param DOC[] $ORDERS
* @param int $orderId
* @param string $orderDate
* @param string $name
* @param string $shipAddress
* @param string|null $shipAddress2
* @param string|null $shipState
* @param string|null $shipCity
* @param string|null $shipPostalCode
* @param string|null $shipCountry
* @param string $customerShippingCost
* @param string $salesTax1
* @param string $salesTax2
* @param string $salesTax3
* @param string|null $emailAddress
* @param string|null $actualShippingCost
* @param string|null $gateway
* @param string|null $totalValue
*/
public function addOrder(
array $ORDERS,
int $orderId,
string $orderDate,
string $name,
string $shipAddress,
string $shipAddress2 = null,
string $shipState = null,
string $shipCity = null,
string $shipPostalCode = null,
string $shipCountry = null,
string $customerShippingCost = '0.0000',
string $salesTax1 = '0.0000',
string $salesTax2 = '0.0000',
string $salesTax3 = '0.0000',
string $emailAddress = null,
string $actualShippingCost = null,
string $gateway = 'UPS',
string $totalValue = null
) {
$xml = new \DOMDocument();
$orderNode = $xml->createElement('ORDERS');
$orderNode->setAttribute('ORDERID', $orderId);
$orderNode->setAttribute('ORDERDATE', $orderDate);
$orderNode->setAttribute('NAME', $name);
$orderNode->setAttribute('SHIPADDRESS1', $shipAddress);
$orderNode->setAttribute('SHIPADDRESS2', $shipAddress2);
$orderNode->setAttribute('SHIPSTATE', $shipState);
$orderNode->setAttribute('SHIPCITY', $shipCity);
$orderNode->setAttribute('SHIPPOSTALCODE', $shipPostalCode);
$orderNode->setAttribute('SHIPCOUNTRY', $shipCountry);
$orderNode->setAttribute('CUSTOMERSHIPPINGCOST', $customerShippingCost);
$orderNode->setAttribute('SALESTAX1', $salesTax1);
$orderNode->setAttribute('SALESTAX2', $salesTax2);
$orderNode->setAttribute('SALESTAX3', $salesTax3);
$orderNode->setAttribute('EMAILADDRESS', $emailAddress);
$orderNode->setAttribute('ACTUALSHIPPINGCOST', $actualShippingCost);
$orderNode->setAttribute('GATEWAY', $gateway);
$orderNode->setAttribute('TOTALVALUE', $totalValue);
foreach ($ORDERS as $ORDER) {
$imported = $xml->importNode($ORDER->ORDERDETAILS);
$orderNode->appendChild($imported);
}
$this->DOC -> append(new \SoapVar($xml->saveXML($orderNode), XSD_ANYXML));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment