*
*  @author PrestaShop SA <*****@*****.**>
*  @copyright  2007-2013 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
* PrestaShop Webservice Library
* @package PrestaShopWebservice
*/
// Here we define constants /!\ You need to replace this parameters
define('DEBUG', true);
define('PS_SHOP_PATH', 'http://www.myshop.com/');
define('PS_WS_AUTH_KEY', 'VIVELADIVISIONMOBILEDEPRESTASHOP');
require_once './PSWebServiceLibrary.php';
// First : We always get the customer's list or a specific one
try {
    $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
    $opt = array('resource' => 'customers');
    if (isset($_GET['id'])) {
        $opt['id'] = $_GET['id'];
    }
    $xml = $webService->get($opt);
    // Here we get the elements from children of customer markup which is children of prestashop root markup
    $resources = $xml->children()->children();
} catch (PrestaShopWebserviceException $e) {
    // Here we are dealing with errors
    $trace = $e->getTrace();
    if ($trace[0]['args'][0] == 404) {
        echo 'Bad ID';
    } else {
        if ($trace[0]['args'][0] == 401) {
            echo 'Bad auth key';
*
*  @author PrestaShop SA <*****@*****.**>
*  @copyright  2007-2013 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
* PrestaShop Webservice Library
* @package PrestaShopWebservice
*/
// Here we define constants /!\ You need to replace this parameters
define('DEBUG', true);
define('PS_SHOP_PATH', 'http://www.myshop.com/');
define('PS_WS_AUTH_KEY', 'ZQ88PRJX5VWQHCWE4EE7SQ7HPNX00RAJ');
require_once './PSWebServiceLibrary.php';
// Here we use the WebService to get the schema of "customers" resource
try {
    $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
    $opt = array('resource' => 'customers');
    if (isset($_GET['Create'])) {
        $xml = $webService->get(array('url' => PS_SHOP_PATH . '/api/customers?schema=blank'));
    } else {
        $xml = $webService->get($opt);
    }
    $resources = $xml->children()->children();
} catch (PrestaShopWebserviceException $e) {
    // Here we are dealing with errors
    $trace = $e->getTrace();
    if ($trace[0]['args'][0] == 404) {
        echo 'Bad ID';
    } else {
        if ($trace[0]['args'][0] == 401) {
            echo 'Bad auth key';
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
* PrestaShop Webservice Library
* @package PrestaShopWebservice
*/
// Here we define constants /!\ You need to replace this parameters
define('DEBUG', true);
// Debug mode
define('PS_SHOP_PATH', 'http://www.myshop.com/');
// Root path of your PrestaShop store
define('PS_WS_AUTH_KEY', 'ZQ88PRJX5VWQHCWE4EE7SQ7HPNX00RAJ');
// Auth key (Get it in your Back Office)
require_once './PSWebServiceLibrary.php';
// Here we make the WebService Call
try {
    $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
    // Here we set the option array for the Webservice : we want customers resources
    $opt['resource'] = 'customers';
    // We set an id if we want to retrieve infos from a customer
    if (isset($_GET['id'])) {
        $opt['id'] = (int) $_GET['id'];
    }
    // cast string => int for security measures
    // Call
    $xml = $webService->get($opt);
    // Here we get the elements from children of customer markup which is children of prestashop root markup
    $resources = $xml->children()->children();
} catch (PrestaShopWebserviceException $e) {
    // Here we are dealing with errors
    $trace = $e->getTrace();
    if ($trace[0]['args'][0] == 404) {
Пример #4
0
function add_product_feature_value($feature_id, $value){
        $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
	$opt1 = array('resource' => 'product_feature_values');
        $xml1 = $webService->get(array('url' => PS_SHOP_PATH.'/api/product_feature_values?schema=blank'));
	$resources1 = $xml1->children()->children();
        $resources1->value->language[0]=$value;
        $resources1->value->language[1]=$value;
        $resources1->id_feature=$feature_id;
        $resources1->custom=1;
        $opt1['postXml'] = $xml1->asXML();
        $xml1 = $webService -> add($opt1);
        $result1 = $xml1->children()->children();
        return $result1->{'id'};
}
Пример #5
0
// Auth key (Get it in your Back Office)
define('READY_FOR_SD_STATE_ID', 14);
// Статус заказа "Ваш заказ гото для самовывоза"
define('SD_EXPIRES_STATE_ID', 15);
// Статус заказа "Истекает срок хранения заказа для самовывоза"
define('N', 14);
// Через сколько дней высылать напоминание о самовывозе
define('ID_EMPLOYEE', 0);
// Сотрудник, от чьего имени обновляется статус
define('LOG_FILENAME', 'selfdelivery_state_change.log');
require_once './PSWebServiceLibrary.php';
$n = isset($_GET['n']) && !empty($_GET['n']) && is_numeric($_GET['n']) ? $_GET['n'] : N;
$log_str .= "Установлен срок хранения " . $n . " дней\r\n";
// Here we make the WebService Call
try {
    $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
    // Here we set the option array for the Webservice : we want orders resources
    $opt['resource'] = 'orders';
    // Call
    $xml = $webService->get($opt);
    // Here we get the elements from children of customers markup "orders"
    $orders_resources = $xml->orders->children();
} catch (PrestaShopWebserviceException $e) {
    // Here we are dealing with errors
    $trace = $e->getTrace();
    if ($trace[0]['args'][0] == 404) {
        echo 'Bad ID';
    } else {
        if ($trace[0]['args'][0] == 401) {
            echo 'Bad auth key';
        } else {
    echo "OK<br>";
    include "PSWebServiceLibrary.php";
} else {
    echo "<br><br>";
    echo "PrestaShop Web Service Library  file ({$filename}) is missing.<br>Please, make sure \"{$filename}\" file is present in the root folder of store i.e. same folder where ShippingZ integration files are placed.";
    exit;
}
//Extract Path to Prestashop
$folder_path = $_SERVER['SCRIPT_NAME'];
$folder_path_temp = explode("/", $folder_path);
$actual_file_name = $folder_path_temp[count($folder_path_temp) - 1];
$folder_path = "http://" . $_SERVER['HTTP_HOST'] . str_replace($actual_file_name, "", $folder_path);
echo "Checking accessibility of prestashop webservice API and permission of required prestashop resources.........<br>";
try {
    //Make API call
    $webService = new PrestaShopWebservice($folder_path, PRESTASHOP_API_KEY, true);
} catch (PrestaShopWebserviceException $ex) {
    //get user friendly error message
    echo "<br>" . $ex->getMessage();
}
try {
    //Get Order Details using API
    $xml = $webService->get(array('resource' => 'orders', 'id' => $test_order_id));
    $order_resources = $xml->children()->children();
    //Get Customer Details
    $opt = array('resource' => 'customers');
    $opt['id'] = $order_resources->id_customer;
    $xml = $webService->get($opt);
} catch (PrestaShopWebserviceException $ex) {
    //get user friendly error message
    echo "<br>" . $ex->getMessage();
Пример #7
0
                $cat = $item->addChild('category');
                $cat->addAttribute('name', $catName);
            }
        }
        trc("Added id=" . $id . ", name=" . $name . ", price=" . $priceNoVat . ", url=" . $url);
        $combIdXml = $combArray[++$i];
        //print($combIdXml->asXML());
    } while ($hasComb && $i < count($combArray));
}
try {
    ob_start();
    try {
        $cat = simplexml_load_file('cat_template_1.9.xml');
        echo "<html><body><pre>";
        // creating web service access
        $ws = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, false);
        trc("PS WebService created");
        $cres = new psCategory($ws, PS_ID_LANG);
        $vat = new psVat($ws, PS_ID_LANG);
        $combRes = new psCombinationResolver($ws, PS_ID_LANG);
        $vat->setup();
        //$xml = $ws->get(array('resource' => 'products','display' => 'full'));
        $xml = $ws->get(array('resource' => 'products'));
        //        dbg($xml->children()->asXML());
        $prodCnt = 1;
        foreach ($xml->children()->children() as $product_url) {
            //           if ($product_url['id'] != 162) {
            //               continue;
            //           }
            trc("Processing product " . $prodCnt);
            $prodCnt++;
Пример #8
0
 function Fetch_DB_Orders($datefrom, $dateto)
 {
     global $db_pdo;
     $datefrom_timestamp = $this->GetServerTimeLocal(false, $datefrom);
     $dateto_timestamp = $this->GetServerTimeLocal(false, $dateto);
     $order_status_filter = $this->PreparePrestaShopOrderStatusFilter();
     $sql = "SELECT  a.id_order, oh.id_order_state  FROM `" . _DB_PREFIX_ . "orders` a\n\t\tLEFT JOIN `" . _DB_PREFIX_ . "order_history` oh ON (oh.`id_order` = a.`id_order`)\n\t\tWHERE " . $order_status_filter . "  (( DATE_FORMAT(a.date_add,\"%Y-%m-%d %T\") between :dateform and :dateto) OR  ( DATE_FORMAT(a.date_upd,\"%Y-%m-%d %T\") between :dateform  and :dateto)) AND oh.`id_order_history` = (SELECT MAX(`id_order_history`) FROM `" . _DB_PREFIX_ . "order_history` moh WHERE moh.`id_order` = a.`id_order`)";
     $result = $db_pdo->prepare($sql);
     $data = array(':dateform' => $this->GetServerTimeLocal(true, $datefrom), ':dateto' => $this->GetServerTimeLocal(true, $dateto));
     $result->execute($data);
     $counter = 0;
     foreach ($result as $order_result) {
         $order_id = $order_result['id_order'];
         $id_order_state = $order_result['id_order_state'];
         //Extract Path to Prestashop
         $folder_path = $_SERVER['SCRIPT_NAME'];
         $folder_path_temp = explode("/", $folder_path);
         $actual_file_name = $folder_path_temp[count($folder_path_temp) - 1];
         $folder_path = "http://" . $_SERVER['HTTP_HOST'] . str_replace($actual_file_name, "", $folder_path);
         // call to retrieve order details
         $webService = new PrestaShopWebservice($folder_path, PRESTASHOP_API_KEY, false);
         try {
             //Get Order Details
             $xml = $webService->get(array('resource' => 'orders', 'id' => $order_id));
             $order_resources = $xml->children()->children();
             //Get Customer Details
             $opt = array('resource' => 'customers');
             $opt['id'] = $order_resources->id_customer;
             $xml = $webService->get($opt);
             $prestashop_orders_temp = $xml->children()->children();
             //Prepare order array
             $this->prestashop_orders[$counter]->orderid = $this->GetFieldNumber($order_resources, "id", -2);
             //Shipping details
             $address_result = $db_pdo->prepare("SELECT * FROM `" . _DB_PREFIX_ . "address` where `id_address`=:id_address");
             $address_result->execute(array(':id_address' => $this->GetFieldNumber($order_resources, "id_address_delivery", -2)));
             foreach ($address_result as $shipping_address) {
                 $this->prestashop_orders[$counter]->order_shipping["FirstName"] = $this->GetFieldString($shipping_address, "firstname");
                 $this->prestashop_orders[$counter]->order_shipping["LastName"] = $this->GetFieldString($shipping_address, "lastname");
                 $this->prestashop_orders[$counter]->order_shipping["Company"] = $this->GetFieldString($shipping_address, "company");
                 $this->prestashop_orders[$counter]->order_shipping["Address1"] = $this->GetFieldString($shipping_address, "address1");
                 $this->prestashop_orders[$counter]->order_shipping["Address2"] = $this->GetFieldString($shipping_address, "address2");
                 $this->prestashop_orders[$counter]->order_shipping["City"] = $this->GetFieldString($shipping_address, "city");
                 $this->prestashop_orders[$counter]->order_shipping["PostalCode"] = $this->GetFieldString($shipping_address, "postcode");
                 $this->prestashop_orders[$counter]->order_shipping["Phone"] = $this->GetFieldString($shipping_address, "phone");
                 $this->prestashop_orders[$counter]->order_shipping["State"] = "";
                 $state_result = $db_pdo->prepare("SELECT iso_code  from `" . _DB_PREFIX_ . "state`  where `id_state` =:id_state");
                 $state_result->execute(array(':id_state' => $this->GetFieldNumber($shipping_address, "id_state")));
                 foreach ($state_result as $state_code) {
                     $this->prestashop_orders[$counter]->order_shipping["State"] = $this->GetFieldString($state_code, "iso_code");
                 }
                 $country_result = $db_pdo->prepare("SELECT iso_code  from `" . _DB_PREFIX_ . "country`  where `id_country` = :id_country");
                 $country_result->execute(array(':id_country' => $this->GetFieldNumber($shipping_address, "id_country")));
                 foreach ($country_result as $country_code) {
                     $this->prestashop_orders[$counter]->order_shipping["Country"] = $this->GetFieldString($country_code, "iso_code");
                 }
             }
             $this->prestashop_orders[$counter]->order_shipping["EMail"] = $this->GetFieldString($prestashop_orders_temp, "email", -2);
             //billing details
             $billing_address_result = $db_pdo->prepare("SELECT * FROM `" . _DB_PREFIX_ . "address`  where `id_address` = :id_address");
             $billing_address_result->execute(array(':id_address' => $this->GetFieldNumber($order_resources, "id_address_invoice", -2)));
             foreach ($billing_address_result as $billing_address) {
                 $this->prestashop_orders[$counter]->order_billing["FirstName"] = $this->GetFieldString($billing_address, "firstname");
                 $this->prestashop_orders[$counter]->order_billing["LastName"] = $this->GetFieldString($billing_address, "lastname");
                 $this->prestashop_orders[$counter]->order_billing["Company"] = $this->GetFieldString($billing_address, "company");
                 $this->prestashop_orders[$counter]->order_billing["Address1"] = $this->GetFieldString($billing_address, "address1");
                 $this->prestashop_orders[$counter]->order_billing["Address2"] = $this->GetFieldString($billing_address, "address2");
                 $this->prestashop_orders[$counter]->order_billing["City"] = $this->GetFieldString($billing_address, "city");
                 $this->prestashop_orders[$counter]->order_billing["PostalCode"] = $this->GetFieldString($billing_address, "postcode");
                 $this->prestashop_orders[$counter]->order_billing["Phone"] = $this->GetFieldString($billing_address, "phone");
                 $this->prestashop_orders[$counter]->order_billing["State"] = "";
                 $state_result = $db_pdo->prepare("SELECT iso_code  from `" . _DB_PREFIX_ . "state`  where `id_state` =:id_state");
                 $state_result->execute(array(':id_state' => $this->GetFieldNumber($billing_address, "id_state")));
                 foreach ($state_result as $state_code) {
                     $this->prestashop_orders[$counter]->order_billing["State"] = $this->GetFieldString($state_code, "iso_code");
                 }
                 $sql_country = $db_pdo->prepare("SELECT iso_code  from `" . _DB_PREFIX_ . "country`  where `id_country` = :id_country");
                 $country_result->execute(array(':id_country' => $this->GetFieldNumber($billing_address, "id_country")));
                 foreach ($country_result as $country_code) {
                     $this->prestashop_orders[$counter]->order_billing["Country"] = $this->GetFieldString($country_code, "iso_code");
                 }
             }
             //order info
             $this->prestashop_orders[$counter]->order_info["OrderDate"] = $this->ConvertServerTimeToUTC(true, strtotime(stripslashes($this->GetFieldString($order_resources, "date_add", -2))));
             $this->prestashop_orders[$counter]->order_info["ItemsTotal"] = stripslashes($this->GetField($order_resources, "total_products", -2));
             $this->prestashop_orders[$counter]->order_info["Total"] = stripslashes($this->GetField($order_resources, "total_paid", -2));
             $this->prestashop_orders[$counter]->order_info["ShippingChargesPaid"] = stripslashes($this->GetField($order_resources, "total_shipping", -2));
             $shipping_result = $db_pdo->prepare("SELECT name  from `" . _DB_PREFIX_ . "carrier`  where `id_carrier` =:id_carrier");
             $shipping_result->execute(array(':id_carrier' => $this->GetFieldNumber($order_resources, "id_carrier", -2)));
             $this->prestashop_orders[$counter]->order_info["ShipMethod"] = "Not Available";
             if ($shipping_result->rowCount() > 0) {
                 foreach ($shipping_result as $shipping_method_details) {
                     $this->prestashop_orders[$counter]->order_info["ShipMethod"] = $this->GetFieldString($shipping_method_details, "name");
                 }
             }
             $this->prestashop_orders[$counter]->order_info["ItemsTax"] = 0;
             $this->prestashop_orders[$counter]->order_info["Comments"] = "";
             $this->prestashop_orders[$counter]->order_info["OrderNumber"] = $this->prestashop_orders[$counter]->orderid;
             //get payment type
             $this->prestashop_orders[$counter]->order_info["PaymentType"] = $this->ConvertPaymentType($this->GetFieldString($order_resources, "payment", -2));
             if ($id_order_state != "1" && $id_order_state != "10" && $id_order_state != "11") {
                 $this->prestashop_orders[$counter]->order_info["PaymentStatus"] = 2;
             } else {
                 $this->prestashop_orders[$counter]->order_info["PaymentStatus"] = 0;
             }
             //Show Order status
             if ($id_order_state == "4" || $id_order_state == "5") {
                 $this->prestashop_orders[$counter]->order_info["IsShipped"] = 1;
             } else {
                 $this->prestashop_orders[$counter]->order_info["IsShipped"] = 0;
             }
             $this->prestashop_orders[$counter]->order_info["Comments"] = "";
             //Customer Comments
             $comments_result = $db_pdo->prepare("SELECT *  from `" . _DB_PREFIX_ . "message`  where `id_customer`=:id_customer and `id_order` =:id_order ");
             $comments_result->execute(array('id_customer' => $order_resources->id_customer, ':id_order' => $this->prestashop_orders[$counter]->orderid));
             foreach ($comments_result as $comment_data_arr) {
                 $this->prestashop_orders[$counter]->order_info["Comments"] = $this->GetFieldString($comment_data_arr, "message");
             }
             //Gift message
             if ($this->GetFieldNumber($order_resources, "gift", -2) == "1") {
                 if ($this->prestashop_orders[$counter]->order_info["Comments"] != "") {
                     $this->prestashop_orders[$counter]->order_info["Comments"] .= " (Gift Message-" . stripslashes($this->GetFieldString($order_resources, "gift_message", -2)) . ")";
                 } else {
                     $this->prestashop_orders[$counter]->order_info["Comments"] .= "Gift Message-" . stripslashes($this->GetFieldString($order_resources, "gift_message", -2));
                 }
             }
             //Get Products
             $product_result = $db_pdo->prepare("SELECT *  from `" . _DB_PREFIX_ . "order_detail`  where `id_order` =:id_order ");
             $product_result->execute(array(':id_order' => $this->prestashop_orders[$counter]->orderid));
             $i = 0;
             foreach ($product_result as $product_data_arr) {
                 $this->prestashop_orders[$counter]->order_product[$i]["Name"] = $this->GetFieldString($product_data_arr, "product_name");
                 $this->prestashop_orders[$counter]->order_product[$i]["Price"] = $this->GetFieldMoney($product_data_arr, "product_price");
                 //reduction price
                 $reduction_amount = $this->GetFieldMoney($product_data_arr, "reduction_amount");
                 $reduction_percent = $this->GetFieldMoney($product_data_arr, "reduction_percent");
                 if ($reduction_percent != "0.00") {
                     $reduction_amount = $reduction_percent / 100 * $this->prestashop_orders[$counter]->order_product[$i]["Price"];
                 }
                 $this->prestashop_orders[$counter]->order_product[$i]["Price"] = $this->prestashop_orders[$counter]->order_product[$i]["Price"] - $reduction_amount;
                 $this->prestashop_orders[$counter]->order_product[$i]["Quantity"] = $this->GetFieldNumber($product_data_arr, "product_quantity");
                 $this->prestashop_orders[$counter]->order_product[$i]["Total"] = $this->FormatNumber($this->prestashop_orders[$counter]->order_product[$i]["Price"] * $this->GetFieldNumber($product_data_arr, "product_quantity"));
                 $this->prestashop_orders[$counter]->order_product[$i]["Total_Product_Weight"] = $this->GetFieldNumber($product_data_arr, "product_weight") * $this->GetFieldNumber($product_data_arr, "product_quantity");
                 $tax = $this->prestashop_orders[$counter]->order_product[$i]["Price"] * $this->GetFieldNumber($product_data_arr, "tax_rate") * $this->GetFieldNumber($product_data_arr, "product_quantity") / 100;
                 $this->prestashop_orders[$counter]->order_product[$i]["ExternalID"] = $this->GetFieldString($product_data_arr, "product_id");
                 $this->prestashop_orders[$counter]->order_info["ItemsTax"] += $tax;
                 $i++;
             }
             $this->prestashop_orders[$counter]->num_of_products = $i;
         } catch (PrestaShopWebserviceException $ex) {
             //$trace = $ex->getTrace();
             echo "Could not access prestashop API";
             exit;
         }
         $counter++;
     }
 }