magento 添加 custom options

$products = Mage::getModel('catalog/product')->getCollection(); 
foreach($products as $_product){ //这里可以添加一些条件判断 
    $product = Mage::getModel('catalog/product')->load($_product->getId()); 
    $sku = $product->getSku(); 
    $options = array(); 
    $options[$sku] = array( 'title' => 'Rush Order', 'type' => 'radio', 'is_require' => 0, 'sort_order' => 15, 'values' => array() ); 
    $options[$sku]['values'][] = array( 'title' => '25 working days', 'price' => 10.00, 'price_type' => 'fixed', 'sku' => '', 'sort_order' => '0' ); 
    foreach($options as $s => $o) { 
        $product->getOptionInstance()->unsetOptions();//产品之间互不影响 
        if(!$product->getOptionsReadonly()) { 
            $product->setProductOptions(array($o)); 
            $product->setCanSaveCustomOptions(true); 
            $product->save(); 
        } 
    } 
}

other method

<?php 
require_once 'app/Mage.php';
Mage::app('default');
 
$productIds = array(180);

$option = array(
        'title' => 'Test Option',
        'type' => 'file',
        'is_require' => 1,
        'price' => 10,
        'price_type' => 'fixed',
        'sku' => 'testsku',
        'file_extension' => 'png,jpg',
        'image_size_x' => '100',
        'image_size_y' => '200'
)
/*
The available properties are as follows:
title – the option’s label;
type – option type, possible values:
field – simple input text,
area – multiline text area,
file – file with an upload form in the front-end,
drop_down – drop-down list with predefined values,
radio – a set of radio buttons,
checkbox – multiple selectable checkbox options,
multiselect – list of multiple selectable options,
date – date input field,
date_time – date and time combined,
time – time only;
is_require – a flag indicating if the option is required, 1 or 0;
price – price surcharge for the option;
price_type – type of the option surcharge, fixed or percent (of the product’s price);
sku – SKU for the option.
Some of the properties are type-dependent, e.g., a “file” option also has:
file_extension – a string of comma-separated file extensions that are accepted by the option; if empty any extension except “exe” and “php” is allowed;
image_size_x and image_size_y – image dimension limits in pixels;
An option of type “field” can have the following property:
max_characters – maximum allowed number of characters.
*/
foreach ($productIds as $productId) {
        $product = Mage::getModel('catalog/product')->load($productId);
        $optionInstance = $product->getOptionInstance()->unsetOptions();
 
        $product->setHasOptions(1);
        if (isset($option['is_require']) && ($option['is_require'] == 1)) {
                $product->setRequiredOptions(1);
        }
        $optionInstance->addOption($option);
        $optionInstance->setProduct($product);
        $product->save();
 
}


你可能感兴趣的:(Magento)