trạng thái tùy chọn mặc định cho các sản phẩm đơn giản


11

Tôi có một loạt các sản phẩm với các tùy chọn loại hộp kiểm. Tuy nhiên tôi không thể đặt từ thiết lập của sản phẩm trạng thái mặc định của tùy chọn cụ thể đó.

Tôi cần ít nhất một trong các hộp kiểm (tùy chọn) được kiểm tra theo mặc định khi người dùng vào trang sản phẩm / thêm vào giỏ hàng từ trang danh mục.

Đây có phải là điều có thể thực hiện được từ chính quyền Magento hay nó sẽ yêu cầu phát triển thêm (nếu vậy làm thế nào điều này có thể được thực hiện)?


Bạn không thể đặt "mặc định" trong Danh mục -> Quản lý thuộc tính -> "Thuộc tính của bạn" -> Quản lý nhãn / Tùy chọn -> ngay bên cạnh tùy chọn mặc định của bạn .... hoặc nếu bạn sử dụng Kiểu nhập "có / không" bạn có thể đặt giá trị mặc định theo thuộc tính thuộc tính
Stefan Gregori

Trên thực tế, các tùy chọn ngay bây giờ được thiết lập với "Tùy chọn tùy chỉnh" từ trang sản phẩm trong quản trị viên. Gợi ý của bạn là biến nó thành thuộc tính sản phẩm? Nó sẽ giữ hành vi tương tự cho giá sản phẩm?
Mike

Câu trả lời:


16

Tôi không biết nếu đề xuất tiện ích mở rộng được tính là một câu trả lời hợp lệ (đối với câu hỏi có tiền thưởng) nhưng ai đó tuyên bố ở đây rằng anh ta đã viết một tiện ích mở rộng chính xác những gì bạn cần. Tiện ích mở rộng có thể được tải xuống từ đây . Tôi đã không kiểm tra nó, nhưng ngay sau khi tôi làm, tôi sẽ đăng và cập nhật. Tôi chỉ xem qua mã và có rất nhiều. Tôi mất hứng sau 2 tập tin. Tôi hy vọng nó làm việc cho bạn.

[EDIT]
Tôi đã lấy lại được sự quan tâm của mình. Tôi đã thử nghiệm phần mở rộng trên và nó (gần như) hoạt động.
Nếu bạn sử dụng nó với chế độ nhà phát triển, bạn sẽ gặp một số lỗi. Đây là những gì bạn cần thay đổi để làm cho nó hoạt động.
trong /app/code/local/Magebuzz/Customoption/controllers/Adminhtml/CustomoptionController.phpdòng 28 có cái này:

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

Điều này cho thấy cảnh báo 'chỉ mục không xác định'. Để tránh nó, bọc nó trong một iftuyên bố.

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

Trong /app/code/local/Magebuzz/Customoption/Block/Adminhtml/Customoption/Edit/Tab/Form.phpdòng 129 có cái này:

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

$values có thể là null nên thay đổi mã thành này:

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

Bây giờ nó sẽ làm việc.
Bây giờ một số xem xét.

  1. CHUYÊN NGHIỆP . Hoạt động hoàn hảo cho các tùy chọn thả xuống và tùy chỉnh radio
  2. Thần kinh . Loại công việc cho nhiều tùy chọn tùy chọn và hộp kiểm. Bạn chỉ có thể chọn một giá trị cho các giá trị khả dụng.
  3. Bất tiện nhưng tôi có thể bỏ qua. để đặt các giá trị mặc định, bạn phải nhấp vào một mục menu khác trong phần phụ trợ và tìm sản phẩm của bạn trong danh sách.
  4. Con . Nó không hoạt động cho các tùy chọn tùy chỉnh văn bản, textarea, ngày, datetime, time, file. Nhưng với một công việc nhỏ, nó có thể được thay đổi để hoạt động chính xác cho tất cả các loại (có thể ngoại trừ tệp).

1

Không mặc định trong Magento.

Có thể đạt được theo cách này. Tốt nhất để lấy lại trước khi tiến hành.

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

); }

// Giả sử chúng ta đang tạo ra một sản phẩm mới.

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

// Hoặc nếu chúng ta đang thêm các tùy chọn cho một sản phẩm đã được tạo.

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

// Đừng quên lưu sản phẩm

$product->save();

Đây là một lời giải thích hay về cách tạo bằng các tùy chọn tùy chỉnh mã cho sản phẩm, nhưng tôi không nghĩ nó trả lời câu hỏi. OP hỏi làm thế nào bạn có thể đặt giá trị mặc định cho các tùy chọn tùy chỉnh.
Marius
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.