Eu tenho apenas uma opção personalizada, que é o tipo de arquivo, tentei adicionar o produto ao carrinho de forma programática assim:
$logoSku = 'lg-brnd01';
$productLogo = Mage::getModel('catalog/product')->loadByAttribute('sku',$logoSku);
$logoOptions = $productLogo->getOptions();
$opts = Mage::getSingleton('catalog/product_option')->getProductOptionCollection($productLogo);
$i =0;
$cart = Mage::getModel('checkout/cart');
$cart->init();
$params = array(
'product' => $productLogo->getId(),
'qty' => 1,
'form_key' => Mage::getSingleton('core/session')->getFormKey(),
);
foreach ($opts->getData() as $data) {
$optionId = $data['option_id'];
$image = $paths[0]['name'];
$options = array(
$optionId => array(
'type' => $paths[0]['type'],
'title' => $image,
'quote_path' => DS.'media'.DS.'uploads'.DS.'logo-branding'.DS.$quote_id.DS.$image,
'order_path' => DS.'media'.DS.'uploads'.DS.'logo-branding'.DS.$quote_id.DS.$image,
'fullpath' => $path.$image,
'secret_key' => substr(md5(file_get_contents($path.$image)), 0, 20)),
);
$params['options_'.$optionId.'_file_action'] = 'save_new';
}
$params['options'] = $options;
print_r($params);
$request = new Varien_Object();
$request->setData($params);
try {
$cart->addProduct($productLogo->getId(), $request);
$cart->save();
$i++;
} catch (Exception $e) {
print_r($e->getMessage());
}
mas eu recebi um erro como este:
Especifique as opções necessárias do produto
Você pode registrar a exceção original em app / code / core / Mage / Catalog / Model / Product / Option / Type / File.php na linha 183 e publicá-la?
—
precisa saber é o seguinte