Невозможно создать настраиваемый продукт в Magento

Я изо всех сил пытаюсь создать конфигурируемый продукт, используя простой PHP-скрипт. Буду признателен, если вы мне поможете,

$sku_array = array(substr(sha1(mt_rand()), 0, 5),
substr(sha1(mt_rand()), 0, 5),
substr(sha1(mt_rand()), 0, 5),
substr(sha1(mt_rand()), 0, 5),
substr(sha1(mt_rand()), 0, 5),
substr(sha1(mt_rand()), 0, 5));
$color_array = array('Black','Blue','Green','Maroon','Navy','Red','White');
$size_array = array('S','M','L','XL','2XL');
$style_array = array('Men','Unisex','Women');
$price_array = array('8.90','9.00','12.30','14.25','15.99','11.30','4.45');
$associated_skus = array();

for($i=0; $i < 4; $i++) {
$productData = array(
'categories'=> array(3),
'name' => 'Name of product #' . ($i+1),
'description' => 'Description of product #' . ($i+1),
'short_description' => 'Short description of product #' . ($i+1),
'websites' => array(1), // Id or code of website
'status' => 1, // 1 = Enabled, 2 = Disabled
'visibility' => 1, // 1 = Not visible, 2 = Catalog, 3 = Search, 4 = Catalog/Search
'tax_class_id' => 0, // 0 None; 2: Taxable Good; 4: Shipping
'weight' => 0,
'stock_data' => array(
'use_config_manage_stock' => 0,
'manage_stock' => 0, // We do not manage stock, for example
'qty' => '100',
'is_in_stock' => 1
),
'price' => array_rand(array_flip($price_array),1), // Same price than configurable product, no price change
'additional_attributes' => array(
'single_data' => array(
array(
'key'   => 'style',
'value' => array_rand(array_flip($style_array),1), // Id or label of style, attribute that will be used to configure product    (Men,Unisex,Women)
),
array(
'key'   => 'color',
'value' => array_rand(array_flip($color_array),1), // Id or label of color, attribute that will be used to configure product
),
array(
'key'   => 'size',
'value' => array_rand(array_flip($size_array),1), // Id or label of size, attribute that will be used to configure product
),
),
),
);

// Creation of simple products
$proxy->catalogProductCreate($sessionId, 'simple', '9', 'SKU-' . $sku_array[$i], $productData);
$associated_skus[] =  'SKU-' . $sku_array[$i];

}

echo "<pre>";
echo "Ass Products";
print_r($associated_skus);
echo "<br />";/**
* Configurable product
*/
$productData = array(
'categories'=> array(3),
'name' => 'Configurable product',
'description' => 'Description of configurable product',
'short_description' => 'Short description of configurable product',
'websites' => array(1), // Id or code of website
'status' => 1, // 1 = Enabled, 2 = Disabled
'visibility' => 4, // 1 = Not visible, 2 = Catalog, 3 = Search, 4 = Catalog/Search
'tax_class_id' => 2, // Default VAT
'weight' => 0,
'stock_data' => array(
'use_config_manage_stock' => 0,
'manage_stock' => 0, // We do not manage stock, for example
),
'price' => 9.90,
'associated_skus' => array($associated_skus), // Simple products to associate
'price_changes' => array(),
);

$result = $proxy->catalogProductCreate($sessionId, 'configurable', '9', 'SKU-' . $sku_array[5], $productData);
echo "<pre>";
print_r($result);

В принципе; простые продукты, в том числе конфигурируемый продукт, видны в административном бэкэнде, но на лицевой стороне он не отображает продукт, а при попытке редактировать конфигурируемый продукт-сук соответствующего продукта также отсутствует

1

Решение

Стандартный API Magento не позволяет связывать продукты с настраиваемыми продуктами. Вы можете настроить API для достижения этой цели. Следите за этим блогом — http://www.bubblecode.net/en/2012/04/20/magento-api-associate-simple-products-to-configurable-or-grouped-product/

Если вы не хотите загружать плагин, просто обратитесь к приведенному ниже коду и обновите API соответствующим образом.

associateProducts () — https://github.com/jreinke/magento-improve-api/blob/master/app/code/community/Bubble/Api/Helper/Catalog/Product.php

_prepareDataForSave () — https: // github.com/jreinke/magento-improve-api/blob/master/app/code/community/Bubble/Api/Model/Catalog/Product/Api.php

Надеюсь это поможет.

0

Другие решения

Других решений пока нет …