{ function __doRequest($request, $location, $action, $version) { $namespace = AC_NAMESPACE; $request = preg_replace('/<ns1:(\\w+)/', '<$1 xmlns="' . $namespace . '"', $request, 1); $request = preg_replace('/<ns1:(\\w+)/', '<$1', $request); $request = str_replace(array('/ns1:', 'xmlns:ns1="' . $namespace . '"'), array('/', 'xmlns="' . $namespace . '"'), $request); // parent call return parent::__doRequest($request, $location, $action, $version); } } // Create a hash containing the header information for authentication. $header_info = array("UserName" => API_USERNAME, "Password" => API_PASSWORD, "SecurityToken" => SECURITY_TOKEN); try { // Create a new instance of the client pointing to the wsdl endpoint. $client = new ACSoapClient("https://" . STORE_DOMAIN . "/store/ws/AmeriCommerceDb.asmx?wsdl"); // Create a new header object specifying the namespace, header object type, and hash containing the header details. $header = new SoapHeader(AC_NAMESPACE, "AmeriCommerceHeaderInfo", $header_info); // Set the header on the client so we can authenticate the request. $client->__setSoapHeaders($header); // Fetch a product by its ID from the API. Set this ID to something relevant for your store. $response = $client->Product_GetByKey(array("piitemID" => 1670)); // The response is an object that has our result. $product = $response->Product_GetByKeyResult; // Fill a collection on the product, notice that the product itself is passed in here. $response = $client->Product_FillProductVariantCollection(array("poProductTrans" => $product)); // We get back the same product with the collection filled. $product = $response->Product_FillProductVariantCollectionResult; } catch (Exception $e) { print_r($e); }
{ function __doRequest($request, $location, $action, $version) { $namespace = AC_NAMESPACE; $request = preg_replace('/<ns1:(\\w+)/', '<$1 xmlns="' . $namespace . '"', $request, 1); $request = preg_replace('/<ns1:(\\w+)/', '<$1', $request); $request = str_replace(array('/ns1:', 'xmlns:ns1="' . $namespace . '"'), array('/', 'xmlns="' . $namespace . '"'), $request); // parent call return parent::__doRequest($request, $location, $action, $version); } } // Create a hash containing the header information for authentication. $header_info = array("UserName" => API_USERNAME, "Password" => API_PASSWORD, "SecurityToken" => SECURITY_TOKEN); try { // Create a new instance of the client pointing to the wsdl endpoint. $client = new ACSoapClient("https://" . STORE_DOMAIN . "/store/ws/AmeriCommerceDb.asmx?wsdl"); // Create a new header object specifying the namespace, header object type, and hash containing the header details. $header = new SoapHeader("http://www.americommerce.com", "AmeriCommerceHeaderInfo", $header_opts, false); // Set the header on the client instance so that we can authenticate. $client->__setSoapHeaders($header); // Grab the OrderID from the last order placed $lastorder = $client->Order_GetLastOrderID(); // Fetch the order details $order = $client->Order_GetByKey(array("piorderID" => $lastorder->Order_GetLastOrderIDResult))->Order_GetByKeyResult; // Fetch the customer details from the order $customer = $client->Customer_GetByKey(array("picustomerID" => $order->customerID->Value))->Customer_GetByKeyResult; // Lets update some of the customer information $customer->lastName = "John"; $customer->firstName = "Doe"; $Customer->email = "*****@*****.**"; // After updating the customer information, we need to save it on the server