Posts

마젠토 region 과 country 코드

마젠토에는 국가별 코드와 이름이 이미 데이터베이스에 기본적으로 저장되어있고, 미국같은 경우는 state 코드/이름 또한 저장되어있습니다.
간혹 개발자가 커스텀으로 모듈이나 템플릿을 만드는 도중 마젠토 데이터베이스에 저장되어있는 국가(country)나 state(region)을 불러내야 할 경우가 있는 있는데, 아마도 아래 코드가 도움이 되리라 생각됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// 국가의 콜렉션 로딩
$countryCollection = Mage::getModel('directory/country_api')->items();

// 위의 콜렉션을 select dropdown box에 넣어야 할 경우
?>
<select name="customer[country_id]" id="customer:country_id" class="validate-select" >
    <?php
    foreach($countryCollection as $country) :
    ?>
        <option value="<?php echo $country['country_id'] ?>" ><?php echo $country['name'] ?></option>
    <?php
    endforeach;
    ?>
</select>

국가의 콜렉션을 사용하려면 directory/country_api 모델을 사용해야 합니다.
마찬가지로 region 콜렉션을 사용하려면 아래와 같이 directory/region_api 모델을 사용해야 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// region 콜렉션 로딩
// $counotryCode 는 국가 코드
$regionCollection = Mage::getModel('directory/region_api')->items($countryCode);

// 위의 콜렉션을 select dropdown box에 넣어야 할 경우
?>
<select name="customer[region]" id="customer:region" class="validate-select" >
    <option>Please select region, state or province</option>
    <?php
    foreach($regionCollection as $region) :
    ?>
        <option value="<?php echo $region['name'] ?>" ><?php echo $region['name'] ?></option>
    <?php
    endforeach;
    ?>
</select>

국가 코드로 국가 이름 불러오기

1
2
3
<?php
$countryName = Mage::getModel('directory/country')->load($countryCode)->getName();
?>