【发布时间】:2011-12-19 13:56:33
【问题描述】:
这里的类似问题对我的问题没有帮助,所以我自己问吧。
我有一个创建属性 (Drop-Down) 的 php 文件和一个为其创建选项的 php 文件。
现在我想创建一个 php 文件,它为我生成一个简单的 magento 产品,具有一个或多个属性(之前创建的)
这是我为它生成数据的一段代码:
$code = "\$newProductData = array(
" . ((!empty($name)) ? "'name' => '$name', " : "") . "
" . ((!empty($websites)) ? "'websites' => '$websites[0]', " : "") . "
" . ((!empty($description)) ? "'description' => '$description', " : "") . "
" . ((!empty($description_short)) ? "'description_short' => '$description_short', " : "") . "
" . ((!empty($price)) ? "'price' => '$price', " : "") . "
" . ((!empty($type)) ? "'type' => '$type', " : "") . "
" . ((!empty($status)) ? "'status' => '$status', " : "") . "
" . ((!empty($weight)) ? "'weight' => '$weight', " : "") . "
" . ((!empty($tax_class_id)) ? "'tax_class_id' => '$tax_class_id', " : "") . "
" . ((!empty($categories)) ? "'categories' => '$categories', " : "") . "
" . ((!empty($manufacturer)) ? "'manufacturer' => '$manufacturer', " : "") . "
" . ((!empty($color)) ? "'color' => '$color', " : "") . "
" . ((!empty($url_key)) ? "'url_key' => '$url_key', " : "") . "
" . ((!empty($url_path)) ? "'url_path' => '$url_path', " : "") . "
" . ((!empty($visibility)) ? "'visibility' => '$visibility', " : "") . "
" . ((!empty($news_from_date)) ? "'news_from_date' => '$news_from_date', " : "") . "
" . ((!empty($news_to_date)) ? "'news_to_date' => '$news_to_date', " : "") . "
" . ((!empty($special_price)) ? "'special_price' => '$special_price', " : "") . "
" . ((!empty($special_from_date)) ? "'special_from_date' => '$special_from_date', " : "") . "
" . ((!empty($special_to_date)) ? "'special_to_date' => '$special_to_date', " : "") . "
" . ((!empty($meta_title)) ? "'meta_title' => '$meta_title', " : "") . "
" . ((!empty($meta_keyword)) ? "'meta_keyword' => '$meta_keyword', " : "") . "
" . ((!empty($meta_description)) ? "'meta_description' => '$meta_description', " : "") . "
" . ((!empty($enable_googlecheckout)) ? "'enable_googlecheckout' => '$enable_googlecheckout', " : "") . "
" . ((!empty($custom_design)) ? "'custom_design' => '$custom_design', " : "") . "
" . ((!empty($custom_design_from)) ? "'custom_design_from' => '$custom_design_from', " : "") . "
" . ((!empty($custom_design_to)) ? "'custom_design_to' => '$custom_design_to', " : "") . "
" . ((!empty($custom_layout_update)) ? "'custom_layout_update' => '$custom_layout_update', " : "") . "
" . ((!empty($page_layout)) ? "'page_layout' => '$page_layout', " : "") . "
" . ((!empty($old_id)) ? "'old_id' => '$old_id', " : "") . "
" . ((!empty($required_options)) ? "'required_options' => '$required_options', " : "") . "
" . ((!empty($has_options)) ? "'has_options' => '$has_options', " : "") . "
" . ((!empty($image_label)) ? "'image_label' => '$image_label', " : "") . "
" . ((!empty($small_image_label)) ? "'small_image_label' => '$small_image_label', " : "") . "
" . ((!empty($thumbnail_label)) ? "'thumbnail_label' => '$thumbnail_label', " : "") . "
" . ((!empty($gift_message_available)) ? "'gift_message_available' => '$gift_message_available', " : "") . "
" . ((!empty($cost)) ? "'cost' => '$cost', " : "") . "
" . ((!empty($is_in_stock)) ? "'is_in_stock' => '$is_in_stock', " : "") . "
" . ((!empty($qty)) ? "'qty' => '$qty', " : "") . "
" . ((!empty($minimal_price)) ? "'minimal_price' => '$minimal_price', " : "") . "
" . ((!empty($tier_price)) ? "'tier_price' => '$tier_price', " : "") . "
" . ((!empty($options_container)) ? "'options_container' => '$options_container', " : "") . "
);";
/* evaluate code */
eval($code);
/* cause i dunno if i could simple add the attributes under the evaluated code, i'm merging each attribute to main array with product data like productdata = (array)productdata + (array)attributeX */
/* $attributes[$iteration] = "myattributename like custommanufacturer" */
/* $attributeoptions[$iteration] = "myoptionname like customname" */
while($iteration != $attr_count -1)
{
$iteration++;
$attributeData = array($attributes[$iteration] => $attributeoptions[$iteration]);
$newProductData = array_merge((array)$newProductData,(array)$attributeData);
}
if ($proxy->create($type, $set['set_id'], $sku, $newProductData))
{
$hp_bereich .= "\nsuccess=yes";
$hp_bereich .= "\nwarning=";
$hp_bereich .= "\nerrorcode=0";
$hp_bereich .= "\nSKU=" .$sku;
}
else
{
$hp_bereich .= "\nsuccess=no";
$hp_bereich .= "\nwarning=Error creating product see scriptblock";
$hp_bereich .= "\nerrorcode=-2001";
$hp_bereich .= "\nSKU=" .$sku;
}
现在问题来了: 产品创造:完美完成 属性将显示在产品内部的管理面板上(带有选定选项的下拉菜单):不。
谁能帮我解决这个问题?
我必须从头开始创建一个产品(信息很少),包括将由控制/填充 php 文件的用户创建的属性。
【问题讨论】:
-
好吧,我刚刚注意到我的自定义生成属性没有添加到默认属性集中(必须为此编辑我的 php)。现在它将显示我的自定义属性中的下拉菜单,但不会显示通过生成产品设置的选项。
标签: php api magento attributes product