Tôi đã thực hiện một số lượng khá lớn về thử nghiệm, thử nghiệm và lỗi nhưng tôi không thể tìm ra giải pháp cho vấn đề này.
- Khả năng thay đổi các trường và thứ tự của sales_order_grid; và
- Khả năng hiển thị hai trường tùy chỉnh trên lưới này (có thể lọc).
Cái trước (điểm 1) đã được giải quyết, bằng cách mở rộng Mage_Adminhtml_Block_Widget_Grid
mô-đun tùy chỉnh của tôi (tôi biết về người quan sát, nhưng các mô-đun được cài đặt khác đã ghi đè các thay đổi của tôi với người quan sát của họ).
Bất kể, sau này là vấn đề hiện tại của tôi, dưới đây là hai phương pháp đã làm tôi thất bại cho đến nay.
Phương pháp 1
<?php
/* @var $this Mage_Sales_Model_Mysql4_Setup */
$this->startSetup();
$connection = $this->getConnection();
/**
* Create the payment method dropdown field, because this field _may_ be
* used for searching we will create an index for it.
*/
$connection->addColumn(
$this->getTable('sales/order_grid'),
'x_payment_method',
"ENUM('PayPal', 'SagePay') DEFAULT NULL"
);
$connection->addKey($this->getTable('sales/order_grid'), 'x_payment_type', 'x_payment_type');
/**
* Create the order channel field to identify where the order was originally
* generated from. Also add an index for this field for additional filtering.
*/
$connection->addColumn(
$this->getTable('sales/order_grid'),
'x_sale_channel',
"ENUM('Amazon', 'Play', 'eBay', 'Website') NOT NULL DEFAULT 'Website'"
);
$connection->addKey($this->getTable('sales/order_grid'), 'x_sale_channel','x_sale_channel');
$this->endSetup();
Cách 2
Đến lúc này tôi cảm thấy mệt mỏi khi đọc cùng 7 bài viết không có ích, vì vậy tôi đã cố gắng để MỘT lĩnh vực hoạt động; Tôi cũng đã kiểm tra nhật ký lỗi trong Magento và thấy "$ this-> getTable ()" bị lỗi, do đó tôi đã xóa nó.
<?php
/* @var $this Mage_Sales_Model_Mysql4_Setup */
$this->startSetup();
$connection = $this->getConnection();
/**
* Create the payment method dropdown field, because this field _may_ be
* used for searching we will create an index for it.
*/
$this->addAttribute('sales_flat_order', 'x_test_option', array(
'label' => 'X Test Option',
'type' => 'varchar',
'input' => 'select',
'visible' => true,
'required' => false,
'position' => 1,
'visible_on_front' => false,
'option' => array('value' => array('web', 'test 1', 'test 2')),
'default' => array('web'),
));
$this->endSetup();
Điều này khiến người ta phải đặt câu hỏi, sự khác biệt giữa cột và thuộc tính là gì? Giả định ban đầu của tôi là, một cột được thêm vào bảng lõi hiện có trong khi một thuộc tính được thêm vào các bảng EAV_ * và có liên quan phù hợp.