From a0305e202eebf3d900a2d869fca021c764d533cf Mon Sep 17 00:00:00 2001 From: Alex Lushpai Date: Wed, 1 Jul 2015 18:16:58 +0300 Subject: [PATCH] ordersHistory (partial) --- .../System/Config/Form/Fieldset/Shipping.php | 1 + .../Retailcrm/Retailcrm/Model/Exchange.php | 242 +- .../Retailcrm/Retailcrm/Model/Observer.php | 6 +- .../Retailcrm/Retailcrm/etc/country.xml | 2774 +++++++++++++++++ 4 files changed, 3014 insertions(+), 9 deletions(-) create mode 100644 app/code/community/Retailcrm/Retailcrm/etc/country.xml diff --git a/app/code/community/Retailcrm/Retailcrm/Block/Adminhtml/System/Config/Form/Fieldset/Shipping.php b/app/code/community/Retailcrm/Retailcrm/Block/Adminhtml/System/Config/Form/Fieldset/Shipping.php index d0f0c8b..d6c7858 100644 --- a/app/code/community/Retailcrm/Retailcrm/Block/Adminhtml/System/Config/Form/Fieldset/Shipping.php +++ b/app/code/community/Retailcrm/Retailcrm/Block/Adminhtml/System/Config/Form/Fieldset/Shipping.php @@ -3,6 +3,7 @@ class Retailcrm_Retailcrm_Block_Adminhtml_System_Config_Form_Fieldset_Shipping e { public function render(Varien_Data_Form_Element_Abstract $element) { + Mage::getModel( "retailcrm/exchange" )->ordersHistory(); $html = $this->_getHeaderHtml($element); if(!empty($this->_apiUrl) && !empty($this->_apiKey) && $this->_isCredentialCorrect) { diff --git a/app/code/community/Retailcrm/Retailcrm/Model/Exchange.php b/app/code/community/Retailcrm/Retailcrm/Model/Exchange.php index 3939b85..e7963e0 100644 --- a/app/code/community/Retailcrm/Retailcrm/Model/Exchange.php +++ b/app/code/community/Retailcrm/Retailcrm/Model/Exchange.php @@ -163,9 +163,9 @@ class Retailcrm_Retailcrm_Model_Exchange private function processOrders($orders, $time) { if(!empty($orders)) { - /*Mage::getModel('core/config')->saveConfig( + Mage::getModel('core/config')->saveConfig( 'retailcrm/general/history', $time - );*/ + ); foreach ($orders as $order) { if(!empty($order['externalId'])) { @@ -174,6 +174,7 @@ class Retailcrm_Retailcrm_Model_Exchange $this->doCreate($order); } } + die(); } } @@ -182,15 +183,224 @@ class Retailcrm_Retailcrm_Model_Exchange */ private function doCreate($order) { + try { + $response = $this->_api->ordersGet($order['id'], $by = 'id'); + if ( + $response->isSuccessful() + && + 200 === $response->getStatusCode() + ) { + $order = $response->order; + } else { + Mage::log( + sprintf( + "Orders get error: [HTTP status %s] %s", + $response->getStatusCode(), + $response->getErrorMsg() + ) + ); + + if (isset($response['errors'])) { + Mage::log(implode(' :: ', $response['errors'])); + } + } + } catch (Retailcrm_Retailcrm_Model_Exception_CurlException $e) { + Mage::log($e->getMessage()); + } + + // get references $this->_config = Mage::getStoreConfig('retailcrm'); - $statuses = array_flip(array_filter($this->_config['status'])); - $paymentsStatuses = array_filter($this->_config['paymentstatus']); $payments = array_flip(array_filter($this->_config['payment'])); $shippings = array_flip(array_filter($this->_config['shipping'])); - // create new order & fix externalId + // get store + $_store = Mage::getModel("core/store")->load($order['site']); + $_siteId = Mage::getModel('core/store')->load($_store->getId())->getWebsiteId(); + $_sendConfirmation = '0'; - Mage::log("Create: ", null, 'history.log'); + // search or create customer + $customer = Mage::getSingleton('customer/customer'); + $customer->setWebsiteId($_siteId); + $customer->loadByEmail($order['email']); + + if (!is_numeric($customer->getId())) { + $customer + ->setGropuId(1) + ->setWebsiteId($_siteId) + ->setStore($_store) + ->setEmail($order['email']) + ->setFirstname($order['firstName']) + ->setLastname($order['lastName']) + ->setMiddleName($order['patronymic']) + ->setPassword(uniqid()) + ; + + try { + $customer->save(); + $customer->setConfirmation(null); + $customer->save(); + } catch (Exception $e) { + Mage::log($e->getMessage()); + } + + $address = Mage::getModel("customer/address"); + $address->setCustomerId($customer->getId()) + ->setFirstname($customer->getFirstname()) + ->setMiddleName($customer->getMiddlename()) + ->setLastname($customer->getLastname()) + ->setCountryId($this->getCountryCode($order['customer']['address']['country'])) + ->setPostcode($order['delivery']['address']['index']) + ->setCity($order['delivery']['address']['city']) + ->setTelephone($order['phone']) + ->setStreet($order['delivery']['address']['street']) + ->setIsDefaultBilling('1') + ->setIsDefaultShipping('1') + ->setSaveInAddressBook('1'); + + try{ + $address->save(); + } + catch (Exception $e) { + Mage::log($e->getMessage()); + } + + try { + $response = $this->_api->customersFixExternalIds( + array( + 'id' => $order['customer']['id'], + 'externalId' => $customer->getId() + ) + ); + if ( + !$response->isSuccessful() + || + 200 !== $response->getStatusCode() + ) { + Mage::log( + sprintf( + "Orders fix error: [HTTP status %s] %s", + $response->getStatusCode(), + $response->getErrorMsg() + ) + ); + + if (isset($response['errors'])) { + Mage::log(implode(' :: ', $response['errors'])); + } + } + } catch (Retailcrm_Retailcrm_Model_Exception_CurlException $e) { + Mage::log($e->getMessage()); + } + + } + + $products = array(); + foreach ($order['items'] as $item) { + $products[$item['offer']['externalId']] = array('qty' => $item['quantity']); + } + + $orderData = array( + 'session' => array( + 'customer_id' => $customer->getId(), + 'store_id' => $_store->getId(), + ), + 'payment' => array( + 'method' => $payments[$order['paymentType']], + ), + 'add_products' => $products, + 'order' => array( + 'account' => array( + 'group_id' => $customer->getGroupId(), + 'email' => $order['email'] + ), + 'billing_address' => array( + 'firstname' => $order['firstName'], + 'middlename' => $order['patronymic'], + 'lastname' => $order['lastName'], + 'street' => $order['customer']['address']['street'], + 'city' => $order['customer']['address']['city'], + 'country_id' => $this->getCountryCode($order['customer']['address']['country']), + 'region' => $order['customer']['address']['region'], + 'postcode' => $order['customer']['address']['index'], + 'telephone' => $order['phone'], + ), + 'shipping_address' => array( + 'firstname' => $order['firstName'], + 'middlename' => $order['patronymic'], + 'lastname' => $order['lastName'], + 'street' => $order['delivery']['address']['street'], + 'city' => $order['delivery']['address']['city'], + 'country_id' => $this->getCountryCode($order['customer']['address']['country']), + 'region' => $order['delivery']['address']['region'], + 'postcode' => $order['delivery']['address']['index'], + 'telephone' => $order['phone'], + ), + 'shipping_method' => $shippings[$order['delivery']['code']], + 'comment' => array( + 'customer_note' => $order['customerComment'], + ), + 'send_confirmation' => $_sendConfirmation + ) + ); + + Mage::unregister('sales_order_place_after'); + Mage::register('sales_order_place_after', 1); + + $quote = Mage::getModel('sales/quote')->setStoreId($_store->getId()); + $quote->assignCustomer($customer); + $quote->setSendCconfirmation($_sendConfirmation); + + foreach($_products as $idx => $val) { + $product = Mage::getModel('catalog/product')->load($idx); + $quote->addProduct($product, new Varien_Object($val)); + } + + $quote->getBillingAddress()->addData($orderData['order']['billing_address']); + + $shippingAddress = $quote->getShippingAddress()->addData($orderData['order']['shipping_address']); + $shippingAddress + ->collectTotals() + ->setCollectShippingRates(true) + ->collectShippingRates() + ->setShippingMethod($orderData['order']['shipping_method']) + ->setpaymentMethod($orderData['payment']['method']) + ; + + $quote->getPayment()->importData($orderData['payment']); + $quote->setTotalsCollectedFlag(false)->collectTotals()->save(); + + $service = Mage::getModel('sales/service_quote', $quote); + $service->submitAll(); + + try { + $response = $this->_api->ordersFixExternalIds( + array( + 'id' => $order['id'], + 'externalId' => $service->getOrder()->getId() + ) + ); + if ( + !$response->isSuccessful() + || + 200 !== $response->getStatusCode() + ) { + Mage::log( + sprintf( + "Orders fix error: [HTTP status %s] %s", + $response->getStatusCode(), + $response->getErrorMsg() + ) + ); + + if (isset($response['errors'])) { + Mage::log(implode(' :: ', $response['errors'])); + } + } + } catch (Retailcrm_Retailcrm_Model_Exception_CurlException $e) { + Mage::log($e->getMessage()); + } + + Mage::log("Create: " . $order['externalId'], null, 'history.log'); } /** @@ -235,7 +445,7 @@ class Retailcrm_Retailcrm_Model_Exchange } if (in_array($group, array('cancel'))) { - $magentoOrder->cancel(); + $magentoOrder->setState(Mage_Sales_Model_Order::STATE_CANCELED, true); $magentoOrder->save(); } @@ -371,4 +581,22 @@ class Retailcrm_Retailcrm_Model_Exchange return $datetime; } + + private function getCountryCode($string) + { + $country = empty($string) ? 'RU' : $string; + $xmlObj = new Varien_Simplexml_Config(Mage::getModuleDir('etc', 'Retailcrm_Retailcrm').DS.'country.xml'); + $xmlData = $xmlObj->getNode(); + + if ($country != 'RU') { + foreach ($xmlData as $elem) { + if ($elem->name == $country || $elem->english == $country) { + $country = $elem->alpha2; + break; + } + } + } + + return (string) $country; + } } diff --git a/app/code/community/Retailcrm/Retailcrm/Model/Observer.php b/app/code/community/Retailcrm/Retailcrm/Model/Observer.php index 1592aa9..b81819e 100644 --- a/app/code/community/Retailcrm/Retailcrm/Model/Observer.php +++ b/app/code/community/Retailcrm/Retailcrm/Model/Observer.php @@ -14,8 +14,10 @@ class Retailcrm_Retailcrm_Model_Observer */ public function orderCreate(Varien_Event_Observer $observer) { - $order = $observer->getEvent()->getOrder(); - Mage::getModel('retailcrm/exchange')->ordersCreate($order); + if (Mage::registry('sales_order_place_after') != 1){//do nothing if the event was dispatched + $order = $observer->getEvent()->getOrder(); + Mage::getModel('retailcrm/exchange')->ordersCreate($order); + } return true; } diff --git a/app/code/community/Retailcrm/Retailcrm/etc/country.xml b/app/code/community/Retailcrm/Retailcrm/etc/country.xml new file mode 100644 index 0000000..f2e14a5 --- /dev/null +++ b/app/code/community/Retailcrm/Retailcrm/etc/country.xml @@ -0,0 +1,2774 @@ + + + + Абхазия + Республика Абхазия + Abkhazia + AB + ABH + 895 + Азия + Закавказье + + + + Австралия + + Australia + AU + AUS + 036 + Океания + Австралия и Новая Зеландия + + + + Австрия + Австрийская Республика + Austria + AT + AUT + 040 + Европа + Западная Европа + + + + Азербайджан + Республика Азербайджан + Azerbaijan + AZ + AZE + 031 + Азия + Западная Азия + + + + Албания + Республика Албания + Albania + AL + ALB + 008 + Европа + Южная Европа + + + + Алжир + Алжирская Народная Демократическая Республика + Algeria + DZ + DZA + 012 + Африка + Северная Африка + + + + Американское Самоа + + American Samoa + AS + ASM + 016 + Океания + Полинезия + + + + Ангилья + + Anguilla + AI + AIA + 660 + Америка + Карибский бассейн + + + + Ангола + Республика Ангола + Angola + AO + AGO + 024 + Африка + Центральная Африка + + + + Андорра + Княжество Андорра + Andorra + AD + AND + 020 + Европа + Южная Европа + + + + Антарктида + + Antarctica + AQ + ATA + 010 + Антарктика + + + + + Антигуа и Барбуда + + Antigua and Barbuda + AG + ATG + 028 + Америка + Карибский бассейн + + + + Аргентина + Аргентинская Республика + Argentina + AR + ARG + 032 + Америка + Южная Америка + + + + Армения + Республика Армения + Armenia + AM + ARM + 051 + Азия + Западная Азия + + + + Аруба + + Aruba + AW + ABW + 533 + Америка + Карибский бассейн + + + + Афганистан + Переходное Исламское Государство Афганистан + Afghanistan + AF + AFG + 004 + Азия + Южная часть Центральной Азии + + + + Багамы + Содружество Багамы + Bahamas + BS + BHS + 044 + Америка + Карибский бассейн + + + + Бангладеш + Народная Республика Бангладеш + Bangladesh + BD + BGD + 050 + Азия + Южная часть Центральной Азии + + + + Барбадос + + Barbados + BB + BRB + 052 + Америка + Карибский бассейн + + + + Бахрейн + Королевство Бахрейн + Bahrain + BH + BHR + 048 + Азия + Западная Азия + + + + Беларусь + Республика Беларусь + Belarus + BY + BLR + 112 + Европа + Восточная Европа + + + + Белиз + + Belize + BZ + BLZ + 084 + Америка + Карибский бассейн + + + + Бельгия + Королевство Бельгии + Belgium + BE + BEL + 056 + Европа + Западная Европа + + + + Бенин + Республика Бенин + Benin + BJ + BEN + 204 + Африка + Западная Африка + + + + Бермуды + + Bermuda + BM + BMU + 060 + Америка + Северная Америка + + + + Болгария + Республика Болгария + Bulgaria + BG + BGR + 100 + Европа + Восточная Европа + + + + Боливия, Многонациональное Государство + Многонациональное Государство Боливия + Bolivia, plurinational state of + BO + BOL + 068 + Америка + Южная Америка + + + + Бонайре, Саба и Синт-Эстатиус + + Bonaire, Sint Eustatius and Saba + BQ + BES + 535 + Америка + Карибский бассейн + + + + Босния и Герцеговина + + Bosnia and Herzegovina + BA + BIH + 070 + Европа + Южная Европа + + + + Ботсвана + Республика Ботсвана + Botswana + BW + BWA + 072 + Африка + Южная часть Африки + + + + Бразилия + Федеративная Республика Бразилия + Brazil + BR + BRA + 076 + Америка + Южная Америка + + + + Британская территория в Индийском океане + + British Indian Ocean Territory + IO + IOT + 086 + Океания + Индийский океан + + + + Бруней-Даруссалам + + Brunei Darussalam + BN + BRN + 096 + Азия + Юго-Восточная Азия + + + + Буркина-Фасо + + Burkina Faso + BF + BFA + 854 + Африка + Западная Африка + + + + Бурунди + Республика Бурунди + Burundi + BI + BDI + 108 + Африка + Восточная Африка + + + + Бутан + Королевство Бутан + Bhutan + BT + BTN + 064 + Азия + Южная часть Центральной Азии + + + + Вануату + Республика Вануату + Vanuatu + VU + VUT + 548 + Океания + Меланезия + + + + Венгрия + Венгерская Республика + Hungary + HU + HUN + 348 + Европа + Восточная Европа + + + + Венесуэла Боливарианская Республика + Боливарийская Республика Венесуэла + Venezuela + VE + VEN + 862 + Америка + Южная Америка + + + + Виргинские острова, Британские + Британские Виргинские острова + Virgin Islands, British + VG + VGB + 092 + Америка + Карибский бассейн + + + + Виргинские острова, США + Виргинские острова Соединенных Штатов + Virgin Islands, U.S. + VI + VIR + 850 + Америка + Карибский бассейн + + + + Вьетнам + Социалистическая Республика Вьетнам + Vietnam + VN + VNM + 704 + Азия + Юго-Восточная Азия + + + + Габон + Габонская Республика + Gabon + GA + GAB + 266 + Африка + Центральная Африка + + + + Гаити + Республика Гаити + Haiti + HT + HTI + 332 + Америка + Карибский бассейн + + + + Гайана + Республика Гайана + Guyana + GY + GUY + 328 + Америка + Южная Америка + + + + Гамбия + Республика Гамбия + Gambia + GM + GMB + 270 + Африка + Западная Африка + + + + Гана + Республика Гана + Ghana + GH + GHA + 288 + Африка + Западная Африка + + + + Гваделупа + + Guadeloupe + GP + GLP + 312 + Америка + Карибский бассейн + + + + Гватемала + Республика Гватемала + Guatemala + GT + GTM + 320 + Америка + Центральная Америка + + + + Гвинея + Гвинейская Республика + Guinea + GN + GIN + 324 + Африка + Западная Африка + + + + Гвинея-Бисау + Республика Гвинея-Бисау + Guinea-Bissau + GW + GNB + 624 + Африка + Западная Африка + + + + Германия + Федеративная Республика Германия + Germany + DE + DEU + 276 + Европа + Западная Европа + + + + Гернси + + Guernsey + GG + GGY + 831 + Европа + Северная Европа + + + + Гибралтар + + Gibraltar + GI + GIB + 292 + Европа + Южная Европа + + + + Гондурас + Республика Гондурас + Honduras + HN + HND + 340 + Америка + Центральная Америка + + + + Гонконг + Специальный административный регион Китая Гонконг + Hong Kong + HK + HKG + 344 + Азия + Восточная Азия + + + + Гренада + + Grenada + GD + GRD + 308 + Америка + Карибский бассейн + + + + Гренландия + + Greenland + GL + GRL + 304 + Америка + Северная Америка + + + + Греция + Греческая Республика + Greece + GR + GRC + 300 + Европа + Южная Европа + + + + Грузия + + Georgia + GE + GEO + 268 + Азия + Западная Азия + + + + Гуам + + Guam + GU + GUM + 316 + Океания + Микронезия + + + + Дания + Королевство Дания + Denmark + DK + DNK + 208 + Европа + Северная Европа + + + + Джерси + + Jersey + JE + JEY + 832 + Европа + Северная Европа + + + + Джибути + Республика Джибути + Djibouti + DJ + DJI + 262 + Африка + Восточная Африка + + + + Доминика + Содружество Доминики + Dominica + DM + DMA + 212 + Америка + Карибский бассейн + + + + Доминиканская Республика + + Dominican Republic + DO + DOM + 214 + Америка + Карибский бассейн + + + + Египет + Арабская Республика Египет + Egypt + EG + EGY + 818 + Африка + Северная Африка + + + + Замбия + Республика Замбия + Zambia + ZM + ZMB + 894 + Африка + Восточная Африка + + + + Западная Сахара + + Western Sahara + EH + ESH + 732 + Африка + Северная Африка + + + + Зимбабве + Республика Зимбабве + Zimbabwe + ZW + ZWE + 716 + Африка + Восточная Африка + + + + Израиль + Государство Израиль + Israel + IL + ISR + 376 + Азия + Западная Азия + + + + Индия + Республика Индия + India + IN + IND + 356 + Азия + Южная часть Центральной Азии + + + + Индонезия + Республика Индонезия + Indonesia + ID + IDN + 360 + Азия + Юго-Восточная Азия + + + + Иордания + Иорданское Хашимитское Королевство + Jordan + JO + JOR + 400 + Азия + Западная Азия + + + + Ирак + Республика Ирак + Iraq + IQ + IRQ + 368 + Азия + Западная Азия + + + + Иран, Исламская Республика + Исламская Республика Иран + Iran, Islamic Republic of + IR + IRN + 364 + Азия + Южная часть Центральной Азии + + + + Ирландия + + Ireland + IE + IRL + 372 + Европа + Северная Европа + + + + Исландия + Республика Исландия + Iceland + IS + ISL + 352 + Европа + Северная Европа + + + + Испания + Королевство Испания + Spain + ES + ESP + 724 + Европа + Южная Европа + + + + Италия + Итальянская Республика + Italy + IT + ITA + 380 + Европа + Южная Европа + + + + Йемен + Йеменская Республика + Yemen + YE + YEM + 887 + Азия + Западная Азия + + + + Кабо-Верде + Республика Кабо-Верде + Cape Verde + CV + CPV + 132 + Африка + Западная Африка + + + + Казахстан + Республика Казахстан + Kazakhstan + KZ + KAZ + 398 + Азия + Южная часть Центральной Азии + + + + Камбоджа + Королевство Камбоджа + Cambodia + KH + KHM + 116 + Азия + Юго-Восточная Азия + + + + Камерун + Республика Камерун + Cameroon + CM + CMR + 120 + Африка + Центральная Африка + + + + Канада + + Canada + CA + CAN + 124 + Америка + Северная Америка + + + + Катар + Государство Катар + Qatar + QA + QAT + 634 + Азия + Западная Азия + + + + Кения + Республика Кения + Kenya + KE + KEN + 404 + Африка + Восточная Африка + + + + Кипр + Республика Кипр + Cyprus + CY + CYP + 196 + Азия + Западная Азия + + + + Киргизия + Киргизская Республика + Kyrgyzstan + KG + KGZ + 417 + Азия + Южная часть Центральной Азии + + + + Кирибати + Республика Кирибати + Kiribati + KI + KIR + 296 + Океания + Микронезия + + + + Китай + Китайская Народная Республика + China + CN + CHN + 156 + Азия + Восточная Азия + + + + Кокосовые (Килинг) острова + + Cocos (Keeling) Islands + CC + CCK + 166 + Океания + Индийский океан + + + + Колумбия + Республика Колумбия + Colombia + CO + COL + 170 + Америка + Южная Америка + + + + Коморы + Союз Коморы + Comoros + KM + COM + 174 + Африка + Восточная Африка + + + + Конго + Республика Конго + Congo + CG + COG + 178 + Африка + Центральная Африка + + + + Конго, Демократическая Республика + Демократическая Республика Конго + Congo, Democratic Republic of the + CD + COD + 180 + Африка + Центральная Африка + + + + Корея, Народно-Демократическая Республика + Корейская Народно-Демократическая Республика + Korea, Democratic People's republic of + KP + PRK + 408 + Азия + Восточная Азия + + + + Корея, Республика + Республика Корея + Korea, Republic of + KR + KOR + 410 + Азия + Восточная Азия + + + + Коста-Рика + Республика Коста-Рика + Costa Rica + CR + CRI + 188 + Америка + Центральная Америка + + + + Кот д'Ивуар + Республика Кот д'Ивуар + Cote d'Ivoire + CI + CIV + 384 + Африка + Западная Африка + + + + Куба + Республика Куба + Cuba + CU + CUB + 192 + Америка + Карибский бассейн + + + + Кувейт + Государство Кувейт + Kuwait + KW + KWT + 414 + Азия + Западная Азия + + + + Кюрасао + + Curaçao + CW + CUW + 531 + Америка + Карибский бассейн + + + + Лаос + Лаосская Народно-Демократическая Республика + Lao People's Democratic Republic + LA + LAO + 418 + Азия + Юго-Восточная Азия + + + + Латвия + Латвийская Республика + Latvia + LV + LVA + 428 + Европа + Северная Европа + + + + Лесото + Королевство Лесото + Lesotho + LS + LSO + 426 + Африка + Южная часть Африки + + + + Ливан + Ливанская Республика + Lebanon + LB + LBN + 422 + Азия + Западная Азия + + + + Ливийская Арабская Джамахирия + Социалистическая Народная Ливийская Арабская Джамахирия + Libyan Arab Jamahiriya + LY + LBY + 434 + Африка + Северная Африка + + + + Либерия + Республика Либерия + Liberia + LR + LBR + 430 + Африка + Западная Африка + + + + Лихтенштейн + Княжество Лихтенштейн + Liechtenstein + LI + LIE + 438 + Европа + Западная Европа + + + + Литва + Литовская Республика + Lithuania + LT + LTU + 440 + Европа + Северная Европа + + + + Люксембург + Великое Герцогство Люксембург + Luxembourg + LU + LUX + 442 + Европа + Западная Европа + + + + Маврикий + Республика Маврикий + Mauritius + MU + MUS + 480 + Африка + Восточная Африка + + + + Мавритания + Исламская Республика Мавритания + Mauritania + MR + MRT + 478 + Африка + Западная Африка + + + + Мадагаскар + Республика Мадагаскар + Madagascar + MG + MDG + 450 + Африка + Восточная Африка + + + + Майотта + + Mayotte + YT + MYT + 175 + Африка + Южная часть Африки + + + + Макао + Специальный административный регион Китая Макао + Macao + MO + MAC + 446 + Азия + Восточная Азия + + + + Малави + Республика Малави + Malawi + MW + MWI + 454 + Африка + Восточная Африка + + + + Малайзия + + Malaysia + MY + MYS + 458 + Азия + Юго-Восточная Азия + + + + Мали + Республика Мали + Mali + ML + MLI + 466 + Африка + Западная Африка + + + + Малые Тихоокеанские отдаленные острова Соединенных Штатов + + United States Minor Outlying Islands + UM + UMI + 581 + Океания + Индийский океан + + + + Мальдивы + Мальдивская Республика + Maldives + MV + MDV + 462 + Азия + Южная часть Центральной Азии + + + + Мальта + Республика Мальта + Malta + MT + MLT + 470 + Европа + Южная Европа + + + + Марокко + Королевство Марокко + Morocco + MA + MAR + 504 + Африка + Северная Африка + + + + Мартиника + + Martinique + MQ + MTQ + 474 + Америка + Карибский бассейн + + + + Маршалловы острова + Республика Маршалловы острова + Marshall Islands + MH + MHL + 584 + Океания + Микронезия + + + + Мексика + Мексиканские Соединенные Штаты + Mexico + MX + MEX + 484 + Америка + Центральная Америка + + + + Микронезия, Федеративные Штаты + Федеративные штаты Микронезии + Micronesia, Federated States of + FM + FSM + 583 + Океания + Микронезия + + + + Мозамбик + Республика Мозамбик + Mozambique + MZ + MOZ + 508 + Африка + Восточная Африка + + + + Молдова, Республика + Республика Молдова + Moldova + MD + MDA + 498 + Европа + Восточная Европа + + + + Монако + Княжество Монако + Monaco + MC + MCO + 492 + Европа + Западная Европа + + + + Монголия + + Mongolia + MN + MNG + 496 + Азия + Восточная Азия + + + + Монтсеррат + + Montserrat + MS + MSR + 500 + Америка + Карибский бассейн + + + + Мьянма + Союз Мьянма + Myanmar + MM + MMR + 104 + Азия + Юго-Восточная Азия + + + + Намибия + Республика Намибия + Namibia + NA + NAM + 516 + Африка + Южная часть Африки + + + + Науру + Республика Науру + Nauru + NR + NRU + 520 + Океания + Микронезия + + + + Непал + Федеративная Демократическая Республика Непал + Nepal + NP + NPL + 524 + Азия + Южная часть Центральной Азии + + + + Нигер + Республика Нигер + Niger + NE + NER + 562 + Африка + Западная Африка + + + + Нигерия + Федеративная Республика Нигерия + Nigeria + NG + NGA + 566 + Африка + Западная Африка + + + + Нидерланды + Королевство Нидерландов + Netherlands + NL + NLD + 528 + Европа + Западная Европа + + + + Никарагуа + Республика Никарагуа + Nicaragua + NI + NIC + 558 + Америка + Центральная Америка + + + + Ниуэ + Республика Ниуэ + Niue + NU + NIU + 570 + Океания + Полинезия + + + + Новая Зеландия + + New Zealand + NZ + NZL + 554 + Океания + Австралия и Новая Зеландия + + + + Новая Каледония + + New Caledonia + NC + NCL + 540 + Океания + Меланезия + + + + Норвегия + Королевство Норвегия + Norway + NO + NOR + 578 + Европа + Северная Европа + + + + Объединенные Арабские Эмираты + + United Arab Emirates + AE + ARE + 784 + Азия + Западная Азия + + + + Оман + Султанат Оман + Oman + OM + OMN + 512 + Азия + Западная Азия + + + + Остров Буве + + Bouvet Island + BV + BVT + 074 + + Южный океан + + + + Остров Мэн + + Isle of Man + IM + IMN + 833 + Европа + Северная Европа + + + + Остров Норфолк + + Norfolk Island + NF + NFK + 574 + Океания + Австралия и Новая Зеландия + + + + Остров Рождества + + Christmas Island + CX + CXR + 162 + Азия + Индийский океан + + + + Остров Херд и острова Макдональд + + Heard Island and McDonald Islands + HM + HMD + 334 + + Индийский океан + + + + Острова Кайман + + Cayman Islands + KY + CYM + 136 + Америка + Карибский бассейн + + + + Острова Кука + + Cook Islands + CK + COK + 184 + Океания + Полинезия + + + + Острова Теркс и Кайкос + + Turks and Caicos Islands + TC + TCA + 796 + Америка + Карибский бассейн + + + + Пакистан + Исламская Республика Пакистан + Pakistan + PK + PAK + 586 + Азия + Южная часть Центральной Азии + + + + Палау + Республика Палау + Palau + PW + PLW + 585 + Океания + Микронезия + + + + Палестинская территория, оккупированная + Оккупированная Палестинская территория + Palestinian Territory, Occupied + PS + PSE + 275 + Азия + Западная Азия + + + + Панама + Республика Панама + Panama + PA + PAN + 591 + Америка + Центральная Америка + + + + Папский Престол (Государство — город Ватикан) + + Holy See (Vatican City State) + VA + VAT + 336 + Европа + Южная Европа + + + + Папуа-Новая Гвинея + + Papua New Guinea + PG + PNG + 598 + Океания + Меланезия + + + + Парагвай + Республика Парагвай + Paraguay + PY + PRY + 600 + Америка + Южная Америка + + + + Перу + Республика Перу + Peru + PE + PER + 604 + Америка + Южная Америка + + + + Питкерн + + Pitcairn + PN + PCN + 612 + Океания + Полинезия + + + + Польша + Республика Польша + Poland + PL + POL + 616 + Европа + Восточная Европа + + + + Португалия + Португальская Республика + Portugal + PT + PRT + 620 + Европа + Южная Европа + + + + Пуэрто-Рико + + Puerto Rico + PR + PRI + 630 + Америка + Карибский бассейн + + + + Республика Македония + + Macedonia, The Former Yugoslav Republic Of + MK + MKD + 807 + Европа + Южная Европа + + + + Реюньон + + Reunion + RE + REU + 638 + Африка + Восточная Африка + + + + Россия + Российская Федерация + Russian Federation + RU + RUS + 643 + Европа + Восточная Европа + + + + Руанда + Руандийская Республика + Rwanda + RW + RWA + 646 + Африка + Восточная Африка + + + + Румыния + + Romania + RO + ROU + 642 + Европа + Восточная Европа + + + + + + Самоа + Независимое Государство Самоа + Samoa + WS + WSM + 882 + Океания + Полинезия + + + + Сан-Марино + Республика Сан-Марино + San Marino + SM + SMR + 674 + Европа + Южная Европа + + + + Сан-Томе и Принсипи + Демократическая Республика Сан-Томе и Принсипи + Sao Tome and Principe + ST + STP + 678 + Африка + Центральная Африка + + + + Саудовская Аравия + Королевство Саудовская Аравия + Saudi Arabia + SA + SAU + 682 + Азия + Западная Азия + + + + Свазиленд + Королевство Свазиленд + Swaziland + SZ + SWZ + 748 + Африка + Южная часть Африки + + + + Святая Елена, Остров вознесения, Тристан-да-Кунья + + Saint Helena, Ascension And Tristan Da Cunha + SH + SHN + 654 + Африка + Западная Африка + + + + Северные Марианские острова + Содружество Северных Марианских островов + Northern Mariana Islands + MP + MNP + 580 + Океания + Микронезия + + + + Сен-Бартельми + + Saint Barthélemy + BL + BLM + 652 + Америка + Карибский бассейн + + + + Сен-Мартен + + Saint Martin (French Part) + MF + MAF + 663 + Америка + Карибский бассейн + + + + Сенегал + Республика Сенегал + Senegal + SN + SEN + 686 + Африка + Западная Африка + + + + Сент-Винсент и Гренадины + + Saint Vincent and the Grenadines + VC + VCT + 670 + Америка + Карибский бассейн + + + + Сент-Люсия + + Saint Lucia + LC + LCA + 662 + Америка + Карибский бассейн + + + + Сент-Китс и Невис + + Saint Kitts and Nevis + KN + KNA + 659 + Америка + Карибский бассейн + + + + Сент-Пьер и Микелон + + Saint Pierre and Miquelon + PM + SPM + 666 + Америка + Северная Америка + + + + Сербия + Республика Сербия + Serbia + RS + SRB + 688 + Европа + Южная Европа + + + + Сейшелы + Республика Сейшелы + Seychelles + SC + SYC + 690 + Африка + Восточная Африка + + + + Сингапур + Республика Сингапур + Singapore + SG + SGP + 702 + Азия + Юго-Восточная Азия + + + + Синт-Мартен + + Sint Maarten + SX + SXM + 534 + Америка + Карибский бассейн + + + + Сирийская Арабская Республика + + Syrian Arab Republic + SY + SYR + 760 + Азия + Западная Азия + + + + Словакия + Словацкая Республика + Slovakia + SK + SVK + 703 + Европа + Восточная Европа + + + + Словения + Республика Словения + Slovenia + SI + SVN + 705 + Европа + Южная Европа + + + + Соединенное Королевство + Соединенное Королевство Великобритании и Северной Ирландии + United Kingdom + GB + GBR + 826 + Европа + Северная Европа + + + + Соединенные Штаты + Соединенные Штаты Америки + United States + US + USA + 840 + Америка + Северная Америка + + + + Соломоновы острова + + Solomon Islands + SB + SLB + 090 + Океания + Меланезия + + + + Сомали + Сомалийская Республика + Somalia + SO + SOM + 706 + Африка + Восточная Африка + + + + Судан + Республика Судан + Sudan + SD + SDN + 736 + Африка + Северная Африка + + + + Суринам + Республика Суринам + Suriname + SR + SUR + 740 + Америка + Южная Америка + + + + Сьерра-Леоне + Республика Сьерра-Леоне + Sierra Leone + SL + SLE + 694 + Африка + Западная Африка + + + + + + + + + + + + Таджикистан + Республика Таджикистан + Tajikistan + TJ + TJK + 762 + Азия + Южная часть Центральной Азии + + + + Таиланд + Королевство Таиланд + Thailand + TH + THA + 764 + Азия + Юго-Восточная Азия + + + + Тайвань (Китай) + + Taiwan, Province of China + TW + TWN + 158 + Азия + Восточная Азия + + + + Танзания, Объединенная Республика + Объединенная Республика Танзания + Tanzania, United Republic Of + TZ + TZA + 834 + Африка + Восточная Африка + + + + Тимор-Лесте + Демократическая Республика Тимор-Лесте + Timor-Leste + TL + TLS + 626 + Азия + Юго-Восточная Азия + + + + Того + Тоголезская Республика + Togo + TG + TGO + 768 + Африка + Западная Африка + + + + Токелау + + Tokelau + TK + TKL + 772 + Океания + Полинезия + + + + Тонга + Королевство Тонга + Tonga + TO + TON + 776 + Океания + Полинезия + + + + Тринидад и Тобаго + Республика Тринидад и Тобаго + Trinidad and Tobago + TT + TTO + 780 + Америка + Карибский бассейн + + + + Тувалу + + Tuvalu + TV + TUV + 798 + Океания + Полинезия + + + + Тунис + Тунисская Республика + Tunisia + TN + TUN + 788 + Африка + Северная Африка + + + + Туркмения + Туркменистан + Turkmenistan + TM + TKM + 795 + Азия + Южная часть Центральной Азии + + + + Турция + Турецкая Республика + Turkey + TR + TUR + 792 + Азия + Западная Азия + + + + Уганда + Республика Уганда + Uganda + UG + UGA + 800 + Африка + Восточная Африка + + + + Узбекистан + Республика Узбекистан + Uzbekistan + UZ + UZB + 860 + Азия + Южная часть Центральной Азии + + + + Украина + + Ukraine + UA + UKR + 804 + Европа + Восточная Европа + + + + Уоллис и Футуна + + Wallis and Futuna + WF + WLF + 876 + Океания + Полинезия + + + + Уругвай + Восточная Республика Уругвай + Uruguay + UY + URY + 858 + Америка + Южная Америка + + + + Фарерские острова + + Faroe Islands + FO + FRO + 234 + Европа + Северная Европа + + + + Фиджи + Республика островов Фиджи + Fiji + FJ + FJI + 242 + Океания + Меланезия + + + + Филиппины + Республика Филиппины + Philippines + PH + PHL + 608 + Азия + Юго-Восточная Азия + + + + Финляндия + Финляндская Республика + Finland + FI + FIN + 246 + Европа + Северная Европа + + + + Фолклендские острова (Мальвинские) + + Falkland Islands (Malvinas) + FK + FLK + 238 + Америка + Южная Америка + + + + Франция + Французская Республика + France + FR + FRA + 250 + Европа + Западная Европа + + + + Французская Гвиана + + French Guiana + GF + GUF + 254 + Америка + Южная Америка + + + + Французская Полинезия + + French Polynesia + PF + PYF + 258 + Океания + Полинезия + + + + Французские Южные территории + + French Southern Territories + TF + ATF + 260 + + Индийский океан + + + + Хорватия + Республика Хорватия + Croatia + HR + HRV + 191 + Европа + Южная Европа + + + + Центрально-Африканская Республика + + Central African Republic + CF + CAF + 140 + Африка + Центральная Африка + + + + Чад + Республика Чад + Chad + TD + TCD + 148 + Африка + Центральная Африка + + + + Черногория + Республика Черногория + Montenegro + ME + MNE + 499 + Европа + Южная Европа + + + + Чешская Республика + + Czech Republic + CZ + CZE + 203 + Европа + Восточная Европа + + + + Чили + Республика Чили + Chile + CL + CHL + 152 + Америка + Южная Америка + + + + Швейцария + Швейцарская Конфедерация + Switzerland + CH + CHE + 756 + Европа + Западная Европа + + + + Швеция + Королевство Швеция + Sweden + SE + SWE + 752 + Европа + Северная Европа + + + + Шпицберген и Ян Майен + + Svalbard and Jan Mayen + SJ + SJM + 744 + Европа + Северная Европа + + + + Шри-Ланка + Демократическая Социалистическая Республика Шри-Ланка + Sri Lanka + LK + LKA + 144 + Азия + Южная часть Центральной Азии + + + + Эквадор + Республика Эквадор + Ecuador + EC + ECU + 218 + Америка + Южная Америка + + + + Экваториальная Гвинея + Республика Экваториальная Гвинея + Equatorial Guinea + GQ + GNQ + 226 + Африка + Центральная Африка + + + + Эландские острова + + Åland Islands + AX + ALA + 248 + Европа + Северная Европа + + + + Эль-Сальвадор + Республика Эль-Сальвадор + El Salvador + SV + SLV + 222 + Америка + Центральная Америка + + + + Эритрея + + Eritrea + ER + ERI + 232 + Африка + Восточная Африка + + + + Эстония + Эстонская Республика + Estonia + EE + EST + 233 + Европа + Северная Европа + + + + Эфиопия + Федеративная Демократическая Республика Эфиопия + Ethiopia + ET + ETH + 231 + Африка + Восточная Африка + + + + Южная Африка + Южно-Африканская Республика + South Africa + ZA + ZAF + 710 + Африка + Южная часть Африки + + + + Южная Джорджия и Южные Сандвичевы острова + + South Georgia and the South Sandwich Islands + GS + SGS + 239 + + Южный океан + + + + Южная Осетия + Республика Южная Осетия + South Ossetia + OS + OST + 896 + Азия + Закавказье + + + + Южный Судан + + South Sudan + SS + SSD + 728 + Африка + Северная Африка + + + + Ямайка + + Jamaica + JM + JAM + 388 + Америка + Карибский бассейн + + + + Япония + + Japan + JP + JPN + 392 + Азия + Восточная Азия + + +