domyślny stan opcji niestandardowej dla prostych produktów

11

Mam serię produktów z niestandardowymi opcjami wyboru typu. Jednak nie mogę ustawić z konfiguracji produktu domyślnego stanu tej konkretnej opcji.

Potrzebuję domyślnie co najmniej jednego z pól wyboru (opcji), gdy użytkownik wchodzi na stronę produktu / dodaje do koszyka ze strony kategorii.

Czy jest to wykonalne przez administrację Magento, czy będzie wymagać dodatkowego rozwoju (jeśli tak, jak to zrobić)?

Mikrofon
źródło
Nie możesz ustawić „domyślny” w Katalogu -> Zarządzaj atrybutami -> „Twój atrybut” -> Zarządzaj etykietą / opcjami -> tuż obok domyślnej opcji .... lub jeśli używasz Typu wejściowego „tak / nie” może ustawić wartość domyślną w ramach właściwości atrybutu
Stefan Gregori
W rzeczywistości opcje są teraz skonfigurowane za pomocą opcji „Niestandardowe” na stronie produktu w admin. Sugerujesz, aby przekształcić to w atrybuty produktu? Czy zachowałoby to samo zachowanie dla ceny produktu?
Mike

Odpowiedzi:

16

Nie wiem, czy zalecenie rozszerzenia liczy się jako poprawna odpowiedź (na pytanie z nagrodą), ale ktoś twierdzi , że napisał rozszerzenie, które robi dokładnie to, czego potrzebujesz. Rozszerzenie można pobrać stąd . Nie testowałem tego, ale jak tylko to zrobię, opublikuję i zaktualizuję. Przejrzałem tylko kod i jest go dużo. Straciłem zainteresowanie po 2 plikach. Mam nadzieję, że to zadziała dla ciebie.

[EDYCJA]
Z powrotem moje zainteresowanie. Testowałem rozszerzenie na i (prawie) działa.
Jeśli użyjesz go w trybie programisty, pojawi się kilka błędów. Oto, co musisz zmienić, aby działało.
w /app/code/local/Magebuzz/Customoption/controllers/Adminhtml/CustomoptionController.phplinii 28 jest to:

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

To pokazuje ostrzeżenie „niezdefiniowany indeks”. Aby tego uniknąć, zawiń go w ifinstrukcji.

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

W /app/code/local/Magebuzz/Customoption/Block/Adminhtml/Customoption/Edit/Tab/Form.phplinii 129 jest to:

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

$values może być pusty, więc zmień kod na ten:

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

Teraz powinno działać.
Teraz trochę recenzji.

  1. PRO . Działa idealnie w przypadku niestandardowych opcji rozwijanych i radiowych
  2. Neurtal . Rodzaj prac dla wielu niestandardowych opcji wyboru i zaznaczania. Możesz wybrać tylko jedną wartość dla dostępnych wartości.
  3. Niewygodne, ale mogę to przeoczyć. aby ustawić wartości domyślne, musisz kliknąć inny element menu w backendu i poszukać swojego produktu na liście.
  4. Con . Nie działa dla opcji niestandardowych dla tekstu, obszaru tekstowego, daty, godziny i godziny, godziny oraz niestandardowych plików. Ale przy odrobinie pracy można to zmienić, aby działało poprawnie dla wszystkich typów (może poza plikiem).
Marius
źródło
1

Nie jest domyślny w Magento.

Można to osiągnąć w ten sposób. Najlepiej wycofać się przed kontynuowaniem.

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

); }

// Załóżmy, że tworzymy nowy produkt.

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

// Lub jeśli dodajemy opcje do już utworzonego produktu.

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

// Nie zapomnij zapisać produktu

$product->save();
Matrix Infologics
źródło
To dobre wyjaśnienie, w jaki sposób tworzyć niestandardowe opcje dla kodu dla produktu, ale nie sądzę, że odpowiada na pytanie. OP zapytał, jak ustawić wartości domyślne dla opcji niestandardowych.
Marius