如何通过PrestaShop WebService更新自定义产品功能值?

时间:2015-05-15 23:27:56

标签: php rest prestashop prestashop-1.6

我需要在通过REST API添加自定义功能时设置自定义功能值。

目前我已经添加了功能并将其ID包含在xml中,但仍然强制我先设置值选项,然后将其ID提供给id_feature_value标记

<product_feature>
<id required="true"/>
<id_feature_value required="true"/>
</product_feature>

如何设置自定义值?

如果我采取策略添加临时值,那么读取它的id并更新产品我将在服务器上进行不必要的加载,我认为必须有一种方法来添加一次自定义值,因为可以设置一个管理区域。

2 个答案:

答案 0 :(得分:0)

当您为Prestashop Backoffice中的功能设置自定义值时,您实际上正在使用它自己的ID在数据库中保存此功能的值,唯一的区别是&#34;定制&#34;表格中的字段&#34; ps_feature_value&#34;从BD设置为1。 因此,在通过webservice保存产品之前,需要将特征值与​​产品相关联以进行保存。 如果你转到http://yourshop.com/api/product_feature_values?schema=synopsis,你可以看到&#34; custom&#34;领域。 custom = 1custom = 0之间的唯一区别是它可以在后台选择它。

答案 1 :(得分:0)

你能尝试

$xml = simplexml_load_file("template.xml");
$xml->addChild("product_feature_value");
$idfeature = $xml->product_feature_value->addChild("id_feature","idfeature:example=1");
$idfeature->addAttribute("href", PS_SHOP_PATH . "/api/product_features/2");

$value = $xml->product_feature_value->addChild("value");
$language = $value->addChild("language", "text");
$language->addAttribute("href", PS_SHOP_PATH . "/api/languages/1");
$language->addAttribute("id", 1);
$opt = array('resource' => 'product_feature_values');
$opt['postXml'] = $xml->asXML();
$xml2 = $webService->add($opt);