estado padrão da opção personalizada para produtos simples

11

Eu tenho uma série de produtos com opções personalizadas do tipo caixa de seleção. No entanto, não posso definir na configuração do produto o estado padrão dessa opção específica.

Preciso que pelo menos uma das caixas de seleção (opções) seja marcada por padrão à medida que o usuário entra na página do produto / adiciona ao carrinho da página de categoria.

Isso é possível pela administração do Magento ou exigirá algum desenvolvimento extra (se sim, como isso pode ser feito)?

Mike
fonte
Você não pode simplesmente definir "é padrão" em Catálogo -> Gerenciar atributos -> "Seu atributo" -> Gerenciar rótulo / opções -> ao lado de sua opção padrão .... ou se você usar o Tipo de entrada "sim / não", você pode definir o valor padrão em propriedades de atributos
Stefan Gregori
Atualmente, as opções estão configuradas com "Opções personalizadas" na página do produto em admin. Sua sugestão é transformar isso em atributos do produto? Manteria o mesmo comportamento pelo preço do produto?
Mike

Respostas:

16

Não sei se recomendar uma extensão conta como uma resposta válida (para uma pergunta com uma recompensa), mas alguém afirma aqui que ele escreveu uma extensão que faz exatamente o que você precisa. A extensão pode ser baixada aqui . Não testei, mas, assim que o fizer, publicarei e atualizarei. Eu só olhei o código e há muito disso. Perdi o interesse depois de 2 arquivos. Espero que funcione para você.

[EDIT]
Tenho meu interesse de volta. Testei a extensão no e (quase) funciona.
Se você usá-lo com o modo de desenvolvedor, você receberá alguns erros. Aqui está o que você precisa alterar para fazê-lo funcionar.
na /app/code/local/Magebuzz/Customoption/controllers/Adminhtml/CustomoptionController.phplinha 28 existe o seguinte:

$model->setData('value['.$option_id.']',$value[0]['option_type_id']);

Isso mostra um aviso de 'índice indefinido'. Para evitá-lo, envolva-o em uma ifdeclaração.

if (isset($value[0])){
    $model->setData('value['.$option_id.']',$value[0]['option_type_id']);
}

Na /app/code/local/Magebuzz/Customoption/Block/Adminhtml/Customoption/Edit/Tab/Form.phplinha 129, existe o seguinte:

foreach ($values as $value) {
    $valuesArr[$value['option_type_id']]=$value['title'];
}

$values pode ser nulo; portanto, altere o código para isso:

if (is_array($values)){
    foreach ($values as $value) {
        $valuesArr[$value['option_type_id']]=$value['title'];
    }
}

Agora deve funcionar.
Agora alguma revisão.

  1. PRO . Funciona perfeitamente para opções personalizadas suspensas e de rádio
  2. Neurtal . Tipo de trabalho para várias opções personalizadas de seleção e caixa de seleção. Você pode selecionar apenas um valor para os valores disponíveis.
  3. Inconveniente, mas posso ignorar. para definir os valores padrão, você deve clicar em outro item de menu no back-end e procurar seu produto na lista.
  4. Con . Ele não funciona para opções personalizadas de texto, área de texto, data, data e hora, hora e arquivo. Mas, com um pouco de trabalho, ele pode ser alterado para funcionar corretamente para todos os tipos (talvez exceto arquivo).
Marius
fonte
1

Não é o padrão no Magento.

Pode ser alcançado dessa maneira. Melhor retomar antes de prosseguir.

$option = array(
    'title' => 'Your custom option title',  
    'type' => 'checkbox', // could be drop_down ,radio , multiple
    'is_require' => 1,
    'sort_order' => 0,
    'values' => getOptions()
    );

function getOptions(){
  return array(
     array(
       'title' => 'Option Value 1',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 1',
       'sort_order' => '1'
    ),
    array(
       'title' => 'Option Value 2',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 2',
       'sort_order' => '1'
    ),
  array(
       'title' => 'Option Value 3',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 3',
       'sort_order' => '1'
    )

); }

// Suponha que estamos criando um novo produto.

$product = Mage::getModel('catalog/product');
$product->setProductOptions(array($option));
$product->setCanSaveCustomOptions(true);

// Ou se estamos adicionando as opções a um produto já criado.

$product = Mage::getModel('catalog/product')->load($id);
$product->setProductOptions(array($option));
$product->setCanSaveCustomOptions(true);

// Não se esqueça de salvar o produto

$product->save();
Matrix Infologics
fonte
Esta é uma boa explicação sobre como criar opções personalizadas por código para um produto, mas acho que não responde à pergunta. O OP perguntou como você pode definir valores padrão para opções personalizadas.
Marius