tGilvonas
tGilvonas

Reputation: 215

PrestaShop webService returns unexpected HTTP status 503

I am integrating warehouse management system (which is based on PHP) with PrestaShop1.6 and I am using PrestaShop Web Service for integration.

I have to make new products (which are created in warehouse management system) appear on PrestaShop 1.6 online store. Warehouse management system asks PrestaShop WebService to create new product on PrestaShop online store.

I have written this function showed below. It works good at my localhost, but on test server it receives HTTP status 503 after trying to update stock availability. All WebService methods (GET, PUT, DELETE, etc) are enabled on all WebService entities. I don't know how to debug this problem, can you help me?

By the way, I used this code as example: https://github.com/xabikip/PrestaShopWebService/blob/master/examples/createProduct.php

private function saveProduct($update, $webService, $root_path, $n_id, $n_id_category_default, $n_id_category, $n_price, $n_active, $n_avail4order, $n_show_price, $n_l_id, $n_name, $n_desc, $n_desc_short, $n_link_rewrite, $n_meta_title, $n_meta_description, $n_meta_keywords, $n_available_now, $n_available_later, $idtaglist, $cod, $quantity) {

        $webService = new PrestaShopWebservice($this->ps_shop_path, $this->ps_ws_auth_key, $this->ps_ws_debug);

        $xml = $webService->get(array('url' => $root_path . '/api/products?schema=blank'));
        $resources = $xml->children()->children();

        /*
        many values of attributes of XML object $resources are assigned here, instead of this comment
        */

        $id = "";
        try {
            $opt = array('resource' => 'products');
            if(!$update){
                $opt['postXml'] = $xml -> asXML();
                $xml = $webService -> add($opt);
                $id = $xml->product->id;
            }
            else{
                $opt['putXml'] = $xml -> asXML();
                $opt['id'] = $n_id;
                $xml = $webService -> edit($opt);
                $id = $n_id;
            }
        }
        catch (PrestaShopWebserviceException $ex) {
            echo '<b>Error : '.$ex->getMessage().'</b>';
        }

        $resources = $xml->children()->children();
        $stock_available_id = $resources->associations->stock_availables->stock_available[0]->id;
        /*
        Here we get the sotck available with were product id
        */
        try
        {
            $opt = array('resource' => 'stock_availables');
            $opt['id'] = $stock_available_id;
            $xml = $webService->get($opt);
        }
        catch (PrestaShopWebserviceException $e)
        {
            $trace = $e->getTrace();
            if ($trace[0]['args'][0] == 404) die('1:Bad ID');
            else if ($trace[0]['args'][0] == 401) die('1:Bad auth key');
            else die('1:Other error '.$e->getMessage());
        }
        $resources = $xml->children()->children();
        $resources->quantity = $quantity;
        /*
        There we call to save our stock quantity.
        */
        try
        {
            $opt = array('resource' => 'stock_availables');
            $opt['putXml'] = $xml->asXML();
            $opt['id'] = $stock_available_id;
            $xml = $webService->edit($opt);
            echo "Successfully updated.";
        }
        catch (PrestaShopWebserviceException $e)
        {
            $trace = $e->getTrace();
            if ($trace[0]['args'][0] == 404) die('2:Bad ID');
            else if ($trace[0]['args'][0] == 401) die('2:Bad auth key');
            else echo('Other error: '.$e->getMessage()); // function echoes this PrestaShopWebServiceException: "Other error: This call to PrestaShop Web Services returned an unexpected HTTP status of:503"
        }

    }

Upvotes: 0

Views: 3997

Answers (1)

PrestaAlba
PrestaAlba

Reputation: 689

PUT request are closed by default in most of hosting. Did you check this with your hosting manager?? Anyway, you must activate Prestashop DEBUG MODE in order to know the exact reason of your error (after you solve this of course).

Good luck.

Upvotes: 2

Related Questions