состояние по умолчанию пользовательской опции для простых продуктов

11

У меня есть серия продуктов с опциями типа флажок. Однако я не могу установить из настроек продукта состояние по умолчанию для этой конкретной опции.

Мне нужно, чтобы по крайней мере один из флажков (опций) был установлен по умолчанию, когда пользователь заходит на страницу товара / добавляет в корзину со страницы категории.

Это выполнимо от администрации Magento или потребуется дополнительная разработка (если да, то как это можно сделать)?

Майк
источник
Не можете просто установить «по умолчанию» в Каталоге -> Управление атрибутами -> «Ваши атрибуты» -> Управление меткой / опциями -> прямо рядом с вашей опцией по умолчанию .... или если вы используете тип ввода «да / нет», вы может установить значение по умолчанию в свойствах атрибута
Stefan Gregori
На самом деле параметры прямо сейчас настраиваются с помощью «Пользовательских параметров» на странице продукта в админке. Ваше предложение состоит в том, чтобы преобразовать это в атрибуты продукта? Сохранит ли он то же поведение в отношении цены продукта?
Майк

Ответы:

16

Я не знаю, считается ли рекомендация расширения верным ответом (для вопроса с вознаграждением), но здесь кто-то утверждает, что он написал расширение, которое делает именно то, что вам нужно. Расширение можно скачать здесь . Я не проверял это, но, как только я сделаю, я отправлю и обновлю. Я только просмотрел код и его много. Я потерял интерес после 2 файлов. Я надеюсь, что это работает для вас.

[РЕДАКТИРОВАТЬ]
Я вернул свой интерес. Я протестировал расширение на и оно (почти) работает.
Если вы используете его в режиме разработчика, вы получите некоторые ошибки. Вот что вам нужно изменить, чтобы оно заработало.
в /app/code/local/Magebuzz/Customoption/controllers/Adminhtml/CustomoptionController.phpстроке 28 есть это:

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

Это показывает предупреждение «неопределенный индекс». Чтобы избежать этого, оберните это в ifутверждение.

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

В /app/code/local/Magebuzz/Customoption/Block/Adminhtml/Customoption/Edit/Tab/Form.phpстроке 129 есть это:

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

$values может быть нулевым, поэтому измените код на это:

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

Теперь это должно работать.
Теперь немного обзора.

  1. PRO . Прекрасно работает с опциями выпадающего меню и радио
  2. Нервный . Вид работ для множественного выбора и флажок пользовательских параметров. Вы можете выбрать только одно значение для доступных значений.
  3. Неудобно, но я могу не заметить этого. чтобы установить значения по умолчанию, вам нужно щелкнуть другой пункт меню в серверной части и найти свой продукт в списке.
  4. Con . Он не работает для текста, текстовой области, даты, даты и времени, пользовательских параметров файла. Но если немного поработать, его можно изменить, чтобы он работал корректно для всех типов (возможно, кроме файлов).
Мариус
источник
1

Не по умолчанию в Magento.

Может быть достигнуто таким образом. Лучше взять обратно, прежде чем продолжить.

$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'
    )

); }

// Предположим, мы создаем новый продукт.

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

// Или если мы добавляем опции к уже созданному продукту.

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

// Не забудьте сохранить товар

$product->save();
Матрица Инфологикс
источник
Это хорошее объяснение того, как создавать с помощью кода пользовательские параметры для продукта, но я не думаю, что это отвечает на вопрос. ОП спросил, как вы можете установить значения по умолчанию для пользовательских параметров.
Мариус