我写了一个简单的函数来添加一个产品到presta基于prestashop网络服务库:
public function postPrestaProduct($id, $name, $description, $price, $ean, $category, $manufacturer) {
$webService = new \PrestaShopWebService('xxx', 'xxx', false);
$blankXml = $webService->get(['resource' => 'products', 'schema' => 'blank']);
$productFields = $blankXml->product->children();
$productFields->id = $id;
$productFields->name = '';
$productFields->name->addChild('language', $name);
$productFields->name->language->addAttribute('id', '2');
$productFields->description = '';
$productFields->description->addChild('language', $description);
$productFields->description->language->addAttribute('id', '2');
$productFields->price = $price;
$productFields->ean13 = $ean;
$productFields->id_category_default = isset($category) ? $category : null;
$productFields->associations->categories->category->id = isset($category) ? $category : null;
unset($productFields->position_in_category);
$productFields->id_manufacturer = $manufacturer;
$productFields->active = true;
$webService->add(['resource' => 'products', 'postXml' => $blankXml->asXML()]);
}
并且每次调用该函数时,将乘积添加到presta,然而每次返回错误:
PrestaShopWebserviceException: HTTP response is empty in /path
这导致环路断开。
有人知道是什么导致了这个错误吗?
1条答案
按热度按时间7gyucuyw1#
巡视:
该函数似乎可以添加产品,但由于HTTP响应为空而抛出异常,可能与
PrestaShop Webservice
及其处理响应的方式有关。如果这是真的,解决方案是捕获异常并调查问题的原因。您可以尝试按以下方式修改函数:
它将捕获
PrestaShopWebserviceException
异常,并检查消息是否为 HTTP response is empty。如果是,您可以记录错误并继续处理其他产品,而不中断循环。如果是另一个异常,您可以抛出它。