확인란 유형의 사용자 정의 옵션이있는 일련의 제품이 있습니다. 그러나 제품 설정에서 특정 옵션의 기본 상태를 설정할 수 없습니다.
사용자가 제품 페이지를 입력하거나 카테고리 페이지에서 장바구니에 추가 할 때 기본적으로 하나 이상의 확인란 (옵션)을 선택해야합니다.
이것은 Magento 관리에서 가능합니까? 아니면 약간의 추가 개발이 필요합니까?
확인란 유형의 사용자 정의 옵션이있는 일련의 제품이 있습니다. 그러나 제품 설정에서 특정 옵션의 기본 상태를 설정할 수 없습니다.
사용자가 제품 페이지를 입력하거나 카테고리 페이지에서 장바구니에 추가 할 때 기본적으로 하나 이상의 확인란 (옵션)을 선택해야합니다.
이것은 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
null 일 수 있으므로 코드를 다음과 같이 변경하십시오.
if (is_array($values)){
foreach ($values as $value) {
$valuesArr[$value['option_type_id']]=$value['title'];
}
}
이제 작동합니다.
이제 몇 가지 검토.
마 젠토에서는 기본값이 아닙니다.
이 방법으로 달성 할 수 있습니다. 진행하기 전에 백업하는 것이 가장 좋습니다.
$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();