tbutron12 Posted March 29, 2021 Share Posted March 29, 2021 Hello, I want to obtain product image url. The endpoint I have found returns it only on authenticated requests. I need an public url to avoid redundant saves on my server. Exemplary public link aka img src: https://MY-DOMAIN.com/7-large_default/mug-the-adventure-begins.jpg I can also scrap for this link on website, but firstly, I would need to get the product url via API by passing product_id. Any ideas on that? Thanks Link to comment Share on other sites More sharing options...
Guest Posted March 29, 2021 Share Posted March 29, 2021 Find protected $webserviceParameters in ./classes/Product.php There you can add your own parameter or edit an existing parameter. Now it returns the image id. You also have a function there: public function getWsImages() { return Db::getInstance()->executeS(' SELECT i.`id_image` as id FROM `'._DB_PREFIX_.'image` i '.Shop::addSqlAssociation('image', 'i').' WHERE i.`id_product` = '.(int)$this->id.' ORDER BY i.`position`'); } You can modify this function and add your own parameter. E.g. public function getWsImages() { $get_images = Db::getInstance()->executeS(' SELECT i.`id_image` as id, i.id_product FROM `'._DB_PREFIX_.'image` i '.Shop::addSqlAssociation('image', 'i').' ORDER BY i.`position`'); $custom_ws = array(); foreach ($get_images as $images){ $protocol_link = Configuration::get('PS_SSL_ENABLED') || Tools::usingSecureMode() ? 'https://' : 'http://'; $use_ssl = Configuration::get('PS_SSL_ENABLED') || Tools::usingSecureMode() ? true : false; $protocol_content = $use_ssl ? 'https://' : 'http://'; $id_product = $images['id_product']; $image = Image::getCover($id_product); $product = new Product($id_product, false, Context::getContext()->language->id); $link = new Link($protocol_link, $protocol_content); $image_link = $link->getImageLink($product->link_rewrite, $image['id_image'], 'large_default'); $custom_ws[] = array('id' => $images['id'], 'image_url' => $image_link); } return $custom_ws; } and $webserviceParameters: 'images' => array( 'resource' => 'image', 'fields' => array('id' => array()) ), changed to: 'images' => array( 'resource' => 'image', 'fields' => array('id' => array(), 'image_url' => array()) ), Link to comment Share on other sites More sharing options...
tbutron12 Posted April 9, 2021 Author Share Posted April 9, 2021 But is it possible to obtain the url without modifying php files? I'm making a sale manager which will be used by many various shop owners Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now