2016-12-02 155 views
1

我创建了一个小脚本来将产品添加到prestashop商店。 现在我面临一个问题 - 试图将组合添加到产品中。 这是我的代码现在的样子。 后,我在这里补充该产品是我真的做什么,$ PRODUCT_ID是我的新创建的产品Prestashop添加产品组合

$xml = $webService->get(array('url' => SITE_URL.'/api/combinations?schema=blank')); 
$combinations = $xml->children()->children(); 
$combinations->id_product = $product_id; 

$combinations->minimal_quantity = 1; 
$combinations->reference = 'dada'; 
$combinations->price = 99; 
$combinations->default_on = 1; 
$combinations->associations->product_option_values->product_option_value->id = 1; 
$opt = array('resource' => 'products'); 
$opt['postXml'] = $xml->asXML(); 

,这是来自服务器的响应..

<?xml version="1.0" encoding="UTF-8"?> 
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> 
<combination> 
<id></id> 
<id_product></id_product> 
<location></location> 
<ean13></ean13> 
<upc></upc> 
<quantity></quantity> 
<reference></reference> 
<supplier_reference></supplier_reference> 
<wholesale_price></wholesale_price> 
<price></price> 
<ecotax></ecotax> 
<weight></weight> 
<unit_price_impact></unit_price_impact> 
<minimal_quantity></minimal_quantity> 
<default_on></default_on> 
<available_date></available_date> 
<associations> 
<product_option_values> 
<product_option_value> 
<id></id> 
</product_option_value> 
</product_option_values> 
<images> 
<image> 
<id></id> 
</image> 
</images> 
</associations> 
</combination> 
</prestashop> 
+0

你能解释一下这个问题吗?你能给我们发送错误信息吗? –

+0

没有错误消息。 – nikksan

回答

0

我发现了一个工作代码,它没有使用web服务。

$product = new Product($product_id); 
$combinationAttributes = array(); 
$combinationAttributes[] = $combination_id; 
$idProductAttribute = $product->addProductAttribute(
       (float)1, //price 
       (float)1, //weight 
       1,  //unit_impact 
       null , //ecotax 
       (int)1, //quantity 
       "",  //id_images 
       "" , //reference 
       strval(""), //suppliers 
       strval(""), //ean13 
       NULL, //default 
       NULL, //location 
       NULL //upc 
       ); 
       $product->addAttributeCombinaison($idProductAttribute,      $combinationAttributes); 
+0

'addAttributeCombinaison()'自1.5.0.7开始被弃用。我认为现在正确的方法是'addCombinationEntity()'。 – LostMyGlasses

0

尝试使用下面的代码增加产品组合:

$product = new Product($id_product); 

$id_product_attribute = $product->addCombinationEntity(
           Tools::getValue('attribute_wholesale_price'), 
           Tools::getValue('attribute_price') * Tools::getValue('attribute_price_impact'), 
           Tools::getValue('attribute_weight') * Tools::getValue('attribute_weight_impact'), 
           Tools::getValue('attribute_unity') * Tools::getValue('attribute_unit_impact'), 
           Tools::getValue('attribute_ecotax'), 
           0, 
           Tools::getValue('id_image_attr'), 
           Tools::getValue('attribute_reference'), 
           null, 
           Tools::getValue('attribute_ean13'), 
           Tools::getValue('attribute_default'), 
           Tools::getValue('attribute_location'), 
           Tools::getValue('attribute_upc'), 
           Tools::getValue('attribute_minimal_quantity'), 
           array(), 
           Tools::getValue('available_date_attribute') 
          ); 

有关详细信息,您可以检查addCombinationEntity的定义(在Product.php类文件)的功能。

上述函数返回一个生成的combination_id。

相关问题