2015-04-23 50 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);