2013-11-12 4 views
1

Я пытаюсь добавить продукт через веб-сервис, и я получаю сильфон кода ошибки:Добавить продукт в PrestaShop 1,5 с помощью веб-службы

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); 

ответ

2

Ресурс Продукт очень важен для Prestashop. Я быстро проверил схему «синопсис» (.../api/products /? Schema = краткое описание). Поля отмечены как обязательные для заполнения! В вашем примере, например, отсутствует родительская категория по умолчанию! Это одна из причин, почему это не сработало!

0

проверить, что вы дали правильные PS_SHOP_PATH и PS_WS_AUTH_KEY.

, а также проверить разрешение от вашего предварительного архива.

+0

Правильно, я проверил снова и снова. Окончательно я создаю свой собственный метод вставки продукта –

0

Чтобы увидеть сообщение об ошибке в реальном вебсервис пожалуйста, включите отображение ошибок PHP в конфигурации/config.inc.php

@ini_set ('display_errors', 'на');
define ('_ PS_DEBUG_SQL_', true);

2

В PrestaShop 1.5 Открыть defines.inc.php из папки конфигурации

найти

define('_PS_MODE_DEV_', false); 

изменения лжи ->правды она начнет показывать точную ошибку.

Эта ошибка происходит из-за

$resources->quantity = '50'; 

Вы не можете изменить количество из XML. Просто прокомментируйте эту строку. Надеюсь, это сработает для вас.

+0

ОК спасибо за ваш ответ –

Смежные вопросы