我需要在通过REST API添加自定义功能时设置自定义功能值。
目前我已经添加了功能并将其ID包含在xml中,但仍然强制我先设置值选项,然后将其ID提供给id_feature_value标记
<product_feature>
<id required="true"/>
<id_feature_value required="true"/>
</product_feature>
如何设置自定义值?
如果我采取策略添加临时值,那么读取它的id并更新产品我将在服务器上进行不必要的加载,我认为必须有一种方法来添加一次自定义值,因为可以设置一个管理区域。
答案 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 = 1
或custom = 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);