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


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.