【问题标题】:magento 1.9 doesn't show "state" dropdown in checkoutmagento 1.9 在结帐时不显示“状态”下拉菜单
【发布时间】:2015-08-11 07:29:57
【问题描述】:

我正在运行 magento 1.9.2.0,并且我配置了配置选项以请求意大利的“州”,但是当我尝试购买时,实际上并不需要该州。

以下是一些截图:

对我来说,这看起来像是一个 magento 错误。我该如何解决?

【问题讨论】:

  • 我用一个示例 sql 插入脚本更新我的答案。

标签: php mysql magento


【解决方案1】:

您必须在数据库中填充directory_country_region 表。

你可以这样运行:

INSERT INTO 
  `directory_country_region` 
  (`region_id`, `country_id`, `code`, `default_name`) 
VALUES
  (NULL, 'IT', 'IT-52', 'Toscana'), // example with ISO_3166-2 REGION code
  ...
  (NULL, 'IT', 'IT-BO', 'Bologna'); // example with ISO_3166-2 PROVINCE code

小解释:

【讨论】:

  • 虽然理论上这可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。
  • 当然,你是对的。我只是将链接粘贴到答案中,以免使流混乱,但完整的响应始终是可取的。感谢您的意见。如果我今天有时间,我会尝试更新我的答案。
  • 嗨,我已经在 directory_country_region 表中有省份。唯一的区别是代码:我有“BO”而不是“IT-BO”。也许这就是原因?谢谢。
【解决方案2】:

使用来自 Nolweig 和外部来源的示例,我创建了导入所有意大利地区的脚本。

error_reporting(E_ALL);
ini_set('display_errors', '1');

require_once 'app/Mage.php';

umask(0);
Mage::app('');

// set up array containing regions to be added (region_code => region_name)
$new_regions = array(
   'AG' => 'Agrigento',
   'AL' => 'Alessandria',
   'AN' => 'Ancona',
   'AO' => 'Aosta',
   'AR' => 'Arezzo',
   'AP' => 'Ascoli Piceno',
   'AT' => 'Asti',
   'AV' => 'Avellino',
   'BA' => 'Bari',
   'BT' => 'Barletta-Andria-Trani',
   'BL' => 'Belluno',
   'BN' => 'Benevento',
   'BG' => 'Bergamo',
   'BI' => 'Biella',
   'BO' => 'Bologna',
   'BZ' => 'Bolzano',
   'BS' => 'Brescia',
   'BR' => 'Brindisi',
   'CA' => 'Cagliari',
   'CL' => 'Caltanissetta',
   'CB' => 'Campobasso',
   'CI' => 'Carbonia-Iglesias',
   'CE' => 'Caserta',
   'CT' => 'Catania',
   'CZ' => 'Catanzaro',
   'CH' => 'Chieti',
   'CO' => 'Como',
   'CS' => 'Cosenza',
   'CR' => 'Cremona',
   'KR' => 'Crotone',
   'CN' => 'Cuneo',
   'EN' => 'Enna',
   'FM' => 'Fermo',
   'FE' => 'Ferrara',
   'FI' => 'Firenze',
   'FG' => 'Foggia',
   'FC' => 'Forlì-Cesena',
   'FR' => 'Frosinone',
   'GE' => 'Genova',
   'GO' => 'Gorizia',
   'GR' => 'Grosseto',
   'IM' => 'Imperia',
   'IS' => 'Isernia',
   'SP' => 'La Spezia',
   'AQ' => 'L\'Aquila',
   'LT' => 'Latina',
   'LE' => 'Lecce',
   'LC' => 'Lecco',
   'LI' => 'Livorno',
   'LO' => 'Lodi',
   'LU' => 'Lucca',
   'MC' => 'Macerata',
   'MN' => 'Mantova',
   'MS' => 'Massa-Carrara',
   'MT' => 'Matera',
   'ME' => 'Messina',
   'MI' => 'Milano',
   'MO' => 'Modena',
   'MB' => 'Monza e della Brianza',
   'NA' => 'Napoli',
   'NO' => 'Novara',
   'NU' => 'Nuoro',
   'OT' => 'Olbia-Tempio',
   'OR' => 'Oristano',
   'PD' => 'Padova',
   'PA' => 'Palermo',
   'PR' => 'Parma',
   'PV' => 'Pavia',
   'PG' => 'Perugia',
   'PU' => 'Pesaro e Urbino',
   'PE' => 'Pescara',
   'PC' => 'Piacenza',
   'PI' => 'Pisa',
   'PT' => 'Pistoia',
   'PN' => 'Pordenone',
   'PZ' => 'Potenza',
   'PO' => 'Prato',
   'RG' => 'Ragusa',
   'RA' => 'Ravenna',
   'RC' => 'Reggio Calabria',
   'RE' => 'Reggio Emilia',
   'RI' => 'Rieti',
   'RN' => 'Rimini',
   'RM' => 'Roma',
   'RO' => 'Rovigo',
   'SA' => 'Salerno',
   'VS' => 'Medio Campidano',
   'SS' => 'Sassari',
   'SV' => 'Savona',
   'SI' => 'Siena',
   'SR' => 'Siracusa',
   'SO' => 'Sondrio',
   'TA' => 'Taranto',
   'TE' => 'Teramo',
   'TR' => 'Terni',
   'TO' => 'Torino',
   'OG' => 'Ogliastra',
   'TP' => 'Trapani',
   'TN' => 'Trento',
   'TV' => 'Treviso',
   'TS' => 'Trieste',
   'UD' => 'Udine',
   'VA' => 'Varese',
   'VE' => 'Venezia',
   'VB' => 'Verbano-Cusio-Ossola',
   'VC' => 'Vercelli',
   'VR' => 'Verona',
   'VV' => 'Vibo Valentia',
   'VI' => 'Vicenza',
   'VT' => 'Viterbo',
);

// specify country code for new regions
$country_code = 'IT';

// specify locale
$locale = 'it_IT';

// create our core_write conection object
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');

// iterate our new regions
foreach ($new_regions as $region_code => $region_name) {

    // insert region 
    $sql = "INSERT INTO `directory_country_region` (`region_id`,`country_id`,`code`,`default_name`) VALUES (NULL,?,?,?)";
    $connection->query($sql,array($country_code,$region_code,$region_name));

    // get new region id for next query
    $region_id = $connection->lastInsertId();

    // insert region name
    $sql = "INSERT INTO `directory_country_region_name` (`locale`,`region_id`,`name`) VALUES (?,?,?)";
    $connection->query($sql,array($locale,$region_id,$region_name));
}

echo 'Import finished';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多