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


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

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

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

Author: sv3n, 2014-01-09

2 answers

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

[ РЕДАКТИРОВАТЬ]
У меня есть свой интерес назад. Я протестировал расширение на ce-1.7.0.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. ПРО. Отлично работает для выпадающего списка и пользовательских опций радио
  2. Нейротал. Вид работает для нескольких пользовательских параметров выбора и флажков. Вы можете выбрать только одно значение из доступных значений.
  3. Неудобно но я могу не обращать на это внимания. чтобы установить значения по умолчанию, вам нужно нажать на другой пункт меню в бэкэнде и найти свой продукт в списке.
  4. Кон. Это не работает для текста, текстовой области, даты, времени, времени, пользовательских параметров файла. Но с небольшой работой его можно изменить, чтобы он работал правильно для всех типов (возможно, кроме файла).
 16
Author: Marius, 2014-01-17 08:16:45

Не используется по умолчанию в 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();
 1
Author: Matrix Infologics, 2014-01-22 06:28:43