我正在努力使用简单的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);
基本上;包含可配置产品的简单产品在管理员后端可见,但在正面则不显示产品,并且在尝试编辑相关产品的可配置产品skus时也会丢失。
答案 0 :(得分:0)
默认Magento API不允许将产品与可配置产品相关联。您可以自定义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
希望这有帮助。