|
|
@@ -0,0 +1,151 @@ |
|
|
<?php |
|
|
/** |
|
|
* Error reporting |
|
|
*/ |
|
|
error_reporting(E_ALL | E_STRICT); |
|
|
|
|
|
/** |
|
|
* Compilation includes configuration file |
|
|
*/ |
|
|
define('MAGENTO_ROOT', getcwd()); |
|
|
$mageFilename = MAGENTO_ROOT . '/app/Mage.php'; |
|
|
require_once $mageFilename; |
|
|
if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) { |
|
|
Mage::setIsDeveloperMode(true); |
|
|
} |
|
|
umask(0); |
|
|
/* Store or website code */ |
|
|
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : ''; |
|
|
|
|
|
/* Run store or run website */ |
|
|
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store'; |
|
|
Mage::app(); |
|
|
|
|
|
|
|
|
|
|
|
/* Create attribute */ |
|
|
/** @var $installer Mage_Catalog_Model_Resource_Setup */ |
|
|
$installer = new Mage_Catalog_Model_Resource_Setup('catalog_setup'); |
|
|
/** @var $attribute Mage_Catalog_Model_Resource_Eav_Attribute */ |
|
|
$attribute = Mage::getResourceModel('catalog/eav_attribute'); |
|
|
$attribute->load('test_configurable', 'attribute_code'); |
|
|
if ($attribute->getId() == null) { |
|
|
$attribute->setData( |
|
|
array( |
|
|
'attribute_code' => 'test_configurable', |
|
|
'entity_type_id' => $installer->getEntityTypeId('catalog_product'), |
|
|
'is_global' => 1, |
|
|
'is_user_defined' => 1, |
|
|
'frontend_input' => 'select', |
|
|
'is_unique' => 0, |
|
|
'is_required' => 1, |
|
|
'is_configurable' => 1, |
|
|
'is_searchable' => 0, |
|
|
'is_visible_in_advanced_search' => 0, |
|
|
'is_comparable' => 0, |
|
|
'is_filterable' => 0, |
|
|
'is_filterable_in_search' => 0, |
|
|
'is_used_for_promo_rules' => 0, |
|
|
'is_html_allowed_on_front' => 1, |
|
|
'is_visible_on_front' => 0, |
|
|
'used_in_product_listing' => 0, |
|
|
'used_for_sort_by' => 0, |
|
|
'frontend_label' => array( |
|
|
0 => 'Test Configurable' |
|
|
), |
|
|
'option' => array( |
|
|
'value' => array( |
|
|
'option_0' => array(0 => 'Option 1'), |
|
|
'option_1' => array(0 => 'Option 2'), |
|
|
), |
|
|
'order' => array( |
|
|
'option_0' => 1, |
|
|
'option_1' => 2, |
|
|
) |
|
|
), |
|
|
'backend_type' => 'int', |
|
|
) |
|
|
); |
|
|
$attribute->save(); |
|
|
|
|
|
/* Assign attribute to attribute set */ |
|
|
$installer->addAttributeToGroup('catalog_product', 'Default', 'General', $attribute->getId()); |
|
|
} |
|
|
|
|
|
/* Create simple products per each option */ |
|
|
/** @var $options Mage_Eav_Model_Resource_Entity_Attribute_Option_Collection */ |
|
|
$options = Mage::getResourceModel('eav/entity_attribute_option_collection'); |
|
|
$options->setAttributeFilter($attribute->getId()); |
|
|
|
|
|
for ($i = 1; $i <= 2500; $i++) { |
|
|
$attributeValues = array(); |
|
|
$productsData = array(); |
|
|
foreach ($options as $option) { |
|
|
/** @var $product Mage_Catalog_Model_Product */ |
|
|
$product = Mage::getModel('catalog/product'); |
|
|
$product->setTypeId(Mage_Catalog_Model_Product_Type::TYPE_SIMPLE) |
|
|
->setId($i * 10000 + $option->getId() * 10) |
|
|
->setAttributeSetId($installer->getAttributeSetId('catalog_product', 'Default')) |
|
|
->setWebsiteIds(array(1)) |
|
|
->setName('Configurable Option' . $option->getId() . '-' . $i) |
|
|
->setSku('simple_'.$option->getId() . '_' . $i) |
|
|
->setPrice(10) |
|
|
->setTestConfigurable($option->getId()) |
|
|
->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE) |
|
|
->setStatus(Mage_Catalog_Model_Product_Status::STATUS_ENABLED) |
|
|
->setStockData( |
|
|
array( |
|
|
'use_config_manage_stock' => 1, |
|
|
'qty' => 100, |
|
|
'is_qty_decimal' => 0, |
|
|
'is_in_stock' => 1, |
|
|
) |
|
|
) |
|
|
->save(); |
|
|
|
|
|
$dataOption = array( |
|
|
'label' => 'test', |
|
|
'attribute_id' => $attribute->getId(), |
|
|
'value_index' => $option->getId(), |
|
|
'is_percent' => false, |
|
|
'pricing_value' => 5, |
|
|
); |
|
|
$productsData[$product->getId()] = array($dataOption); |
|
|
$attributeValues[] = $dataOption; |
|
|
} |
|
|
|
|
|
/** @var $product Mage_Catalog_Model_Product */ |
|
|
$product = Mage::getModel('catalog/product'); |
|
|
$product->setTypeId(Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) |
|
|
->setId($i) |
|
|
->setAttributeSetId($installer->getAttributeSetId('catalog_product', 'Default')) |
|
|
->setWebsiteIds(array(1)) |
|
|
->setName('Configurable Product') |
|
|
->setSku('configurable_' . $i) |
|
|
->setPrice(100) |
|
|
->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) |
|
|
->setStatus(Mage_Catalog_Model_Product_Status::STATUS_ENABLED) |
|
|
->setStockData( |
|
|
array( |
|
|
'use_config_manage_stock' => 1, |
|
|
'is_in_stock' => 1, |
|
|
) |
|
|
) |
|
|
->setConfigurableProductsData($productsData) |
|
|
->setConfigurableAttributesData( |
|
|
array( |
|
|
array( |
|
|
'attribute_id' => $attribute->getId(), |
|
|
'attribute_code'=> $attribute->getAttributeCode(), |
|
|
'frontend_label'=> 'test', |
|
|
'values' => $attributeValues, |
|
|
) |
|
|
) |
|
|
) |
|
|
->save(); |
|
|
|
|
|
echo '.'; |
|
|
if ($i % 100 == 0) { |
|
|
echo "\n$i\n"; |
|
|
} |
|
|
} |