Thursday, May 17, 2012

magento Adding/removing values from a product custom option programmatically

it's my response in forum of magento
http://www.magentocommerce.com/boards/viewthread/265120/ 
<?php
$magePath 
'app/Mage.php';
require_once 
$magePath;
Varien_Profiler::enable(); Mage::setIsDeveloperMode(true); ini_set('display_errors'1);
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$product_ids = array(1,2,167);
$productmodel Mage::getModel('catalog/product');

foreach (
$product_ids as $product_id/**i use this two arrays for collecte value because i uses inside setData of
current option*/
$cos=array();$co=array();
$product $productmodel->load($product_id);
$options $product->getProductOptionsCollection();
if (isset(
$options)) foreach ($options as $o{
$title 
$o->getTitle();/**
this block is for changing information of specific option from collection options inside
current product
the save method for this option in end of code
*/
if ($title == "Line 1/Front"{
$o
->setProduct($product); $o->setTitle("Line 1/Ftont"); $o->setType("drop_down"); $o->setIsRequire(1);$o->setSortOrder(0);

}/**
this block for update or add information of specific value inside current option
*/
$optionType $o->getType(); //test typeif ($optionType == "drop_down"//getting collection of value related to current option$values $o->getValuesCollection(); $found false;
foreach (
$values as $k => $v//test existing of value for updateif (== preg_match("/said$/i"$v->getTitle())) //update and save$v->setTitle("morad")
->
setSku("kk")
->
setPriceType("fixed")
->
setSortOrder(0)
->
setPrice(floatval(13.0000));$v->setOption($o)->save();/**
this ligne is important i collecte all value required for normalize save function
related to current option
*/
$cos[]=$v->toArray($co);}
/**
create new value object you can use $option->getValueInstance() for working with
getSingleton
*/
$value Mage::getModel('catalog/product_option_value'); $value->setOption($o)
->
setTitle('valueiwant')
->
setSku("nn")
->
setPriceType("fixed")
->
setSortOrder(1)
->
setPrice(12)/**
this ligne is important (relation forigien key) for related this new value
to specific option
*/
->setOptionId($o->getId());$value->save();/**
this ligne is important i collecte all value required for normalize save function  
related to current option
*/
$cos[]=$value->toArray($co);}


$o
->setData("values",$cos)->save();//var_dump($cos);
}

}
}

Friday, February 24, 2012

magento path for tgz of extension already installed

you can find all tgz of all extensions already installed you can go to path

magento/downloader/.cache/community/

if you don't see .cache you must show the cached file