prestashop webservice设置虚拟产品

时间:2016-03-11 14:20:48

标签: web-services api prestashop-1.6

我尝试通过网络服务编辑产品,但在我设置“is_virtual = 1”之前它运行良好

我尝试设置“is_virtual = 1”和“type ='virtual'”

这是我传递给prestashop的代码:

string(4160) "<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<product>
<id>128</id>
<id_manufacturer>0</id_manufacturer>
<id_supplier>0</id_supplier>
<id_category_default xlink:href="http://fasys.it/lab/prestashop/api/categories/5">5</id_category_default>
<new/>
<cache_default_attribute>0</cache_default_attribute>

<id_default_combination notFilterable="true"/>
<id_tax_rules_group xlink:href="http://fasys.it/lab/prestashop/api/tax_rule_groups/1">1</id_tax_rules_group>
<position_in_category notFilterable="true">0</position_in_category>


<type notFilterable="true">virtual</type>
<id_shop_default>1</id_shop_default>
<reference>TEST</reference>
<supplier_reference/>
<location/>
<width>8</width>
<height>9</height>
<depth>0</depth>
<weight>10</weight>
<quantity_discount>0</quantity_discount>
<ean13/>
<upc/>
<cache_is_pack>0</cache_is_pack>
<cache_has_attachments>0</cache_has_attachments>
<is_virtual>1</is_virtual>
<on_sale>0</on_sale>
<online_only></online_only>
<ecotax>0.000000</ecotax>
<minimal_quantity>0</minimal_quantity>
<price>0</price>
<wholesale_price>0</wholesale_price>
<unity/>
<unit_price_ratio>0.000000</unit_price_ratio>
<additional_shipping_cost>0.00</additional_shipping_cost>
<customizable>0</customizable>
<text_fields>0</text_fields>
<uploadable_files>0</uploadable_files>
<active>1</active>
<redirect_type/>
<id_product_redirected>0</id_product_redirected>
<available_for_order>1</available_for_order>
<available_date>0000-00-00</available_date>
<condition>new</condition>
<show_price>1</show_price>
<indexed>1</indexed>
<visibility>both</visibility>
<advanced_stock_management>0</advanced_stock_management>
<date_add>2016-03-11 12:47:42</date_add>
<date_upd>2016-03-11 15:09:04</date_upd>
<pack_stock_type>0</pack_stock_type>
<meta_description><language id="1" xlink:href="http://fasys.it/lab/prestashop/api/languages/1"></language></meta_description>
<meta_keywords><language id="1" xlink:href="http://fasys.it/lab/prestashop/api/languages/1"></language></meta_keywords>
<meta_title><language id="1" xlink:href="http://fasys.it/lab/prestashop/api/languages/1"></language></meta_title>
<link_rewrite><language id="1" xlink:href="http://fasys.it/lab/prestashop/api/languages/1">lol1</language></link_rewrite>
<name><language id="1" xlink:href="http://fasys.it/lab/prestashop/api/languages/1">lol1</language></name>
<description><language id="1" xlink:href="http://fasys.it/lab/prestashop/api/languages/1">xaxa</language></description>
<description_short><language id="1" xlink:href="http://fasys.it/lab/prestashop/api/languages/1">11111</language></description_short>
<available_now><language id="1" xlink:href="http://fasys.it/lab/prestashop/api/languages/1"></language></available_now>
<available_later><language id="1" xlink:href="http://fasys.it/lab/prestashop/api/languages/1"></language></available_later>
<associations>
<categories nodeType="category" api="categories">
<category xlink:href="http://fasys.it/lab/prestashop/api/categories/5">
<id>5</id>
</category>
</categories>
<images nodeType="image" api="images"/>
<combinations nodeType="combination" api="combinations"/>
<product_option_values nodeType="product_option_value" api="product_option_values"/>
<product_features nodeType="product_feature" api="product_features">
<product_feature xlink:href="http://fasys.it/lab/prestashop/api/product_features/0">
<id>0</id>
<id_feature_value xlink:href="http://fasys.it/lab/prestashop/api/product_feature_values/0">0</id_feature_value>
</product_feature>
</product_features>
<tags nodeType="tag" api="tags">
<tag xlink:href="http://fasys.it/lab/prestashop/api/tags/0">
<id>0</id>
</tag>
</tags>
<stock_availables nodeType="stock_available" api="stock_availables">
<stock_available xlink:href="http://fasys.it/lab/prestashop/api/stock_availables/209">
<id>209</id>
<id_product_attribute>0</id_product_attribute>
</stock_available>
</stock_availables>
<accessories nodeType="product" api="products"/>
<product_bundle nodeType="product" api="products"/>
</associations>
<id_tax>1</id_tax></product>
</prestashop>
"

回复:

array(3) {
  ["status_code"] => int(500)
  ["response"] => string(258) "<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<errors>
<error>
<code><![CDATA[85]]></code>
<message><![CDATA[Error occurred while setting the product_bundle value]]></message>
</error>
</errors>
</prestashop>

2 个答案:

答案 0 :(得分:1)

错误非常明确,您需要从XML中删除product_bundle值。 Product类中没有product_bundle的setter。

答案 1 :(得分:1)

弗洛里安的回答是正确的:尝试取消设置product_bundle。 请注意,product_bundle是INSIDE associations。 我遇到了同样的问题。

//PHP
$xml = $this->get(array('url' => $this->url . '/api/products/' . $ProductId));
$resources = $xml->children()->children();

unset($resources->associations->product_bundle);