Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Поддержка] Карта ******ы в админке ocmod


pashast
 Поделиться

Рекомендованные сообщения

Все прекрасно работает после проставки кода в регионы...

Спасибо огромная вас , выручили очень всех нас!

Ссылка на комментарий
Поделиться на других сайтах

Глянул код модуля, чтобы он работал должно быть

1) Код страны ******а - 220, у L0ky так и есть

2) В регионах ******ы (таблицы zone) коды у регионов (поле code) должны быть такие

"vi": "Вінницька область"
"vo": "Волинська область"
"dn": "Дніпропетровська область"
"do": "Донецька область"
"zh": "Житомирська область"
"6": "Закарпатська область"
"za": "Запорізька область"
"iv": "Івано-Франківська область"
"kv": "Київська область"
"kr": "Кіровоградська область"
"lu": "Луганська область"
"lv": "Львівська область"
"my": "Миколаївська область"
"od": "Одеська область"
"po": "Полтавська область"
"ri": "Рівненська область"
"su": "Сумська область"
"te": "Тернопільська область"
"kh": "Харківська область"
"ke": "Херсонська область"
"km": "Хмельницька область"
"ck": "Черкаська область"
"ch": "Чернігівська область"
"cv": "Чернівецька область"
"cr": "Автономна Республіка Крим"

В целом, чтобы проверить, даже не нужно выполнять запросы, можно открыть страницу

 

index.php?route=dashboard/map_ukraine/map&token=ТОКЕН

 

ТОКЕН можно взять с ссылки страницы, когда входишь в админку опенкарта, токен присваивается на текущую сессию

 

Спасибо большое, таки решили вопрос, таки работает :)

 

*немного дополняю

 

"ky" - Киев

(у нас Киев это отдельный регион, насчет кода не уверен, но вроде работает)

 

**для тех кто не знает что с этим всем делать: идем в админку - система - локализация - регионы, идем на 182-183 страницы и в каждом регионе меняем код на буквенный (у меня стоял цифровой) или ждем пока кто-то напишет здесь запрос в БД для замены :)

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


честно говоря, я бы не стал менять геокоды в БД - потом могут быть проблемы с использующими их модулями и сервисами

лучше в самом модуле изменить

Ссылка на комментарий
Поделиться на других сайтах

честно говоря, я бы не стал менять геокоды в БД - потом могут быть проблемы с использующими их модулями и сервисами

лучше в самом модуле изменить

 

В каком модуле?

Ссылка на комментарий
Поделиться на других сайтах


честно говоря, я бы не стал менять геокоды в БД - потом могут быть проблемы с использующими их модулями и сервисами

лучше в самом модуле изменить

Эти коды, что тут привел, изначально такие и были в опенкарте 1.5.х (кроме 6 - это ошибка видимо).

В новых версиях опенкарта коды цифровые, но в них еще меньше логики и непонятно, откуда они всплыли.

Сколько в рамках модуля симпл не сталкивался с модулями доставки (наверное уже за сотню перевалило), ни разу не видел, чтобы они где-то использовались.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

как вариант, можно сделать проверку по обоим вариантам - и по цифровому коду (согласно стандарту iso из ссылки выше), и по буквенному

а возможно даже лучше будет делать проверку не по zone.code, а по zone.zone_id

 

но это уже мысли вслух, для pashast как автора

Ссылка на комментарий
Поделиться на других сайтах

Эти коды, что тут привел, изначально такие и были в опенкарте 1.5.х (кроме 6 - это ошибка видимо).

В новых версиях опенкарта коды цифровые, но в них еще меньше логики и непонятно, откуда они всплыли.

Сколько в рамках модуля симпл не сталкивался с модулями доставки (наверное уже за сотню перевалило), ни разу не видел, чтобы они где-то использовались.

Почему же, во втором ОС куча буквенных кодов, но именно ******ские были цифровые. Поменял на буквенные, заработала карта в этом модуле.
Ссылка на комментарий
Поделиться на других сайтах


как вариант, можно сделать проверку по обоим вариантам - и по цифровому коду (согласно стандарту iso из ссылки выше), и по буквенному

а возможно даже лучше будет делать проверку не по zone.code, а по zone.zone_id

 

но это уже мысли вслух, для pashast как автора

А в какой версии они используются эти цифровые коды? В последнем ocstore буквенные.

Ссылка на комментарий
Поделиться на других сайтах

Почему же, во втором ОС куча буквенных кодов, но именно ******ские были цифровые. Поменял на буквенные, заработала карта в этом модуле.

 

Как раз на этот вопрос ответить легко, -  в модуле доставки "Новой почтой" есть файл под названием "recovery_zone_and_country_tables.sql" который по словам автора восстанавливает названия и коды и т.п. для ******ских регионов (автор перестраховался на случай если эта инфа в базе изменена или удалена, чтоб его модуль точно работал), так вот, если заглянуть в этот файл, то можно увидеть у ******ских регионов цифровые коды, а вот почему так, спросить у автора (Prorab337) модуля "Новая почта" )

 

b3031a60400e.jpg

Изменено пользователем L0ky
Ссылка на комментарий
Поделиться на других сайтах


