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

magento.stackexchange https://magento.stackexchange.com/questions/12902

Вопрос

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

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

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

Это было полезно?

Решение

Я не знаю, рекомендует ли рекомендации удлинитель как действительный ответ (для вопроса с щедростью), но Кто -то утверждает здесь что он написал расширение, которое делает именно то, что вам нужно. Расширение может быть скачано отсюда. Анкет Я не тестировал это, но, как только я это сделаю, я опубликую и обновлю. Я только просмотрел код, и это много. Я потерял интерес после 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. Неврол. Анкет Вид работы для нескольких параметров SELECT и CHACEBOBE. Вы можете выбрать только одно значение для доступных значений.
  3. Неудобный Но я могу упустить это. Чтобы установить значения по умолчанию, вы должны нажать на другой пункт меню в бэкэнд и найти свой продукт в списке.
  4. Против. Анкет Это не работает для текста, текста, даты, даты, времени, пользовательских параметров. Но с небольшой работой это можно изменить на правильную работу для всех типов (возможно, кроме файла).

Другие советы

Не по умолчанию в 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();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top