Jump to content

Automating Data Exchange


MartenPalu

Recommended Posts

Hello,

 

I have tried to figure it out on my own for two months, but just don't get it.

My goal is to have automated data exchange to my e-shop. It is in Estonian.  http://www.elnetsec.ee/pood/

And the place I have to get the data from is a e-shop called Acme. acc.acme.lt

All they gave me was a php document and told me to use it. I'll copy it here, so maybe someone can give me advice, which lines do I have to add and which to change.

 

<?php

 

class Filter

{

public $Name;

public $Value;

}

 

class ArrayOfFilter

{

public $Filter;

}

 

class GetProductListRequest

{

public $Filters;

}

 

class GetProductList

{

public $GetProductListRequest;

}

 

 

class GetInvoiceListRequest

{

public $Filters;

}

 

class GetInvoiceList

{

public $GetInvoiceListRequest;

}

 

class GetInvoiceDetailsRequest

{

public $Filters;

}

 

class GetInvoiceProductSerialList

{

public $GetInvoiceProductSerialListRequest;

}

 

class GetInvoiceProductSerialListRequest

{

public $Filters;

}

 

 

class GetInvoiceDetails

{

public $GetInvoiceDetailsRequest;

}

 

class GetProductSpecification

{

public $GetProductSpecificationRequest;

}

 

class GetProductSpecificationRequest

{

public $Filters;

}

 

class GetProductResourcesRequest

{

public $Filters;

}

 

class GetProductResources

{

public $GetProductResourcesRequest;

}

 

class GetProductBarcodeList

{

public $GetProductBarcodeListRequest;

}

 

class GetProductBarcodeListRequest

{

public $Filters;

}

 

 

class  GetAddressList

{

public $GetAddressListRequest;

}

 

class GetAddressListRequest

{

public $Filters;

}

 

 

 

class  GetCustomerUserList

{

public $GetCustomerUserListRequest;

}

 

class GetCustomerUserListRequest

{

public $Filters;

}

 

class GetInvoiceShipments

{

public $GetInvoiceShipmentsRequest;

}

 

 

class GetInvoiceShipmentsRequest

{

public $Filters;

}

 

 

class GetOrderDetails

{

public $GetOrderDetailsRequest;

}

 

 

class GetOrderDetailsRequest

{

public $Filters;

}

 

 

class PurchaseProducts

{

public $PurchaseProductsRequest;

}

 

class PurchaseProductsRequest

{

public $Filters;

public $PurchaseLines;

 

}

 

class ProductPurchaseLine

{

public $ProductPurchaseLineId;

public $SupplierCode;

public $Quantity;

public $DeliveryTypeId;

public $DeliveryAddress;

public $Note;

}

 

class Address

{

public $AddressId;

public $Street;

public $City;

public $PostalCode;

public $CountryCode;

}

 

 

