2015-04-23 46 views
2

我想在自己的课程中更改自定义功能(产品功能)(Artikeleigenschaften)的值。通过Prestashop中的PHP更新产品功能

要更改产品价值是非常简单的:

$productObj = new Product($produktId); 
$productObj->setFieldsToUpdate(array('ean13')); 
$productObj->ean13 = "johndoo"; 
$productObj->save(); 

但是,有没有类似的方式来改变产品的功能?

回答

1

MH,我从来没有试过这样做,但你可以试试这个:

Product::addFeatureProductImport($productObjc->id, $id_feature, $id_feature_value); 
+0

这是解决方案的一部分。当我再次回答时,您还必须使用'FeatureValue :: addFeatureValueImport()'。 – user2355808

1

这里我的解决办法: 要更新产品功能,你必须更新你的数据库2个表: ps_feature_valueps_feature_value_lang

与操作:

$id_feature_value = (int)FeatureValue::addFeatureValueImport 
( 
    (int)$feature['id_feature'], 
    $newFeatureValue, 
    (int)$produktId, 
    $this->context->language->id, 
    1 // $custom 
); 
Product::addFeatureProductImport(
    $produktId, (int)$feature['id_feature'], $id_feature_value 
); 

使用NOT自定义值更新功能使用:

$arr = FeatureValue::getFeatureValueLang($id_dropdown); 
foreach ($arr AS $item) 
    if ($item['id_lang'] == $this->context->language->id) 
    { 
     $feature_val_name = $item['value'] ; 
    } 

$id_feature_value = (int)FeatureValue::addFeatureValueImport 
( 
    (int)$feature['id_feature'], 
    $feature_val_name, 
    $product->id, 
    $this->context->language->id, 
    false 
); 
$product->addFeatureProductImport($product->id , (int)$feature['id_feature'], $id_feature_value);