Подобные вопросы здесь не помогли мне с моей проблемой, поэтому я просто задам сам.
У меня есть файл 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-файл информацией.