class AcmeAPI  {

 

 

public $licenseKey = '498ec72c-e8e7-48f2-b300-d95666aeb141';

private $soapClient = null;

private $soapHeader = null;

private $wsdl = 'https://api.acme.lt/1.0/commerce.asmx?WSDL';

 

private function init () {

 

 

$map = array(

"Filter"=>"Filter",

"ArrayOfFilter" => "ArrayOfFilter",

"GetProductListRequest"=>"GetProductListRequest",

"GetProductList"=>"GetProductList",

"GetInvoiceList"=>"GetInvoiceList",

"GetInvoiceListRequest"=>"GetInvoiceListRequest",

"GetProductSpecification"=>"GetProductSpecification",

"GetProductSpecificationRequest"=>"GetProductSpecificationRequest",

"GetProductResources"=>"GetProductResources",

"GetInvoiceDetails"=>"GetInvoiceDetails",

"GetInvoiceDetailsRequest"=>"GetInvoiceDetailsRequest",

"GetInvoiceProductSerialList"=>"GetInvoiceProductSerialList",

"GetInvoiceProductSerialListRequest"=>"GetInvoiceProductSerialListRequest",

"GetAddressList" => "GetAddressList",

"GetAddressListRequest" => "GetAddressListRequest",

"GetCustomerUserList" => "GetCustomerUserList",

"GetCustomerUserListRequest" => "GetCustomerUserListRequest",

"GetInvoiceShipments" => "GetInvoiceShipments",

"GetInvoiceShipmentsRequest" => "GetInvoiceShipmentsRequest",

"GetOrderDetails" => "GetOrderDetails",

"GetOrderDetailsRequest" => "GetOrderDetailsRequest",

"PurchaseProducts" => "PurchaseProducts",

"PurchaseProductsRequests" => "PurchaseProductsRequest",

"ProductPurchaseLine" => "ProductPurchaseLine",

"DeliveryAddress"  => "Address"

);

 

$this->soapClient = new SoapClient($this->wsdl,array('classmap'=> $map ,'trace' => 1, 'features' => SOAP_SINGLE_ELEMENT_ARRAYS ));

$this->soapHeader = new SoapHeader('http://schemas.acme.eu/', 'LicenseHeader',  array('LicenseKey'=>$this->licenseKey), false);

$this->soapClient->__setSoapHeaders(array($this->soapHeader));

}

 

 

public function getVendors() {

try

{

$this->init();

$result = $this->soapClient->GetVendorList();

 

 

foreach ($result->GetVendorListResult->VendorList->Vendor as $b)

{

print $b->VendorId." ".$b->VendorName."<br />";

}

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e) {

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

 

 

public function getInvoiceList()

{

try

{

$this->init();

$request = new GetInvoiceListRequest();

$request->Filters = new ArrayOfFilter();

$datefrom = new Filter();

$datefrom->Name = "InvoiceDateFrom";

$datefrom->Value= "2008.01.01";

$dateTo = new Filter();

$dateTo->Name = "InvoiceDateTo";

$dateTo->Value = "2009.03.16";

$parameters = $request->Filters->Filter = array( $datefrom,$dateTo);

$params = new GetInvoiceList();

$params->GetInvoiceListRequest = $request;

$result = $this->soapClient->GetInvoiceList($params);

 

if(isset($result->GetInvoiceListResult->InvoiceHeaderList->InvoiceHeader))

{

 

foreach ($result->GetInvoiceListResult->InvoiceHeaderList->InvoiceHeader as $inv)

{

print $inv->InvoiceNumber." ".$inv->InvoiceDate."</br>";

}

}

else

{

print "no invoices found";

}

 

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e)

{

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

 

 

public function getInvoiceDetails()

{

try

{

$this->init();

$request = new GetInvoiceDetailsRequest();

$request->Filters = new ArrayOfFilter();

$invoice = new Filter();

$invoice->Name = "InvoiceNumber";

$invoice->Value= "ACC-01722223";

 

$parameters = $request->Filters->Filter = array($invoice);

$params = new GetInvoiceDetails();

$params->GetInvoiceDetailsRequest = $request;

$result = $this->soapClient->GetInvoiceDetails($params);

 

 

foreach ($result->GetInvoiceDetailsResult->InvoiceList as $inv)

{

print $inv->InvoiceHeader->InvoiceNumber." ".$inv->InvoiceHeader->InvoiceDate."</br>";

foreach($inv->InvoiceLine as $line)

{

print $line->SupplierCode." | ".$line->ShortName." | ".$line->LineAmount."<br />";

}

 

}

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e)

{

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

 

 

public function getInvoiceProductSerials()

{

try

{

$this->init();

$request = new GetInvoiceProductSerialListRequest();

$request->Filters = new ArrayOfFilter();

$invoice = new Filter();

$invoice->Name = "InvoiceNumber";

$invoice->Value= "ACC-00761335";

 

$parameters = $request->Filters->Filter = array($invoice);

$params = new GetInvoiceProductSerialList();

$params->GetInvoiceProductSerialListRequest = $request;

$result = $this->soapClient->GetInvoiceProductSerialList($params);

 

foreach ($result->GetInvoiceProductSerialListResult->ProductSerialList->ProductSerial as $ps)

{

print $ps->SupplierCode." ".$ps->SerialNumber."</br>";

 

}

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e)

{

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

 

 

 

public function getProductSpecification()

{

try

{

$this->init();

$request = new GetProductSpecificationRequest();

$request->Filters = new ArrayOfFilter();

$language = new Filter();

$language->Name = "Language";

$language->Value= "en-us";

$product = new Filter();

$product->Name = "SupplierCode";

$product->Value= "032016";

$parameters = $request->Filters->Filter = array($language, $product);

//$parameters = $request->Filters->Filter = array($language);

$params = new GetProductSpecification();

$params->GetProductSpecificationRequest = $request;

$result = $this->soapClient->GetProductSpecification($params);

 

foreach ($result->GetProductSpecificationResult->ProductSpecification as $spec)

{

print $spec->SupplierCode." ";

foreach($spec->ProductProperty as $property)

{

print $property->PropertyName.": ".$property->PropertyValue."<br />" ;

}

}

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e)

{

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

 

}

 

public function getProductResources()

{

try

{

$this->init();

$request = new GetProductResourcesRequest();

$request->Filters = new ArrayOfFilter();

$language = new Filter();

$language->Name = "Language";

$language->Value= "en-us";

$product = new Filter();

$product->Name = "SupplierCode";

$product->Value= "025348";

$parameters = $request->Filters->Filter = array($language, $product);

//$parameters = $request->Filters->Filter = array($language);  // all resources will be returned if no product filter supplied

$params = new GetProductResources();

$params->GetProductResourcesRequest = $request;

$result = $this->soapClient->GetProductResources($params);

 

foreach ($result->GetProductResourcesResult->ProductResources as $res)

{

 

print $res->SupplierCode." ";

 

if(isset($res->ProductResource))

{

foreach($res->ProductResource as $r)

{

print $r->ResourceName.": ".$r->ResourceURL."<br />" ;

}

}

}

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e)

{

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

 

public function getProductBarcodes() {

try

{

$this->init();

$request = new GetProductBarcodeListRequest();

$params = new GetProductBarcodeList();

$params->GetProductBarcodeListRequest = $request;

$result = $this->soapClient->GetProductBarcodeList($params);

 

 

if($result->GetProductBarcodeListResult->ProductBarcodeList->ProductBarcode)

{

foreach ($result->GetProductBarcodeListResult->ProductBarcodeList->ProductBarcode as $b)

{

print $b->SupplierCode." ".$b->Barcode."<br />";

}

}

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e) {

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

 

 

public function getProductClassification () {

try

{

$this->init();

$result = $this->soapClient->GetProductClassification();

 

// segments

print "Segments list:<br />";

foreach ($result->GetProductClassificationResult->SegmentList->Segment as $b)

{

print $b->SegmentId." ".$b->SegmentName."<br />";

}

 

print "-----------------------------------------------<br />";

// Groups

print "Group list:<br />";

foreach ($result->GetProductClassificationResult->GroupList->Group as $b)

{

print $b->GroupId." ".$b->GroupName."<br />";

}

 

print "-----------------------------------------------<br />";

// Classes

print "Class list:<br />";

foreach ($result->GetProductClassificationResult->ClassList->Class as $b)

{

print $b->ClassId." ".$b->ClassName."<br />";

}

 

print "-------------------------------------------------<br />";

// Series

print "Series list:<br />";

foreach ($result->GetProductClassificationResult->SeriesList->Series as $b)

{

print $b->SeriesId." ".$b->SeriesName."<br />";

}

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e) {

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

 

public function getProductList () {

try

{

$this->init();

$request = new GetProductListRequest();

$request->Filters = new ArrayOfFilter();

$language = new Filter();

$language->Name = "Language";

$language->Value= "lt-lt";

$currency = new Filter();

$currency->Name = "Currency";

$currency->Value = "LTL";

$request->Filters->Filter = array( $language,$currency);

$params = new GetProductList();

$params->GetProductListRequest = $request;

$result = $this->soapClient->GetProductList($params);

 

 

foreach ($result->GetProductListResult->ProductList->Product as $p)

{

 

print $p->SupplierCode." ".$p->Name."<br />";

}

 

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e) {

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

 

 

public function getInvoiceShipments() {

try

{

$this->init();

$request = new GetInvoiceShipmentsRequest();

$request->Filters = new ArrayOfFilter();

$invoice = new Filter();

$invoice->Name = "InvoiceNumber";

$invoice->Value= "ACC-00761335"; // set invoice number here

 

$parameters = $request->Filters->Filter = array($invoice);

$params = new GetInvoiceShipments();

$params->GetInvoiceShipmentsRequest = $request;

$result = $this->soapClient->GetInvoiceShipments($params);

 

 

foreach ($result->GetInvoiceShipmentsResult->ShipmentList->Shipment as $ps)

{

print $ps->CarrierId." ".$ps->Number."</br>";

}

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e)

{

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

 

public function getOrderDetails() {

try

{

$this->init();

$request = new GetOrderDetailsRequest();

$request->Filters = new ArrayOfFilter();

$parameters = $request->Filters->Filter = array();

$params = new GetOrderDetails();

$params->GetOrderDetailsRequest = $request;

$result = $this->soapClient->GetOrderDetails($params);

 

 

if(isset($result->GetOrderDetailsResult->OrderList->Order))

{

foreach ($result->GetOrderDetailsResult->OrderList->Order as $o)

{

print "OrderId: ".$o->OrderHeader->OrderId." <br />";

foreach($o->OrderLine as $line)

{

print "OrderLineId: ".$line->OrderLineId." SupplierCode: ".$line->SupplierCode." LineAmount:  ".$line->LineAmount." <br />";

}

print "----------------------------------------------------<br />";

}

 

}

else

{

print "no orders found";

}

 

 

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e)

{

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

 

public function purchaseProducts() {

 

try

{

$this->init();

$request = new PurchaseProductsRequest();

$request->Filters = new ArrayOfFilter();

$request->Filters->Filter = array();

 

$line = new ProductPurchaseLine();

$line->ProductPurchaseLineId = "demo";

$line->SupplierCode = "003315";

$line->Quantity =  1;

$line->DeliveryTypeId = 0;

$line->Note = "test order";

 

$address = new Address();

$address->AddressId = "ecommtest-001";

$line->DeliveryAddress = $address;

 

$request->PurchaseLines = array($line);

$params = new PurchaseProducts();

$params->PurchaseProductsRequest = $request;

$result = $this->soapClient->PurchaseProducts($params);

 

foreach ($result->PurchaseProductsResult->StatusList->ProductPurchaseStatus as $st)

{

print $st->ProductPurchaseLineId." ".$st->Status."<br />";

 

}

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e) {

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

 

 

public function getAddressList() {

try

{

$this->init();

$request = new GetAddressListRequest();

$request->Filters = new ArrayOfFilter();

$request->Filters->Filter = array();

$params = new GetAddressList();

$params->GetAddressListRequest = $request;

$result = $this->soapClient->GetAddressList($params);

 

foreach ($result->GetAddressListResult->AddressList->Address as $b)

{

print $b->AddressId." ".$b->Street." ".$b->City."<br />";

 

}

 

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e) {

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

 

 

}

 

public function getCustomerUserList() {

try

{

$this->init();

$request = new GetCustomerUserListRequest();

$request->Filters = new ArrayOfFilter();

$request->Filters->Filter = array();

$params = new GetCustomerUserList();

$params->GetCustomerUserListRequest = $request;

$result = $this->soapClient->GetCustomerUserList($params);

 

 

if(isset($result->GetCustomerUserListResult->UserList->User))

{

foreach ($result->GetCustomerUserListResult->UserList->User as $b)

{

print $b->UserId." ".$b->FirstName." ".$b->LastName."<br />";

 

}

}

// uncomment this line to see raw result of this method response

//echo "<pre>". print_r($result,1) . '</pre>';

}

catch(SoapFault $e) {

echo '<xmp>' . $this->soapClient->__getLastRequestHeaders()  .  $this->soapClient->__getLastRequest() .  '</xmp>';

echo "<pre>". print_r($e,1) . '</pre>';

}

}

}

 

$client = new AcmeAPI() ;

$client->getVendors();

//$client->getProductClassification();

//$client->getProductList();

//$client->getProductBarcodes();

//$client->getInvoiceList();

//$client->GetInvoiceDetails();

//$client->GetInvoiceProductSerials();

//$client->getProductSpecification();

//$client->getProductResources();

//$client->getAddressList();

//$client->getCustomerUserList();

//$client->getInvoiceShipments();

//$client->getOrderDetails();

//$client->purchaseProducts();

?>

 

 

Thanks!

Link to comment
https://forums.phpfreaks.com/topic/229923-automating-data-exchange/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.