Revision: 65112
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at October 25, 2013 19:07 by chadanuk
Initial Code
Mage::getSingleton('core/session', array('name' => 'adminhtml'))->start(); $run_script = true; $delete = false; $admin_logged_in = Mage::getSingleton('admin/session', array('name' => 'adminhtml'))->isLoggedIn(); $admin_logged_in = (stristr(Mage::helper('core/url')->getCurrentUrl(), 'storeadmin') !== FALSE) ? $admin_logged_in : FALSE; // ..get back to the original. if($run_script && $admin_logged_in) { $wr = Mage::getSingleton('core/resource')->getConnection('core_write');; echo '<hr />Starting products script<hr />'; $ps = Mage::getModel('catalog/product')->getCollection()->load(); $count = 0; foreach ($ps as $p) { $ti = $p->getTypeID(); $ci = $p->getCategoryIds(); if($p->getTypeID() == 'configurable') { $a = Mage::getModel('eav/entity_attribute_set')->load($p->getAttributeSetId()); $attributeSetName = $a->getAttributeSetName(); Mage::getResourceModel('eav/entity_attribute_set_collection')->setEntityTypeFilter('configurable')->addFilter('attribute_set_name', $attributeSetName); $attributes = $p->getTypeInstance(true)->getSetAttributes($p);; foreach($attributes as $attribute) { if ($p->getTypeInstance(true)->canUseAttribute($attribute, $p)) { try { $s = "INSERT INTO wf_catalog_product_super_attribute (`product_id`, `attribute_id`) VALUES ('".$p->getId()."', '".$attribute['attribute_id']."')"; $wr->query($s); $lastInsertId = $wr->lastInsertId(); $s = "INSERT INTO wf_catalog_product_super_attribute_label (`product__super_attribute_id`, `value`) VALUES ('".$lastInsertId."', '".$attribute->getStoreLabel()."')"; $wr->query($s); echo $attribute->getStoreLabel().'associated to product '.$p->getName().'<br />' ; } catch (Exception $e) { } } } // Check all products for the name of the item $cfg_prs = Mage::getModel('catalog/product')->getCollection() ->addAttributeToFilter('type_id', 'simple') ->addAttributeToFilter('sku', array('like' => $p->getSku().'-%')); foreach ($cfg_prs as $_cp) { try { $s = "INSERT INTO wf_catalog_product_super_link (`parent_id`, `product_id`) VALUES ('".$p->getId()."', '".$_cp->getId()."')"; $wr->query($s); echo $_cp->getSku().' associated correctly<br />'; } catch (Exception $e) { } } } // Delete if($delete && empty($ci) && $p->getTypeID() == 'configurable') { $cps = $p->getUsedProducts(null, $product); foreach ($cps as $cp) { echo $cp->getName().' deleted<br />'; $cp->delete(); $count++; } echo $p->getName().' deleted<br />'; $p->delete(); $count++; } } echo '<hr />Finishing products script. '.$count.' product(s) deleted<hr />'; }
Initial URL
Initial Description
This will only run in the admin There are 2 booleans to implement the script: $run_script = true; $delete = false; If delete is true then products that are not within a category will be removed.
Initial Title
Magento - force associate simple products to configurables by sku and option to dewlete un-categorised products
Initial Tags
Initial Language
PHP