oleg - +46


oleg -

  • oleg - oleg - 27 октября 2020 10:34 #

    Обоими руками за. А то приходится заходить и отключать уведомления на время

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

  • oleg - oleg - 27 октября 2020 10:33 #

    плюс не мешало бы в истории текст сохранять на всякий случай

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

  • oleg - oleg - 22 сентября 2020 06:28 #

    подобная проблема. что было?

    в ответ на Яндекс Турбо-страницы

  • oleg - oleg - 6 июля 2020 10:06 #

    можете подсказать плагины?

    в ответ на склады- остатки - бесконечность

  • oleg - oleg - 3 июля 2020 12:18 #

    да в любом браузере. Попробуйте сделать окно поуже

    в ответ на отображение бекенда в сафари

  • oleg - oleg - 15 июня 2020 19:06 #

    это вообще боль. Сидишь как дурак и на бумажке записываешь..

    А сдеком сколько? а почтой?

    а сдеком какие сроки? 

    ААААА!!!

    в ответ на Как видеть все тарифы за доставку при оформлении заказа в админке?

  • oleg - oleg - 10 апреля 2020 12:30 #

    толи я разучился скайпом пользоваться то-ли скайп не находит.. 

    dr.xor точно?

    в ответ на Рекомендации по выбору хостинга располагающегося не в России.

  • oleg - oleg - 22 марта 2020 20:16 #

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

    Вообще как я вижу - "оплачено" это даже не статус, а типа метки, т.к. заказы с отметкой "оплачено" могут быть в любом статусе... Поэтому думаю плагину не шибко сложно это отдельно учесть...

    Вроде и срм есть, а как посмотреть такую очевидную штуку...

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

    в ответ на отчеты по "сумме заказов"

  • oleg - oleg - 22 марта 2020 18:38 #

    у меня для этого есть похожий плагин

    и тоже куча статусов. Ключевое здесь - увидеть какая сумма в определенном статусе "оплачена"

    мне кажется плагин отчет по заказам этого не покажет...

    в ответ на отчеты по "сумме заказов"

  • oleg - oleg - 6 марта 2020 09:37 #

    как успехи? починили?

    в ответ на Ошибка БД файл db.log

  • oleg - oleg - 7 января 2020 11:45 #

    аналогично. кто-то решил вопрос "на стороне хостинга?"

    в ответ на Ошибка в логах БД Query Error 0

  • oleg - oleg - 5 января 2020 20:15 #

    отличная идея

    в ответ на Альтернативы вводу PIN

  • oleg - oleg - 30 декабря 2019 11:10 #

    еще не забываем про всякие автозаполнялки которым тоже насрать на введенные +7

    проблема как всегда - есть старая боль, на которую большинство либо забили, либо как-то потихоньку сами решили.

    в ответ на Ввод номера телефона покупателем

  • oleg - oleg - 29 декабря 2019 08:42 #

    Вот типичная битва человека и программиста

    - Люди ошибаются, мы теряем деньги, давайте что-то сделаем

    - нет, формально все правильно, пусть люди делают по другому

    в ответ на Ленинградская область не = Санкт-Петербург

  • oleg - oleg - 21 декабря 2019 21:34 #

    Евгений, на самом деле у меня нет претензий к вашей теме. Про ошибку это просто из цикла "ну еще и это".

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

    Просто выбор вебасиста для меня, как человека подбирающего новую тему, несколько непонятен.

    Уж не знаю как к этому отнеслись ваши заклятые друзья коллеги конкуренты.

    Вот скажите - для вас такой титул был неожиданностью?

    в ответ на лучшая тема дизайна 2019

  • oleg - oleg - 21 декабря 2019 21:27 #

    Я бы конечно мог вам объяснить - что я покупатель и если я вижу такое - я не куплю. 

    Как бы мне не объясняли, что я просто не шарю и вообще, похоже дурачок.

    в ответ на лучшая тема дизайна 2019

  • oleg - oleg - 21 декабря 2019 20:59 #

    Я вас удивлю, но на весь экран не помогает.

    А про Ахаха означает что к нелепости выбора темой года свежей необкатанной темым, 10 дней отроду, мы имеет еще и такие глюки. 

    Что, в принципе, фирменный стиль уже стал вебасиста.

    С точки зрения идиотов - это конечно ерунда.

    в ответ на лучшая тема дизайна 2019

  • oleg - oleg - 21 декабря 2019 20:41 #

    я вижу проблему в том, что на моем десктопе тема дизайна отображается в мобильной версии. Если для вас это норма то ок.

    в ответ на лучшая тема дизайна 2019

  • oleg - oleg - 21 декабря 2019 20:34 #

    ось указана справочно

    браузер почти на весь экран

    разрешение 

    13,3-дюймовый (1280 x 800)

    в ответ на лучшая тема дизайна 2019

  • oleg - oleg - 21 декабря 2019 20:18 #

    такс. мой коммент не прикрепился к этому тренду #

    возможно это внесло непдопонимание

    в ответ на лучшая тема дизайна 2019

  • oleg - oleg - 21 декабря 2019 20:09 #

    насколько я понимаю современную мак ось с сафари сравнивают с ноией

    т.е. глюки на мак оси это норм?

    в ответ на лучшая тема дизайна 2019

  • oleg - oleg - 21 декабря 2019 19:28 #

    вы сейчас серьезно?

    в ответ на лучшая тема дизайна 2019

  • oleg - oleg - 21 декабря 2019 15:59 #

    Ахаха у меня оказывается демка на десктопе отображается в мобильном варианте

    Да, так и должен выглядеть сайт в 2020г

    сафари и лиса. мак ось хай сиера

    в ответ на лучшая тема дизайна 2019

  • oleg - oleg - 21 декабря 2019 15:39 #

    или через импорт-экспорт намутить, кто в sql не умеет )

    в ответ на ЧПУ товаров

  • oleg - oleg - 18 декабря 2019 09:27 #

    боже мой да возьмите вы уже действующий магазин в консультанты. процессы просто жесть. Был раньше магазин мега подарки да и тот сплыл...

    в ответ на опять корзина

  • oleg - oleg - 20 ноября 2019 12:50 #

    ты не понимаешь.  В продажах главное не корзина, а маркетинг

    в ответ на Оформление заказа в корзине

  • oleg - oleg - 20 ноября 2019 12:48 #

    да, это отдельная проблема когда за несколько часов приложение поддержка генерит 6-8 гб кэша.

    я здесь говорю о том что при этой ошибке 

    1 клиенту показывается то, что он видеть не должен. Мне кажется что это как минимум несолидно.

    2 мы ее можем увидеть только зайдя на сайт (ну это ладно, решили скриптом на сервере, который проверяет свободное место)

    в ответ на почему при нехватке места такая странная ошибка?

  • oleg - oleg - 20 ноября 2019 11:47 #

    в том то и дело что никаких рассылок не делалось. (эта ошибка не первый раз)

    самое обидное что бекенд работает более-менее (правда кеш фиг сбросишь, хотя как правило он и засирается у нас)

    а вот это видят посетители сайта (зачем им это?)

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

    Вот мои основные тревоги и чаянья. 

    в ответ на почему при нехватке места такая странная ошибка?

  • oleg - oleg - 19 ноября 2019 19:03 #

    да когда сайт падает не до логов увы. срочно все чистится )

    но поддержка последнее время стала чудить - удаляешь письма - раз а они снова появились. и так может несколько раз

    в ответ на разрастается кеш mail

  • oleg - oleg - 19 октября 2019 17:49 #

    в общем методом тыка решение было найдено

    в файле /wa-apps/shop/plugins/roistat/lib/actions/frontend/shopRoistatPluginFrontend.actions.php

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

    <?php
    
    class shopRoistatPluginFrontendActions extends waActions
    {
        public function __construct()
        {
            //Если установлен логин и пароль, передается токен
            $enter_token = waRequest::get('token');
    
            $username = $this->plugin()->getSettings('username');
            $password = $this->plugin()->getSettings('password');
    
            if ($enter_token !== md5($username . $password) || (strlen($username) === 0 && strlen($password) === 0)) {
                exit;
            }
        }
    
        public function exportOrdersAction()
        {
            //Параметр date передает сервер ROIstat'а, чтобы отфильтровать заказы по дате обновления
            $edit_date = waRequest::get('date', time() - 31 * 24 * 60 * 60, 'int');
    
            $response = array('statuses' => array(), 'orders' => array());
    
            $model = new waModel();
            $db_result = $model->query("
                SELECT 
    				so.id,
    				so.contact_id,
    				so.create_datetime, 
    				so.update_datetime, 
    				so.state_id, 
    				so.total,
    				so.shipping,
    				so.roistat_visit,
                    so.currency,
    				soi.order_id, 
    				SUM(soi.purchase_price * soi.quantity) as cost
                FROM 
                    shop_order as so 
    			LEFT JOIN 
    				shop_order_items as soi ON so.id = soi.order_id
                WHERE 
                    so.create_datetime > i:edit_date
    			OR 
    				so.update_datetime > i:edit_date
    			GROUP BY id", array('edit_date' => $edit_date))->fetchAll();
    
            foreach ($db_result as $row) {
                $date_create = strtotime($row['create_datetime']);
                $date_update = ($row['update_datetime']) ? strtotime($row['update_datetime']) : $date_create;
    
                $response['orders'][] = array(
                    'id'          => $row['id'],
                    'date_create' => $date_create,
                    'date_update' => $date_update,
                    'status'      => $row['state_id'],
                    'price'       => $row['total']-$row['shipping'],
                    'cost'        => $row['cost'],
                    'visit'       => $row['roistat_visit'],
                    'client_id'   => $row['contact_id'],
                    'fields'      => array(
                        'currency' => $row['currency'],
                    ),
                );
            }
    
            //Получаем имя приложения и находим статусы магазина
            $config = shopWorkflow::getConfig();
    
            foreach ($config['states'] as $key => $value) {
                $response['statuses'][] = array(
                    'id'   => $key,
                    'name' => $value['name'],
                );
            }
            echo json_encode($response);
        }
    
        public function exportClientsAction()
        {
            $edit_date = waRequest::get('date', time() - 31 * 24 * 60 * 60, 'int');
    
            $model = new waModel();
            $contacts = $model->query("
              SELECT
                  id,
                  name,
                  company,
                  birth_day,
                  birth_month,
                  birth_year,
                  roistat_update_datetime
              FROM
                  wa_contact
              WHERE
    		      roistat_update_datetime > i:edit_date", array('edit_date' => $edit_date))->fetchAll();
    
            $contacts_ids = array_map(function (array $contact) {
                return $contact['id'];
            }, $contacts);
    
            $contacts_phones = $model->query("
                SELECT
                  id,
                  contact_id,
                  field,
                  value
                FROM
                  wa_contact_data
                WHERE
                  contact_id IN (s:contacts_ids)
                AND
                  field = 'phone';", array('contacts_ids' => $contacts_ids))->fetchAll();
            $phones_by_contact_id = array();
            foreach ($contacts_phones as $contact_phone) {
                $phones_by_contact_id[$contact_phone['contact_id']][] = $contact_phone['value'];
            }
    
            $contacts_emails = $model->query("
                SELECT
                  id,
                  contact_id,
                  email
                FROM
                  wa_contact_emails
                WHERE
                  contact_id IN (s:contacts_ids);", array('contacts_ids' => $contacts_ids))->fetchAll();
            $emails_by_contact_id = array();
            foreach ($contacts_emails as $contact_email) {
                $emails_by_contact_id[$contact_email['contact_id']][] = $contact_email['email'];
            }
    
            $response = array();
            foreach ($contacts as $contact) {
                $contact_data = array(
                    'id'    => $contact['id'],
                    'name'  => $contact['name'],
                    'phone' => null,
                    'email' => null,
                    'company' => $contact['company'],
                    'birth_date' => null,
                );
                if (array_key_exists($contact['id'], $emails_by_contact_id)) {
                    $contact_data['email'] = implode(',', $emails_by_contact_id[$contact['id']]);
                }
                if (array_key_exists($contact['id'], $phones_by_contact_id)) {
                    $contact_data['phone'] = implode(',', $phones_by_contact_id[$contact['id']]);
                }
                if ($contact['birth_year'] !== null && $contact['birth_month'] !== null && $contact['birth_day'] !== null) {
                    $contact_data['birth_date'] = $contact['birth_year'] . '-' . $contact['birth_month']  . '-' . $contact['birth_day'];
                }
                $response[] = $contact_data;
            }
            echo json_encode(array('clients' => $response));
        }
    
        /**
         * @return shopRoistatPlugin
         */
        private function plugin()
        {
            static $plugin;
            if ( ! $plugin) {
                $plugin = wa()->getPlugin('roistat');
            }
            return $plugin;
        }
    }

    в ответ на Интеграция с Роистат