Como definir uma opção personalizada do tipo “arquivo” ao adicionar um produto ao carrinho no Magento?
Usando meu próprio controlador, estou adicionando um produto ao carrinho Magento. Tem 3 opções personalizadas: 2 opções suspensas (cor e tamanho) e uma opção de arquivo (design). O código que adiciona o produto ao carrinho é
// obtain the shopping cart
$cart = Mage::getSingleton('checkout/cart');
// load the product
$product = Mage::getModel('catalog/product')
->load($productId);
// do some magic to obtain the select ids for color and size ($selectedSize and $selectedColor)
// ...
// define the buy request params
$params = array(
'product' => $productId,
'qty' => $quantity,
'options' => array(
$customOptionSize->getId() => $selectedSize,
$customOptionColor->getId() => $selectedColor,
// set the file option, but how?
),
);
// add this configuration to cart
$cart->addProduct($product, $paramObject);
$cart->save();
// set the cart as updated
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
A minha pergunta é: Como faço para anexar um determinado arquivo para a opção de design?
O arquivo já foi transferido para o lado do servidor (na verdade, por meio da solicitação). Eu poderia, no entanto, fazer o upload falso se isso fosse necessário. Mas até agora não encontrei uma única fonte de informações sobre a configuração de opções personalizadas de arquivos ...
Meu melhor palpite de um passeio pelas fontes do Magento, é que o pedido de compra precisa de alguns dados adicionais (não nas opções, mas no objeto params), como: option_123_file => alguma coisa, mas o que exatamente é necessário eu não descobri ainda. Esta parte das fontes de Magento é bastante, não tão direta. Obrigado por qualquer ajuda.