А в какой версии они используются эти цифровые коды? В последнем ocstore буквенные.

 

это правки конкретно модуля "Новой почты" :) хотя возможно и у других модулей доставки есть аналогичные фокусы.

Ссылка на комментарий
Поделиться на других сайтах


в оригинальном opencart цифровые коды для регионов ******ы появились с версии 2011, до этого были буквенные

в ocStore они по-прежнему буквенные - вероятно потому что просто использовали скопировали данные от предыдущей БД

 

а автор "Новой почты" восстанавливает цифровые коды скорей всего потому, что эти самые коды используются при обмене данными в API

 

по поводу "почему цифры а не буквы":

по стандарту ISO 3166-2:UA у регионов ******ы используется цифровой код

до версии 2011 в opencart для регионов ******ы использовался буквенный код по HASC

Ссылка на комментарий
Поделиться на других сайтах

Вы сейчас ищите причины, хотя проще поправить следствие, причем кому как удобнее, кому-то в базе, кому-то в скриптах модуля

Делать админку под задание соответствий - пустая трата времени, эта информация можно сказать статическая

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

как вариант, можно сделать проверку по обоим вариантам - и по цифровому коду (согласно стандарту iso из ссылки выше), и по буквенному

но это уже мысли вслух, для pashast как автора

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Как раз на этот вопрос ответить легко, -  в модуле доставки "Новой почтой" есть файл под названием "recovery_zone_and_country_tables.sql" который по словам автора восстанавливает названия и коды и т.п. для ******ских регионов (автор перестраховался на случай если эта инфа в базе изменена или удалена, чтоб его модуль точно работал), так вот, если заглянуть в этот файл, то можно увидеть у ******ских регионов цифровые коды, а вот почему так, спросить у автора (Prorab337) модуля "Новая почта" )

 

b3031a60400e.jpg

 

Этот дамп я вырезал из ocstore версию уж не помню. Этот дамп на случай того что, некоторые магазины используют стандартные названия областей из чистого опенкарт или какой-то сборки, которые не всегда правильны, а некоторых областей иногда вообще нет. Также есть другой модуль новой почты который вообще затирает таблицы стран и регионов как таковые и пишет туда свою инфу, вот когда люди переходят с того модуля на мой - предлагаю им быстрое решение проблемы.

Изменено пользователем Prorab337
Ссылка на комментарий
Поделиться на других сайтах

в оригинальном opencart цифровые коды для регионов ******ы появились с версии 2011, до этого были буквенные

в ocStore они по-прежнему буквенные - вероятно потому что просто использовали скопировали данные от предыдущей БД

 

а автор "Новой почты" восстанавливает цифровые коды скорей всего потому, что эти самые коды используются при обмене данными в API

 

по поводу "почему цифры а не буквы":

по стандарту ISO 3166-2:UA у регионов ******ы используется цифровой код

до версии 2011 в opencart для регионов ******ы использовался буквенный код по HASC

 

Кодами в своем модуле не пользуюсь так как их вариантов тьма. Модуль определяет область по названию, а далее сопоставляет уже со своей базой

Ссылка на комментарий
Поделиться на других сайтах

  • 9 месяцев спустя...

Установилось нормально. Регионы проверил, всё соответствует. Однако выдает ошибку вот такую 

Скрытый текст
<b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>25</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>26</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>27</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>30</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>25</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>26</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>27</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>30</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>25</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>26</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>27</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>30</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>25</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>26</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>27</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>30</b>{"kr":{"total":"1","amount":"1556"},"ky":{"total":"2","amount":"19560"},"od":{"total":"1","amount":"3260"},"6":{"total":"1","amount":"3862"}}

Подскажите пожалуйста, как это лечится?

Ссылка на комментарий
Поделиться на других сайтах


Добрый день! Под ОС2.3 не планируете обновить модуль? Я поставил этот (установка прошла без ошибок), коды поменял на буквенные, но все равно не работает. На 2.1, работало отлично.

Ссылка на комментарий
Поделиться на других сайтах


  • 1 месяц спустя...

да уж, было бы неплохо под OpenCart 2.3  поправить. потому что в admin/controller/common/dashboard.php теперь нет строки [$data['map'] = $this->load->controller('dashboard/map');]

 

а подмена в admin/controller/common/extension/dashboard/map.php приводит к ошибке

Ссылка на комментарий
Поделиться на других сайтах


