Я пытаюсь добавить продукт через веб-сервис, и я получаю следующий код ошибки:
RETURN HTTP BODY <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <errors> <error> <message><![CDATA[Internal error. To see this error please display the PHP errors.]]></message> </error> </errors> </prestashop>
Я ищу 2 дня, но ничего. Пожалуйста, кто-нибудь может мне помочь? Мой код ниже.
define('DEBUG', true); define('_PS_DEBUG_SQL_', true); define('PS_SHOP_PATH', 'http://mywebsiteinlocalhost.gr/dev...shop/trunk/src/'); define('PS_WS_AUTH_KEY', 'CBYB5G5UVRA7FCN7JK2WZ625DFWG8SK3'); require_once ('./PSWebServiceLibrary.php'); $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG); $opt = array('resource' => 'products'); $xml = $webService->get(array('url' => PS_SHOP_PATH.'/api/products?schema=synopsis')); $resources = $xml->children()->children(); unset($resources->position_in_category); unset($resources->manufacturer_name); $resources->price = '1000'; $resources->active = '1'; $resources->quantity = '50'; $resources->link_rewrite = 'blabla'; $resources->name->language[0][0] = 'blabla'; $resources->description->language[0][0] = '<p>blabla</p>'; $resources->description_short->language[0][0] = 'blabla'; $resources->associations = ''; $opt = array('resource' => 'products'); $opt['postXml'] = $xml->asXML(); $xml = $webService->add($opt);
сdefine('DEBUG', true); define('_PS_DEBUG_SQL_', true); define('PS_SHOP_PATH', 'http://mywebsiteinlocalhost.gr/dev...shop/trunk/src/'); define('PS_WS_AUTH_KEY', 'CBYB5G5UVRA7FCN7JK2WZ625DFWG8SK3'); require_once ('./PSWebServiceLibrary.php'); $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG); $opt = array('resource' => 'products'); $xml = $webService->get(array('url' => PS_SHOP_PATH.'/api/products?schema=synopsis')); $resources = $xml->children()->children(); unset($resources->position_in_category); unset($resources->manufacturer_name); $resources->price = '1000'; $resources->active = '1'; $resources->quantity = '50'; $resources->link_rewrite = 'blabla'; $resources->name->language[0][0] = 'blabla'; $resources->description->language[0][0] = '<p>blabla</p>'; $resources->description_short->language[0][0] = 'blabla'; $resources->associations = ''; $opt = array('resource' => 'products'); $opt['postXml'] = $xml->asXML(); $xml = $webService->add($opt);
сdefine('DEBUG', true); define('_PS_DEBUG_SQL_', true); define('PS_SHOP_PATH', 'http://mywebsiteinlocalhost.gr/dev...shop/trunk/src/'); define('PS_WS_AUTH_KEY', 'CBYB5G5UVRA7FCN7JK2WZ625DFWG8SK3'); require_once ('./PSWebServiceLibrary.php'); $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG); $opt = array('resource' => 'products'); $xml = $webService->get(array('url' => PS_SHOP_PATH.'/api/products?schema=synopsis')); $resources = $xml->children()->children(); unset($resources->position_in_category); unset($resources->manufacturer_name); $resources->price = '1000'; $resources->active = '1'; $resources->quantity = '50'; $resources->link_rewrite = 'blabla'; $resources->name->language[0][0] = 'blabla'; $resources->description->language[0][0] = '<p>blabla</p>'; $resources->description_short->language[0][0] = 'blabla'; $resources->associations = ''; $opt = array('resource' => 'products'); $opt['postXml'] = $xml->asXML(); $xml = $webService->add($opt);
Ресурс Продукт очень важен для Prestashop. Я быстро проверил схему «синопсис» (… / api / products /? Schema = краткое описание). Поля отмечены как обязательные для заполнения! В вашем примере, например, отсутствует родительская категория по умолчанию! Это одна из причин, почему это не сработало!
В PrestaShop 1.5 Open defines.inc.php
из папки config
найти
define('_PS_MODE_DEV_', false);
change false -> true, он начнет показывать точную ошибку.
Эта ошибка возникает из-за
$resources->quantity = '50';
Вы не можете изменять количество из xml. Просто прокомментируйте эту строку. Надеюсь, это сработает для вас.
проверьте, что вы дали правильные PS_SHOP_PATH и PS_WS_AUTH_KEY.
а также проверить разрешение с вашего брандмауэра prestashop.
Чтобы увидеть реальное сообщение об ошибке webservice, активируйте отображение ошибок PHP в config / config.inc.php
@ini_set ('display_errors', 'on');
define ('_ PS_DEBUG_SQL_', true);