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


11

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

Мені потрібно хоча б одне з прапорців (опцій), щоб їх було встановлено за замовчуванням, коли користувач переходить на сторінку продукту / додає в кошик зі сторінки категорії.

Це можна зробити від адміністрації Magento чи це потребуватиме додаткової розробки (якщо так, як це можна зробити)?


Неможливо встановити "За замовчуванням" у розділі Каталог -> Керувати атрибутами -> "Ваш атрибут" -> Керувати міткою / Опціями -> прямо біля параметра за замовчуванням .... або якщо ви використовуєте Тип вводу "так / ні" ви можна встановити значення за замовчуванням у властивостях атрибутів
Стефан Грегорі

Насправді опції прямо зараз налаштовані "Спеціальні параметри" зі сторінки продукту в адміністраторі. Ваша пропозиція - перетворити це на атрибути продукту? Чи збереже вона таку саму поведінку за ціною товару?
Майк

Відповіді:


16

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

[EDIT]
У мене повернувся інтерес. Я протестував розширення на і воно (майже) працює.
Якщо ви будете використовувати його в режимі розробника, ви отримаєте деякі помилки. Ось що потрібно змінити, щоб воно працювало.
у /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. Кон . Він не працює для тексту, текстової області, дати, дати, часу, спеціальних параметрів файлу. Але при невеликій роботі це може бути змінено на правильну роботу для всіх типів (можливо, крім файлу).

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();

Це приємне пояснення того, як створити спеціальні параметри для продукту за кодом, але я не думаю, що це відповідає на питання. ОП запитав, як можна встановити значення за замовчуванням для користувацьких параметрів.
Маріус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.