Для OpenCart 2.3.x нужно сделать следующее:

  1. Записать в /admin/view/javascript/jquery/jqvmap/maps/  файл с картой страны, например ******ы - ukraine.js(можно взять из этого модуля или сделать самому).
  2. Привести в соответствие коды регионов, а именно: открыть таблицу БД под названием "(ваш префикс_)zone" или просто "zone", если без префикса(префикс по умолчанию OC_) и выполнить запрос SELECT * FROM `oc_zone` WHERE `country_id`=220 (220 это код ******ы), далее нужно посмотреть какому региону(из колонки Name) какой код соответствует (из колонки Code), точно такие же соответствия должны быть и в файле ukraine.js. Откройте его для редактирования и в коде найдите все участки типа

    "pathes" : {

    "05" : {
        "path" : "M517.4,446.91c-0.273-0.71-0.666-1.749-0.883-2.313-0.292-0.784-1.021-2.306-1.158-3.125-0.127-0.756,0.082-2.287,0.082-3...куча векторных координат.....и т.д.",
        "name" : "Вінницька область"
    },      Это значит что "Вінницька область" под кодом "05". Исправте так чтобы коды регионов были как в БД.

  3. Открыть для редактирования файл admin/view/template/extension/dashboard/map_info.tpl и исправить <script type="text/javascript" src="view/javascript/jquery/jqvmap/maps/jquery.vmap.world.js"></script>  на   <script type="text/javascript" src="view/javascript/jquery/jqvmap/maps/ukraine.js"></script> и ниже по коду  "$('#vmap').vectorMap({map: 'world_en', "    на    "$('#vmap').vectorMap({map: 'ukraine'," (вместо 'ukraine' может быть другое имя, посмотреть его нужно в файле векторной карты ukraine.js в коде 

    jQuery.fn.vectorMap(

    'addMap',
    'ukraine',)

  4. Далее в файле admin/model/report/sale.php нужно добавить функцию :

    public function getTotalOrdersByZone() {
            $query = $this->db->query("SELECT COUNT(*) AS total, SUM(o.total) AS amount, c.code FROM `" . DB_PREFIX . "order` o LEFT JOIN `" . DB_PREFIX . "zone` c ON (o.payment_zone_id = c.zone_id) WHERE o.order_status_id > '0' GROUP BY o.payment_zone_id");

            return $query->rows;
        }

Далее в файле admin/controller/extension/dashboard/map.php  меняем код в функции map() - 

public function map() {
        $json = array();

        $this->load->model('report/sale');

        $results = $this->model_report_sale->getTotalOrdersByCountry();

        foreach ($results as $result) {
            $json[strtolower($result['iso_code_2'])] = array(
                'total'  => $result['total'],
                'amount' => $this->currency->format($result['amount'], $this->config->get('config_currency'))
            );
        }

        $this->response->addHeader('Content-Type: application/json');
        $this->response->setOutput(json_encode($json));
    }

на 

public function map() {
        $json = array();

        $this->load->model('report/sale');

        $results = $this->model_report_sale->getTotalOrdersByZone();

        foreach ($results as $result) {
            $json[strtolower($result['code'])] = array(
                'total'  => $result['total'],
                'amount' => $this->currency->format($result['amount'], $this->config->get('config_currency'))
            );
        }

        $this->response->addHeader('Content-Type: application/json');
        $this->response->setOutput(json_encode($json));
    }

На этом все.

  • +1 3
Ссылка на комментарий
Поделиться на других сайтах


  • 1 месяц спустя...

Здравствуйте. Подскажите пожалуйста, почему ФТП должен быть включен?

При установке пишет

FTP доступ должен быть включен в настройках

Ссылка на комментарий
Поделиться на других сайтах


10 минут назад, buslikdrev сказал:

Разве это не очевидно?

Пока что нет))) 

ЗЫ я недавно нашел тему, где один автор модулей (НЕ ЭТОТ), в своих дополнениях через доступ ФТП оставлял для себя "дыру", причем это было в каждом его дополнение. А дополнений у него есть МНОГО, вот я и спрашиваю.

Ссылка на комментарий
Поделиться на других сайтах


3 часа назад, binzin сказал:

Здравствуйте. Подскажите пожалуйста, почему ФТП должен быть включен?

При установке пишет

FTP доступ должен быть включен в настройках

 

потому что это основы при работе с архивами ocmod.zip

подробнее здесь

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...

Opencart 2.3.0.2.3 - чистая установка с нуля и демо товарами,
1. перед установкой: все регионы кроме ******а - удалены, все страны кроме ******а - удалены

2. установил через Установщик дополнений OCMOD - без ошибок
3. в списке дополнений появилось "дополнение Карта ******ы" - без проблем
4. изменил в кодах регионов все на буквенное обозначение
5. очистил системный кеш

карта не появилась. По ссылке о замене кода ******ы на 220 не понял что и где искать.
Подскажите чуть детальнее ,плиз

 

Ссылка на комментарий
Поделиться на других сайтах


  • 3 недели спустя...

Добрый день, ocstore 2.3 - сделал всё как написали выше для этой версии, подправил все файлы добавил функции ..... в общем заработало но не подсвечивает карту с заказами, куда теперь копать? скрин приложил, сделал два заказа из харьковской и киевской областей ..... помогите пож и спасибо за ваш труд - очень классно придумали

Ссылка на комментарий
Поделиться на других сайтах


  • 2 недели спустя...

взял из этой темы файл и перенастроил как сделано тут

 

карты впринципе отображается.  особо не тестил но должно работать

 

map_ua-oc2.3.0.x.ocmod.zip

 

а ну и прикол в тему. хотел соеденить карты сделать снг. я сделал монстра)))

image.png.2c1fedbb6eb2ddb9f5797b0ad14249d3.png

 

 

Изменено пользователем mvarts
  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.