단순 제품에 대한 기본 사용자 정의 옵션 상태


11

확인란 유형의 사용자 정의 옵션이있는 일련의 제품이 있습니다. 그러나 제품 설정에서 특정 옵션의 기본 상태를 설정할 수 없습니다.

사용자가 제품 페이지를 입력하거나 카테고리 페이지에서 장바구니에 추가 할 때 기본적으로 하나 이상의 확인란 (옵션)을 선택해야합니다.

이것은 Magento 관리에서 가능합니까? 아니면 약간의 추가 개발이 필요합니까?


카탈로그-> 속성 관리-> "속성"-> 레이블 / 옵션 관리-> 기본 옵션 바로 옆에 "기본값"을 설정하거나 입력 유형 "yes / no"를 사용하는 경우 속성 속성에서 기본값을 설정할 수 있습니다
— Stefan Gregori

실제로 현재 옵션은 관리자의 제품 페이지에서 "사용자 정의 옵션"으로 설정되어 있습니다. 당신의 제안은 그것을 제품 속성으로 바꾸는 것입니까? 제품 가격과 동일한 동작을 유지합니까?
— Mike

답변:


16

확장 프로그램을 추천하는 것이 유효한 답변인지 (바운티가있는 질문의 경우) 알지 못하지만 누군가가 여기 에서 필요한 것을 정확하게 수행하는 확장 프로그램을 작성 했다고 주장 합니다. 확장 프로그램은 여기에서 다운로드 할 수 있습니다 . 테스트하지는 않았지만 게시하자마자 게시하고 업데이트합니다. 나는 코드를 살펴 보았고 많은 것이 있습니다. 나는 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 null 일 수 있으므로 코드를 다음과 같이 변경하십시오.

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

이제 작동합니다.
이제 몇 가지 검토.

  1. 프로 . 드롭 다운 및 라디오 사용자 정의 옵션에 완벽하게 작동
  2. 신경 . 다중 선택 및 확인란 사용자 정의 옵션에 대한 작품. 사용 가능한 값으로 하나의 값만 선택할 수 있습니다.
  3. 불편 하지만 간과 할 수 있습니다. 기본값을 설정하려면 백엔드에서 다른 메뉴 항목을 클릭하고 목록에서 제품을 찾아야합니다.
  4. 사기 . 텍스트, 텍스트 영역, 날짜, 날짜 시간, 시간, 파일 사용자 정의 옵션에는 작동하지 않습니다. 그러나 약간의 작업으로 모든 유형 (파일 제외)에서 올바르게 작동하도록 변경할 수 있습니다.

1

마 젠토에서는 기본값이 아닙니다.

이 방법으로 달성 할 수 있습니다. 진행하기 전에 백업하는 것이 가장 좋습니다.

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

이것은 제품의 코드 사용자 정의 옵션으로 작성하는 방법에 대한 좋은 설명이지만 질문에 대답하지는 않습니다. OP는 사용자 지정 옵션의 기본값을 설정하는 방법을 물었습니다.
— Marius
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.