Карта в админке

Тема в разделе "Общие вопросы", создана пользователем rip, 17 мар 2015.

  1. AndreyPopov

    AndreyPopov Пользователь

    Сообщения:
    49
    Симпатии:
    8
    спасибо, точно.
    как-то не обратил внимание. что у меня сейчас все в статусе Завершен, а показываются те что в статусе Аннулирован.
    при чем эти заказы как раз от тех, кто зарегистрировался.
     
  2. AndreyPopov

    AndreyPopov Пользователь

    Сообщения:
    49
    Симпатии:
    8
    так а должно отображать заказы, которые незавершенные, или все же все заказы?
     
    Последнее редактирование: 22 окт 2019
  3. AndreyPopov

    AndreyPopov Пользователь

    Сообщения:
    49
    Симпатии:
    8
    понял в чем суть

    в admin/model/extension/dashboard/map.php

    Код:
    if (is_array($this->config->get('config_complete_status'))) {
       foreach ($this->config->get('config_complete_status') as $order_status_id) {
        $implode[] = (int)$order_status_id;

    у меня в настройках к "завершенным заказам" относятся несколько статусов: "Завершен", "Возмещен", … "Аннулирован"
    и хотя Аннулирован имеет id=16, но начинается с буквы А - то в базе в параметре 'config_complete_status' он стоит первым!
    Код:
    config_complete_status ["16","8","11","5","7","9","17","10","14"]
    
    судя по логике указанного выше кода:
    - проверяется, что config_complete_status это действительно массив
    - запускается цикл, который должен преобразовать символьные переменные массива config_complete_status в массив целых чисел $implode

    после чего из базы делается выборка заказов по статусам из $implode
    Код:
    WHERE o.order_status_id IN('" . (int)implode(',', $implode) . "')
    
    по ходу получается выборка только по первому элементу массива $implode!!!!

    и вот тут мне уже непонятна логика: ЗАЧЕМ в запросе в базу данных стоит (int)implode ????????
    вроде как $implode и так уже массив целых чисел, зачем его еще раз делать "челым числом"?


    помогите разобраться в этой логике!


    прочитал описание функции
    implode — Объединяет элементы массива в строку
    т.е. вот эта конструкция
    Код:
    (int)implode(',', $implode)
    а) implode делает из массива целых чисел $implode строку через запятую
    б) а потом эта строка превращается в целое число

    бред какой-то вообще получается?
     
    Последнее редактирование: 22 окт 2019
    karpov нравится это.
  4. karpov

    karpov Продвинутый пользователь

    Сообщения:
    1.519
    Симпатии:
    241
    Мне кажется ошибка тут
    WHERE o.order_status_id IN('" . (int)implode(',', $implode) . "')
     
    Ravilr нравится это.
  5. AndreyPopov

    AndreyPopov Пользователь

    Сообщения:
    49
    Симпатии:
    8

    да вообще непонятно ЗАЧЕМ разработчики в OpenCart 3.x мудрили с этими преобразованиями в целые числа, если в запросе к базе надо передавать строку со значениями через запятую!

    после нескольких проб и ошибок типа "неправильное преобразование массива в строку" нашел рабочий вариант.

    добавил
    Код:
    $config_complete_status_string = implode(',', $this->config->get('config_complete_status'));  
    а в запросе к базе данных заменил на:
    Код:
    WHERE o.order_status_id IN ($config_complete_status_string)
    и все заработало как и задумывалось!

    теперь на карте отображаются заказы, статус которых отнесен к "Завершенным" в настройках магазина.

    P.S. смотрю разработчики уже поправили этот косячок на GitHub
    https://github.com/opencart/opencart/commit/c66d34534c28490509a80de38e20b567681ccd41
     
    Последнее редактирование: 24 окт 2019
  6. Amalpobeditel

    Amalpobeditel Новичок

    Сообщения:
    2
    Симпатии:
    0
    Приветствую, спецы!

    Поставил карту на OcStore 3, все работает безупречно, только вот карта показывает заказы с Волгоградской области, в то время как они из Москвы.

    Подскажите, в чем может быть проблема?
     
  7. Ravilr

    Ravilr Специалист

    Сообщения:
    3.877
    Симпатии:
    1.064
    Тема то старая. Может что изменилось в идентификаторах стран. Да и расширение проверялось на опенкарт, а не на оксторе.
     
  8. Amalpobeditel

    Amalpobeditel Новичок

    Сообщения:
    2
    Симпатии:
    0
    Понял, но может кто из спецов поможет поправить код? Штука то полезная)
     
  9. hnbh

    hnbh Пользователь

    Сообщения:
    41
    Симпатии:
    0
    Понимаю, что тема уже старая, но все же актуальная на сей день.
    Во-первых, хочу поблагодарить за мод, работает отлично, но есть некоторые косяки, которые хотелось бы убрать.
    Регион "Москва и Московская обл" на карте отображает и учитывает только Москву. Как исправить, чтобы учитывал заказы и Москов обл.? Аналогичная ситуация и с СПБ - Лен.обл..

    Использую OcStore 2.3, шаблон стандарт.
     
  10. Ravilr

    Ravilr Специалист

    Сообщения:
    3.877
    Симпатии:
    1.064
    В карте Москва и Мос область это одна область
    Код:
            "mow": {
                "path": "m146.07,234.16,3.5714,0.26785,2.3214-0.89285,1.4286-0.44643,0.53571,0.625,0.0893,1.7857,0,1.1607-0.17857,1.3393,1.5178,0.89286,2.9464,0.44643,1.7857,0.89285,2.0536,0.89286,2.7678,0.89286,1.7857,0.26786,1.25,0.53571,0.26786,1.6071-0.0893,1.5179-0.44643,1.6964-1.5179,0.625-2.1428,1.1607-1.6072,1.3393-0.0893,1.25-0.625,1.7857-1.1607,1.5179-0.35714,1.6071,0.17857,1.6072,0.0893,0.89285,1.1607,1.0714,1.0714,0.625,1.1607-1.0714,0.625,0.44643,0,1.5179-0.0893,3.2143-0.44643,1.1607-1.3393-0.44643-1.875-0.17857-1.6072,0.17857-0.80357,0.89286-2.0536,0.0893-1.6071-0.35714-1.25-0.71429-1.0714-1.1607-1.6071-0.625-1.6964,0-0.44643,0.80357-0.17857,1.1607-1.0714,0.53571-1.4286,0.0893-0.80357-0.80358-0.17858-0.625,1.1607-2.4107,0.26786-1.9643-0.53572-1.6964-1.1607-1.5179-1.1607-1.5179-1.0714-0.89286,0.625-1.25,2.5-2.9464,1.1607-2.6786-0.71429-1.7857-1.6071-1.6071-1.6071-0.98215-0.53572-0.35714-0.625-1.875-0.80357-1.25-0.80357-0.80357,0.625-1.5179,2.5893-1.3393z",
                "name": "Москва и Московская область"
            },
    А в опенкарте для москвы указан код MOW , а для области MOS

    Поэтому или в скрипте карты, меняем добавляем область или пробуем изменить в админке.
     
  11. hnbh

    hnbh Пользователь

    Сообщения:
    41
    Симпатии:
    0
    В скрипте данный код и стоит, но он учитывает заказы только из Москвы, а остальные 4 заказа из Московской области не видит.
    Screenshot_1.jpg
     
    Последнее редактирование: 10 янв 2023