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
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.