Jump to content

Unexpected response of PrestaShop API service (HTTP status 503)


tgilvonas

Recommended Posts

Hello,

 

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

I have to make new products (which are created in warehouse management system) appear on PrestaShop 1.6 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 solve this problem, can you help me?

 

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 die('Other error: '.$e->getMessage()); // function echoes this PrestaShopWebServiceException: "Other error: This call to PrestaShop Web Services returned an unexpected HTTP status of:503"
        }
        
    }

Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...