Состояние пользовательской опции по умолчанию для простых продуктов
-
16-10-2019 - |
Вопрос
У меня есть серия продуктов с пользовательскими параметрами типа флажок. Однако я не могу установить из настройки продукта состояние по умолчанию этой конкретной опции.
Мне нужно, по крайней мере, один из флажков (параметров), чтобы проверить по умолчанию, когда пользователь входит на страницу продукта / добавляет на корзину со страницы категории.
Это выполнимо от администрации Magento или потребуется дополнительная разработка (если да, как это можно сделать)?
Решение
Я не знаю, рекомендует ли рекомендации удлинитель как действительный ответ (для вопроса с щедростью), но Кто -то утверждает здесь что он написал расширение, которое делает именно то, что вам нужно. Расширение может быть скачано отсюда. Анкет Я не тестировал это, но, как только я это сделаю, я опубликую и обновлю. Я только просмотрел код, и это много. Я потерял интерес после 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'];
}
}
Теперь это должно работать.
Теперь какой -то обзор.
- Профиль. Анкет Отлично работает для выпадающих и радиомользовательских опций
- Неврол. Анкет Вид работы для нескольких параметров SELECT и CHACEBOBE. Вы можете выбрать только одно значение для доступных значений.
- Неудобный Но я могу упустить это. Чтобы установить значения по умолчанию, вы должны нажать на другой пункт меню в бэкэнд и найти свой продукт в списке.
- Против. Анкет Это не работает для текста, текста, даты, даты, времени, пользовательских параметров. Но с небольшой работой это можно изменить на правильную работу для всех типов (возможно, кроме файла).
Другие советы
Не по умолчанию в 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();