我创建了一个小脚本来将产品添加到prestashop商店。 现在我面临一个问题 - 尝试将组合添加到产品中。 这是我的代码现在的样子。 我在这里添加产品后就是我正在做的事情,$ product_id是我新创建的产品
$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 :(得分:1)
尝试使用以下代码添加产品组合:
$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')
);
有关详细信息,您可以在Product.php类文件中检查addCombinationEntity()函数的定义。
上述函数返回生成的combination_id。
答案 1 :(得分:0)
我找到了一个有效的代码,它没有使用网络服务。
$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);