function getCMSFields()
{
$fields = parent::getCMSFields();
$fieldList = array("Country" => "Country", "State" => "State", "City" => "City", "PostalCode" => "PostCode", "WeightMin" => "WeightMin", "WeightMax" => "WeightMax", "VolumeMin" => "VolumeMin", "VolumeMax" => "VolumeMax", "ValueMin" => "ValueMin", "ValueMax" => "ValueMax", "QuantityMin" => "QuantityMin", "QuantityMax" => "QuantityMax", "Rate" => "Rate");
$fieldTypes = array_merge(RegionRestriction::get_table_field_types(), array("WeightMin" => "TextField", "WeightMax" => "TextField", "VolumeMin" => "TextField", "VolumeMax" => "TextField", "ValueMin" => "TextField", "ValueMax" => "TextField", "QuantityMin" => "TextField", "QuantityMax" => "TextField", "Rate" => "TextField"));
$fields->fieldByName('Root')->removeByName("Rates");
if ($this->isInDB()) {
$tablefield = new TableField("Rates", "TableShippingRate", $fieldList, $fieldTypes);
$tablefield->setCustomSourceItems($this->Rates());
$fields->addFieldToTab("Root.Main", $tablefield);
}
return $fields;
}