cancel
Showing results for 
Search instead for 
Did you mean: 

Configurable Product with associated individual product problem

Re: Configurable Product with associated individual product problem

Hi 

Please, specify what configurabe attributes have for your product 

Also let me know if I have understood you correctly. This URL that you have provided in the post above is to parent configurable product? Let me know the names of associated simple goods. 

Link simple products to configurable so we could have a look. 

-------Store Manager for Magento 1.x and 2.x - enhances the functionality of default admin web interface, speeds up inventory management, automates daily tasks.

Re: Configurable Product with associated individual product problem

Hi as said in my last post,

 

the extension as said in my last post was responsible for the same. So it is solved Smiley Happy Juhuuu Smiley Happy

 

Best

 

Ben

Re: Configurable Product with associated individual product problem

Nice post really useful Thetechdevils zbigz alternatives

Re: Configurable Product with associated individual product problem

Please find the below code to solve configurable product with associated individual product problem

 

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$productArr = [];

$tmpFilename = $_FILES["docname"]["tmp_name"];
$csv = new Varien_File_Csv();
$data = $csv->getData($tmpFilename);
$skuArr = array();
foreach ($data as $value) {
$skuArr[] = $value[0];
$attributeColorCode = 'color';
$attributeSizeCode = 'size';

// return function to getting the attribute color id

$attribute_details = Mage::getSingleton("eav/config")->getAttribute('catalog_product', $attributeColorCode);
$attribute = $attribute_details->getData();
$attribute_colorid = $attribute['attribute_id'];

// return function to getting the attribute size id

$attribute_details = Mage::getSingleton("eav/config")->getAttribute('catalog_product', $attributeSizeCode);
$attribute = $attribute_details->getData();
$attribute_sizeid = $attribute['attribute_id'];

$optionColorId = Mage::helper('bulkupload')->getOptionId($attributeColorCode,$value[15]);
$optionSizeId = Mage::helper('bulkupload')->getOptionId($attributeSizeCode,$value[16]);
$cat = Mage::helper('bulkupload')->getCategoryNameById($value[3]);
if($value[1]=='simple'){
$simpleProduct = Mage::getModel('catalog/product');
try {

$simpleProduct
->setWebsiteIds(array(1)) //website ID the product is assigned to, as an array
->setAttributeSetId($value[17]) //ID of a attribute set named 'default'
->setTypeId($value[1]) //product type
->setCreatedAt(strtotime('now')) //product creation time
->setSku($value[0]) //SKU
->setName($value[2]) //product name
->setWeight($value[6])
->setStatus(1) //product status (1 - enabled, 2 - disabled)
->setTaxClassId(0) //tax class (0 - none, 1 - default, 2 - taxable, 4 - shipping)
->setVisibility(1) //catalog and search visibility
->setColor($optionColorId)
->setSize($optionSizeId)
->setNewsFromDate('') //product set as new from
->setNewsToDate('') //product set as new to
->setPrice($value[7]) //price in form 11.22
->setSpecialPrice('') //special price in form 11.22
->setSpecialFromDate('') //special price from (MM-DD-YYYY)
->setSpecialToDate('') //special price to (MM-DD-YYYY)
->setMetaTitle($value[8])
->setMetaKeyword($value[10])
->setMetaDescription($value[9])
->setDescription($value[4])
->setShortDescription($value[5]);
if(!empty($value[14])){
$galleryData = explode(',',$value[14]);
$simpleProduct->setMediaGallery (array('images'=>array (), 'values'=>array ()));
foreach($galleryData as $gallery_img) {
if ($gallery_img){
$simpleProduct->addImageToMediaGallery($gallery_img, array ('image','small_image','thumbnail'), false, false);
}
else{
$err = 1;
Mage::getSingleton('core/session')->addError($this->__('Image Path of '.$value[0].' Not Exist !!!'));
}
}
}
$simpleProduct->setStockData(array(
'use_config_manage_stock' => 0, //'Use config settings' checkbox
'manage_stock' => 1, //manage stock
'min_sale_qty' => 1, //Minimum Qty Allowed in Shopping Cart
'max_sale_qty' => 2, //Maximum Qty Allowed in Shopping Cart
'is_in_stock' => 1, //Stock Availability
'qty' => $value[11] //qty
)
)
// $cat = $this->getCategoryNameById($value[3]);
->setCategoryIds($cat); //assign product to categories
$simpleProduct->save();

$productId = $simpleProduct->getId();

$simpleProductArr[] = $productId;

} catch (Exception $e) {
Mage::log($e->getMessage());
echo $e->getMessage();
}
}


/* Configurable Product Insert Section */

if(count($simpleProductArr)>0 && $value[1]=='configurable'){
$configProduct = Mage::getModel('catalog/product');
try {
$configProduct
// ->setStoreId(1) //you can set data in store scope
->setWebsiteIds(array(1)) //website ID the product is assigned to, as an array
->setAttributeSetId($value[17]) //ID of a attribute set named 'default'
->setTypeId($value[1]) //product type
->setCreatedAt(strtotime('now')) //product creation time
// ->setUpdatedAt(strtotime('now')) //product update time
->setSku($value[0]) //SKU
->setName($value[2]) //product name
->setWeight($value[6])
->setStatus(1) //product status (1 - enabled, 2 - disabled)
->setTaxClassId(0) //tax class (0 - none, 1 - default, 2 - taxable, 4 - shipping)
->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) //catalog and search visibility
//->setManufacturer(28) //manufacturer id
//->setColor($value[15])
//->setSize($value[16])
->setNewsFromDate('') //product set as new from
->setNewsToDate('') //product set as new to
->setPrice($value[7]) //price in form 11.22
->setSpecialPrice('') //special price in form 11.22
->setSpecialFromDate('') //special price from (MM-DD-YYYY)
->setSpecialToDate('') //special price to (MM-DD-YYYY)
->setMetaTitle($value[8])
->setMetaKeyword($value[10])
->setMetaDescription($value[9])
->setDescription($value[4])
->setShortDescription($value[5]);
if(!empty($value[14])){
$galleryData = explode(',',$value[14]);
$configProduct->setMediaGallery (array('images'=>array (), 'values'=>array ()));
foreach($galleryData as $gallery_img) {
if ($gallery_img){
$configProduct->addImageToMediaGallery($gallery_img, array ('image','small_image','thumbnail'), false, false);
}
else{
$err = 1;
Mage::getSingleton('core/session')->addError($this->__('Image Path of '.$value[0].' Not Exist !!!'));
//$this->_redirect('musbury/index/index/');
}
}
}
$configProduct->setStockData(array(
'use_config_manage_stock' => 0, //'Use config settings' checkbox
'manage_stock' => 1, //manage stock
'min_sale_qty' => 1, //Minimum Qty Allowed in Shopping Cart
'max_sale_qty' => 2, //Maximum Qty Allowed in Shopping Cart
'is_in_stock' => 1, //Stock Availability
'qty' => $value[11] //qty
)
)
// $cat = $this->getCategoryNameById($value[3]);
->setCategoryIds($cat); //assign product to categories

$simpleProducts = Mage::getResourceModel('catalog/product_collection')
->addIdFilter($simpleProductArr)
->addAttributeToSelect('color')
->addAttributeToSelect('size')
->addAttributeToSelect('price');
$configProduct->setCanSaveConfigurableAttributes(true);
$configProduct->setCanSaveCustomOptions(true);

$configProduct->getTypeInstance()->setUsedProductAttributeIds(array($attribute_colorid,$attribute_sizeid)); //attribute ID of attribute 'color' in my store
$configurableAttributesData = $configProduct->getTypeInstance()->getConfigurableAttributesAsArray();
$configProduct->setCanSaveConfigurableAttributes(true);
$configProduct->setConfigurableAttributesData($configurableAttributesData);
$configurableProductsData = array();

foreach ($simpleProducts as $simple) {
$productData = array(
'label' => $simple->getAttributeText('color'),
'attribute_id' => $attribute_colorid,
'value_index' => (int) $simple->getColor(),
'is_percent' => 0,
'pricing_value' => $simple->getPrice()
);

$configurableProductsData[$simple->getId()] = $productData;
$configurableAttributesData[0]['values'][] = $productData;

$productData = array(
'label' => $simple->getAttributeText('size'),
'attribute_id' => $attribute_sizeid,
'value_index' => (int) $simple->getSize(),
'is_percent' => 0,
'pricing_value' => $simple->getPrice()
);

$configurableProductsData[$simple->getId()] = $productData;
$configurableAttributesData[1]['values'][] = $productData;
}
$configProduct->setConfigurableProductsData($configurableProductsData);

$configProduct->setConfigurableAttributesData($configurableAttributesData);
$configProduct->setCanSaveConfigurableAttributes(true);



Mage::log($configurableProductsData, null, 'configurableProductsData.log', true);
Mage::log($configurableAttributesData, null, 'configurableAttributesData.log', true);

$configProduct->save();
$confId = $configProduct->getId();

// saving the configurable option attribute price value

if($configProduct->getId()!='') {
$configurable = Mage::getModel('catalog/product')->load($confId);

$simpleProducts = Mage::getResourceModel('catalog/product_collection')
->addIdFilter($simpleProductArr)
->addAttributeToSelect('color')
->addAttributeToSelect('size')
->addAttributeToSelect('price');

$configurableProductsData = array();
$configurableAttributesData = $configurable->getTypeInstance()->getConfigurableAttributesAsArray();

foreach ($simpleProducts as $simple) {
$productData = array(
'label' => $simple->getAttributeText('color'),
'attribute_id' => $attribute_colorid,
'value_index' => (int) $simple->getColor(),
'is_percent' => 0,
'pricing_value' => $simple->getPrice()
);

$configurableProductsData[$simple->getId()] = $productData;
$configurableAttributesData[0]['values'][] = $productData;

$productData = array(
'label' => $simple->getAttributeText('size'),
'attribute_id' => $attribute_sizeid,
'value_index' => (int) $simple->getSize(),
'is_percent' => 0,
'pricing_value' => $simple->getPrice()
);

$configurableProductsData[$simple->getId()] = $productData;
$configurableAttributesData[1]['values'][] = $productData;
}

$configurable->setConfigurableProductsData($configurableProductsData);
$configurable->setConfigurableAttributesData($configurableAttributesData);
$configurable->setCanSaveConfigurableAttributes(true);
Mage::log($configurableProductsData, null, 'configurableProductsData.log', true);
Mage::log($configurableAttributesData, null, 'configurableAttributesData.log', true);
$configurable->save();
$simpleProductArr = array();
echo "SKU:".$value[0].'&nbsp;added sucessfully'."<br />";
}
} catch (Exception $e) {
$simpleProductArr = array();
Mage::log($e->getMessage());
echo "SKU:".$value[0].'&nbsp;added unsucessfully'."<br />";
}

}
}
}

Re: Configurable Product with associated individual product problem

I have the same issue. When I change the configurable options in the drop down menu, it changes only price. But it doesn't change such as sku, description, additional info of associated simple products. It was worked well before. I think it happens after I upgraded magento into 1.9.2.2 . please help me about this issue.

 

thanks