Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

triok

Новачок
  
  • Публікації

    26
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем triok

  1. Здравствуйте! Есть аналогичная проблема с нагрузкой на сервер, ищу исполнителя который поможет определить проблему, проанализировать запросы и оптимизировать БД! 

  2. Здравствуйте! Необходимо доработать загрузку сайта, что бы страницы грузились быстрее. В данный момент загрузке мешают js скрипты, всякие счетчики (метрики, гугла), дживо чат итп. Есть проблемы с фото и большим количеством запросов к БД. Это сказывается на показателях pagespeed (для мобильных 46 показывает).

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

    Рассмотрю любые варианты сотрудничества!

  3. Привет всем, коллеги! 

    Сделал кнопку, которая отправляет аджакс запрос контроллер. В контроллере , через curl получаю строку (изображение (маркировочный лист для заказа)) в виде :

    content-type: "application/pdf"

    base64: "набор символов"

     

    Я никак не могу понять как же мне в админке после нажатия на эту кнопку получить изображение (декодировать его) и вывести его на печать? 

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

     

    Может надо что бы по нажатию на кнопку открывался шаблон (view) и туда передавалась строка с base64? 

     

    Направьте пожалуйста на какой-нибудь пример, не могу ничего толкового найти.

     

    Пока в аджакс запросе стоит вот так:

     

    ...
    success: function(json){
      console.log(json);
    },

    И в консоль передается следующее:

    result: {content_type: "application/pdf", base64_content: "JVBERi0xLjQKJeLjz......."}

    Дальше у меня затуп что с этим делать.. :)

  4. Все еще раз привет, пользовался SEO PRO несколько месяцев, но к сожалению данный модуль не дружит с MegaFilter. 
    Вопрос, есть еще какие-нибудь модули/варианты которые помогут решить проблему дублей, кроме SEO PRO ?

  5. В порядке эксперимента,

    Поставил Opencart 2.3 Русская сборка, затем MegaFilter, затем SEO Pro.  Результат такой же, перестают работать ссылки фильтра если включить Тип чпу - SEO Pro.

    Затем поставил OcStore 2.3 , к нему MegaFilter и затем SEO Pro. Точно такой же результат. Не работают. Попробовал в другом порядке поставить, значения не имеет. 

     

    Из-за того что проведена колоссальная 2 летняя работа с Мегафильтром, избавиться от него не представляется возможным. 

     

    spacer.png

  6. есть ощущение, что либо ни у кого не стоит такая связка Опенкарт 2.3 + МегаФильтр + СеоПро, либо у всех всё без проблем работает.

    Если второе (у всех такая связка работает без проблем), ребята, отпишитесь пожалуйста)

  7. Добрый день, подниму тему, проблема актуальна и не у меня одного!

    Если снять галочку в Мегафильтра alliases, то все работает норм, если опять включить что бы использовать ЧПУ, то редиректит на "страница не найдена"

  8. Всем привет! Ищу исполнителя для следующего задания:

    Opencart 2.3

    Megafilter Pro 2.0.5.2

    SeoPro

     

    Если включить SEOPro, то перестают работать ЧПУ которые назначены для страниц в Мегафильтре.

    То есть при выборе фильтра в урл отображается правильный ЧПУ, но если скопировать этот урл и открыть на новой странице или даже на той же, то "Запрашиваемая страница не найдена".

     

    Если поставить ЧПУ:  Default, то все работает хорошо.

     

    Готов оплатить работу по исправлению этой проблемы!

     

  9. 1 час назад, Pavel666 сказал:

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

    не echo $content_bottom включает контроллер,

    а контроллер страницы продукта/категории/информационной/главной - да не важно какой,

    обращается к контроллеру content_bottom, далее контроллер content_bottom увидев get параметры запроса определяет с какой страницы к нему обратились,

    т.е продукта/категории/информационной/главной  или какой либо другой,

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

    затем обработав идентификатор он обращается к контроллеру каждого модуля,

    которые в свою очередь собрав необходимые данные,

    передают их в метод view выше вы уже писали про него,

    и метод view обрабатывает эти данные загрузив необходимый tpl шаблон

    таким образом если вам необходимо ajax подгрузка,

    то как вариант можно переопределить контроллер content_bottom,

    и вывести на страницу или в js переменную, или записать в инпут, или в атрибуты любого блока идентификаторы модулей что получил content_bottom.

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

     

    1 час назад, Igor123123 сказал:

    Еще раз повторюсь:

    модули читаются тут: $modules = $this->model_design_layout->getLayoutModules($layout_id, 'content_bottom');
    а $layout_id зависит от route:

            if (!$layout_id) {
                $layout_id = $this->model_design_layout->getLayout($route);
            }  

    у тебя route =  common/content_bottom/index

     

    для этого route нет layout. поэтому он берется тот что по умолчанию. А по умолчанию наверное нет назначенных модулей.

     

    И да что того что-бы модули отображались, нужно return  $this->load->view('common/content_bottom', $data);

    заменить на echo  $this->load->view('common/content_bottom', $data);

    Но я бы сделал по другому:
    Ничего не ламал и переделывал , а сделал бы отдельный контроллер и к нему обращался через ajax за всеми сайдбарами.

    П.С. /index в конце не обязательно. Он и так вызывается

     

    Спасибо большое за разъяснение, теперь все стало понятно. В итоге сделал отдельную функцию, в ней указал роут по умолчанию common/home и все модули загрузились. :)

  10. 2 часа назад, Igor123123 сказал:

    Потому что content_bottom как и остальные сайдбары ожидают входящих параметров. Исходя из которых грузят определенные модули.

    В самом начале есть строка:

     

        if (isset($this->request->get['route'])) {
                $route = (string)$this->request->get['route'];
            } else {
                $route = 'common/home';
            }

     

    Передавай значение route и остальные значения GET. в идеале и POST .а вдруг их какой-то модуль использует.

    А почему тогда без Ajax все работает? 

    То есть смотрите если оставить в home строку echo $content_bottom, то она включает контроллер content_bottom , который в свою очередь возвращает вьюху return $this->load->view('common/content_bottom', $data); 

     

    А в content_bottom.tpl функция:

     

    <?php foreach ($modules as $module) { ?>
    <?php echo $module; ?>
    <?php }?>

    И вот она без проблем выводит все модули которые отмечены в админке в разделе Дизайн.

     

    Правильно ли я делаю что через ajax обращаюсь к функции Index контроллера content_bottom? 

     

     

  11. Всем привет, пытаюсь сделать ленивую загрузку модулей в Opencart 2.3.

     

    На главной странице почти все модули выводятся через echo $content_bottom  и я пытаюсь сделать их загрузку по кнопке "Load". Вот что сделал:

     

    В home.tpl убрал echo $content_bottom 

     

    и написал следующий скрипт:

     

        modulesShown = false;
    
    	$('#load').click(function(){ 
            if(!modulesShown){ 
                showModules();
                modulesShown=true; 
            } 
            function showModules () {
                $.ajax({ 
                    url:"index.php?route=common/content_bottom/index",
                    dataType:"html",
                    success: function(e){
    
                      $("#modules").html(e);
                                
                    }                
                });
            };
        });

    То есть по моему замыслу все модули должны будут загрузится в див "modules" по нажатию на кнопку "Load"

    Контроллер content_bottom.php у меня стандартный.

    Вьюха content_bottom.tpl тоже

    Если добавить print_r($modules); то каждый раз у меня возвращается пустой массив. В этом собственно и проблема.

     

    Не могу понять почему он пустой.

     

  12. Всем привет!

    Столкнулся с проблемой дублей страниц, решить ее не смог.

     

    Кто поможет убрать дубли, что бы они не попадали в индексацию?

     

    Вкратце о строении сайта


    Есть Бренды (это категории)
    Есть Категории (это тоже категории и подкатегории)

     

    Одна и та же карточка товара отображается по следующим url:
    https://gearpro.ru/nozh-opinel-8-olive-wood   (сайт/карточка)
    https://gearpro.ru/brand/nozh-opinel-8-olive-wood (сайт/бренд/карточка)

    https://gearpro.ru/brand/opinel/nozh-opinel-8-olive-wood (сайт/бренды/бренд/карточка)

    https://gearpro.ru/categories/nozh-opinel-8-olive-wood (сайт/категории/карточка)

    https://gearpro.ru/categories/nozhi/nozh-opinel-8-olive-wood (сайт/категории/категория/карточка)

    https://gearpro.ru/categories/nozhi/nozhi-opinel/nozh-opinel-8-olive-wood (сайт/категории/категория/подкатегория/карточка)

     

    Ну я так понимаю можно еще комбинации придумать) 

     

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

     

     

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

     

    <script type="text/javascript">
      window.onload = function () {
        var a = document.getElementById('director');
        a.onclick = function() {
            Swal({
              type: 'warning',
              title: 'Письмо директору',
              html:
                '<input name="name" id="swal-input1" class="swal2-input" placeholder="Ваше имя">' +
                '<input name="email" id="swal-input2" class="swal2-input" placeholder="Email для ответа">' +
                '<textarea name="text" id="swal-textarea1" class="swal2-textarea" placeholder="Введите текст сообщения..." style="display: flex;"></textarea>',          
              showCancelButton: true,
              confirmButtonColor: '#ff5908',
              cancelButtonColor: '#666',
              confirmButtonText: 'Далее',
              cancelButtonText: 'Отмена',
              preConfirm: function () {
                return new Promise(function (resolve) {
                  resolve([
                    $('#swal-input1').val(),
                    $('#swal-input2').val(),
                    $('#swal-textarea1').val()
                  ])
                })
              },                    
            }).then(function (result) {
            	if (result.value) { 
    		        var result = {};
    		        result.name = $('#swal-input1').val();
    		        result.email = $('#swal-input2').val(); 
    		        result.text = $('#swal-textarea1').val();         
    	          	$.ajax({
    	              url:"index.php?route=common/director/index",
    	              type: "POST",
    	              data: JSON.stringify(result),
    	              success: function() {Swal({type: 'success', text: 'Сообщение отправлено'});},
    	              error: function(xhr,status,error){
    	              console.log(status);
    	              console.log(error);
    	              }
    	            })
            	}
            })
    
            return false;
        }
    }
    </script>

     

    2) Вопрос к знатокам, с точки зрения более  чистого кода уместно ли было создать новый контроллер для обработки такого запроса. Или же логичнее было впихнуть функцию обработки например в контроллер хедера/футера? 

    Может быть вообще правильнее было всю логику вставить в функцию индекс хэдера/футера? 

     

    3) 

     

    11 часов назад, chukcha сказал:

    Никакой защиты от спама

     

    
    		$request_body = file_get_contents('php://input');
    		$data = json_decode($request_body);

    хм..

     

    Защиту от спама не делал, во-первых не знаю как, а во-вторых на моем проекте она не нужна, спама нет)  
    А вот с file_get_contents , тут да. Я долго не мог поймать пост запрос и в итоге это единственное решение которое сработало.

    Был бы признателен если бы указали как правильнее его поймать. 

    Я так понимаю что надо начать со строк:
    if ($this->request->server['REQUEST_METHOD'] == 'POST') {

     

    }

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

  14. Если долго мучиться, то что-нибудь получится. В итоге все сделал. Может кому понадобится, оставлю код здесь. Надеюсь кто-нибудь опытный поправит кои косяки и недоработки.

     

    В общем повторю еще раз смысл:

     

    В шапке магазина размещена ссылка, нажав на которую появляется модальное окошко SweetAlert с формой (имя, имейл, текст). Заполнив форму, жмем "ОК" и происходит отправка сообщения с данными формы на определенный имейл. В моем случае на почту директора.

     

    Итак,

    в header.tpl, ссылка выглядит так:

    <a href="mailto:[email protected]"><p id="director" class="director">Письмо директору</p></a>

    В footer.tpl, вставил скрипт JS(SweetAlert) + отправку формы через Ajax, json

    <script type="text/javascript">
      window.onload = function () {
        var a = document.getElementById('director');
        a.onclick = function() {
            Swal({
              type: 'warning',
              title: 'Письмо директору',
              html:
                '<input name="name" id="swal-input1" class="swal2-input" placeholder="Ваше имя">' +
                '<input name="email" id="swal-input2" class="swal2-input" placeholder="Email для ответа">' +
                '<textarea name="text" id="swal-textarea1" class="swal2-textarea" placeholder="Введите текст сообщения..." style="display: flex;"></textarea>', 
              showCancelButton: true,
              confirmButtonColor: '#ff5908',
              cancelButtonColor: '#666',
              confirmButtonText: 'Далее',
              cancelButtonText: 'Отмена',
              preConfirm: function () {
                return new Promise(function (resolve) {
                  resolve([
                    $('#swal-input1').val(),
                    $('#swal-input2').val(),
                    $('#swal-textarea1').val()
                  ])
                })
              },                    
            }).then(function (result) {
            var result = {};
            result.name = $('#swal-input1').val();
            result.email = $('#swal-input2').val(); 
            result.text = $('#swal-textarea1').val();         
              $.ajax({
                  url:"/catalog/controller/common/director/index",
                  type: "POST",
                  data: JSON.stringify(result),
                  error: function(xhr,status,error){
                  console.log(status);
                  console.log(error);
                  }
                }).done(function() {
                Swal({type: 'success', text: 'Сообщение отправлено'});
              });
            })
    
            return false;
        }
    }
    </script>

     В папке controller/common/ создал контроллер director.php, который получает данные jSON и отправляет сообщение.

     

    Вот так он выглядит: 

    <?php
    class ControllerCommonDirector extends Controller {
    
    		public function index() {
    
    		$request_body = file_get_contents('php://input');
    		$data = json_decode($request_body);
    
    		$username = $data->name;
    		$email = $data->email;
    		$msg = $data->text;
    		$message = '<div><span>Имя: </span><span><strong>'.$username.'</strong></span></div><br><div><span>Имейл: </span><span><strong>'.$email.'</strong></span></div><br><div>Текст сообщения:</div><br><div><strong>'.$msg.'</strong><div>';
    		$subject = 'Письмо директору от: '.$email;
    
    		$mail = new Mail();
    
    		$mail->protocol = $this->config->get('config_mail_protocol');
    		$mail->parameter = $this->config->get('config_mail_parameter');
    		$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
    		$mail->smtp_username = $this->config->get('config_mail_smtp_username');
    		$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
    		$mail->smtp_port = $this->config->get('config_mail_smtp_port');
    		$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');
    
    		$mail->setTo('[email protected]'); // Имейл директора
    		$mail->setFrom($this->config->get('config_email'));
    		$mail->setSender(html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'));
    		$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
    		$mail->setHtml($message);
    		$mail->send();
    
        }			
    }

     

     

    Уверен, что можно было бы где-то что-то упростить, но вариант рабочий. Буду рад услышать критику.

  15. Добрый день коллеги, помогите разобраться.

     

    Придумал себе задачу, сделать JS форму на сайте типа "Письмо директору", с двумя инпутами и кнопкой "ОК". При заполнении полей и нажатии на кнопку должна происходить отправка имейл сообщения.

     

    Почему именно JS , потому что все всплывающие окошки на сайте сделаны через SweetAlert2. 

    Форму сделал соответственно тоже через SweetAlert2, при заполнении полей и нажатии на OK данные с инпутов кодируются в JSON, тут всё работает.

     

    Вот так выглядит форма:

     

     

    <script type="text/javascript">
      window.onload = function () {
        var a = document.getElementById('director');
        a.onclick = function() {
            Swal({
              type: 'warning',
              title: 'Письмо директору',
              html:
                '<input id="swal-input1" class="swal2-input" placeholder="Ваш иемйл">' +
                '<textarea id="swal-textarea1" class="swal2-textarea" placeholder="Введите текст сообщения..." style="display: flex;"></textarea>',          
              showCancelButton: true,
              confirmButtonText: 'Отправить',
              cancelButtonText: 'Отмена',
              preConfirm: function () {
                return new Promise(function (resolve) {
                  resolve([
                    $('#swal-input1').val(),
                    $('#swal-textarea1').val()
                  ])
                })
              },                    
            }).then(function (result) {
              var message = JSON.stringify(result);
            })
    
            return false;
        }
    }
    </script>

     

     

    Собственно, вопрос , а дальше что? Я начал лепить аджакс запрос:

     

              $.ajax({
                  url:"sendmail.php",
                  type: 'POST',
                  data: message,
                  error: true,
                  success:function(message){swal('success')},
                })
            })

    Результат приходит как succes. Создал sendmail.php файл:

     

    <?php
    
    	$message = $_POST['message'];
    
    	$mail = new \Mail();
    	$mail->protocol = $this->config->get('config_mail_protocol');
    	$mail->parameter = $this->config->get('config_mail_parameter');
    	$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
    	$mail->smtp_username = $this->config->get('config_mail_smtp_username');
    	$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
    	$mail->smtp_port = $this->config->get('config_mail_smtp_port');
    	$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');
    
    	$mail->setTo('[email protected]'); // Кому
    	$mail->setFrom($this->config->get('config_email')); // От кого
    	$mail->setSubject("Test mail"); // Тема
    	$mail->setHtml($message); // Текст
    	$mail->send();
    
    ?>

    И тут у меня возникла мысль, что я вообще не той дорогой иду)) 

     

    Уважаемые коллеги, направьте меня на правильный путь. 

    Правильно ли я понял схему, сначала делаю форму, затем формирую ajax запрос в файл sendmail.php, а там ловлю json данные и произвожу отправку? 

     

     

  16. Добрый день, выполнил работу на которую потратил 2 недели, заказчик работу не оплатил, поменял все пароли, на связь не выходит. Классика( 

    Есть данные для подключения к БД (имя БД, логин, пароль) их не меняли это 100%. 

    Опенкарт 2.3. 

    Есть шансы как-то зайти в БД и удалить ее? 

    Зайти в phpmyadmin напрямую нельзя (хостинг дает возможность зайти в PMA только через панель).

    Всю структуру сайта знаю (есть полная копия на локальном сервере).

  17. Добрый день!

    Opencart 2.3 
    Установлен модуль корзины Simple
    Необходимо доработать корзину и внести следующие изменения:
    Вкратце: 

    Добавить столбик "скидка", который будет появляться при определенных условиях
    Сделать правила для столбца "скидка" по которым там будет отображаться сумма с учетом скидки или % скидки.

     

    Полное ТЗ:
     

    Техническое задание:


    1) Необходимо задать правило:
     
    Если (клиент залогинен) или (один из товаров в корзине имеет акцию) или (активирован купон), то:
    [появляется колонка "Скидка"], которая будет располагаться между "Ценой" и "Итого".
    в остальных случаях этой колонки нет.
     
    2) Необходимо задать правило к первой колонке (Цена):
    В любом случае если на товар есть акция, то в колонке Цена указывается обычная цена без учета акции. 
     
    3) В колонке (скидки) будут отображаться все варианты скидок. Правило:
    (не учитывая правила появления этой колонки описанное выше. Нижеследующие правила применяются только если сработало одно из условия для)
     
    Если (клиент залогинен), то: 
    показывает процентный размер скидки и указывется слово "Накопительная" (http://joxi.ru/BA0bWaMtB7BJPm).
     
    Еще Если (к товару применен купон), то
    показывает процентный размер скидки и указывется "код купона" (http://joxi.ru/8238Kgbt6j6nxA), 
     
    Еще Если (товар имеет акцию), то
    показывается процентный размер скидки и указывается "Акция" (http://joxi.ru/a2XYG7xcy5y4DA)
     
    В остальных случаях - прочерк.

     

     

    Есть идеи у кого-нибудь как все это реализовать? И какая будет стоимость работ... 

     

  18. Столкнулся с такой же проблемой на OC2.3 
    Папка с image/cache/products разрастается на глазах, как только достигает больше 600 кэшированых изображений, админка сайта начинает дико тормозить. При этом сам сайт загружается нормально. При работе в админке, удаляю кэш вручную каждые 15-30 минут. Это ведь не нормально? Сейчас вот смотрю 13 118 файлов в image/cache/products и количество ежеминутно растет.  (2,5 тысячи товаров). 
    Посоветуйте что можно проверить? поправить? 

     

    То есть повторюсь, сам сайт работает хорошо, отклик отличный, но вот в админке работать невозможно.

  19. Добрый день!

    Если ошибся разделом форума, то прошу подправить.

     

    Есть проект на OpenCart, но никак не могу довести до ума, требуется комплексная доработка.

    Данную работу я оцениваю в 13 000 руб.
    Расходы на приобретение модулей за мой счет.

    Полное ТЗ будет предоставлено дополнительно.

    OpenCart 2.3 , шаблон не стандартный, делал на заказ, сделана адаптивная верстка (криво и не полностью), но с адаптивом будем разбираться в конце.

     

    Итак, краткое ТЗ. 

     

    CATALOG:

    Фильтр:

    1.1) Необходимо установить подключить модуль MegaFilterPro и вывести его на страницы категории и поиска (обязательно)
    1.2) Настроить его под стиль сайта (фон, шрифт, размер и.т.п.)

     

    Иконки для товаров. 

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

     

    Корзина

    3.1) Предложить какой-либо модуль для оформления заказа на 1-ой странице
    3.2) Установить этот модуль и подключить его, подогнать его под существующую верстку корзины

     

    Модули Оплаты/Доставки

    4.1) Предложить какой-нибудь модуль для добавления свои методов оплаты и доставки (Необходима возможность установки бесплатного порога для доставки) 
    4.2) Установить и подключить, связать с корзиной

     

    Подписка

    5) Сделать возможность подписки на новости и отписки от нее в футере сайта. Возможно найти готовый модуль, подключить его и настроить. 

     

    Новости

    6) Настроить работу новостного блока (стоит модуль SEO CMS, но не понятно где добавлять новости и редактировать их).

     

    Меню

    7) Для английской версии сайта не настроено правильное отображение меню, необходимо доделать.

     

    Быстрый заказ

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

     

    Кнопка "Заказать" и "Предварительный заказ"

    9.1) На главной странице не работают кнопки "В корзину".

    9.2) Предварительный заказ
    9.3) Если товара нет в наличии (на складе "ноль"), то у товара вместо кнопки "в корзину" появляется кнопка "Заказать", серого цвета. 
    9.4) Нажав на кнопку заказа , покупателю показывается окно с такими данными: http://joxi.ru/Q2KqBjVsnDobrj
    9.5) После заполнения данных, клиенту отправляется уведомление, а в админку падает заказ со статусом "Предзаказ". на данный товар

     

    ADMIN: 

     

    Редактирование товара

    1) В редактировании товара, добавить поля (рядом с meta полями) "Текст вверху" и "Текст внизу" - данные из этих полей отображаются в карточке товара в самом верху 

     

    Список заказов

    2) В списке заказов, добавить кнопку "Накладная курьеру". Выделив заказы и нажав на эту кнопку открывается печатная форма (макет покажу, простой) в котором перечисляются выбранные заказы и товарные позиции 

     

    Просмотр заказа

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

    3.2)  В просмотре заказа добавить кнопку "Уведомить об отправке" , при нажатии на кнопку формируется сообщение с возможностью редактирования, в котором указыывается номер заказа и введенный "номер для почты" http://joxi.ru/Dr89OovCxe9qm6  Вот так.

    3.3) После отправки сообщения , рядом с кнопкой появляется галочка (которая означает что клиент уведомлен)

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

    3.5) В просмотре заказа добавить кнопку "Оставить отзыв" , нажав на которую открывается форма для отправки сообщения в которой подхватывается, имя, номер заказа. В форме стоит текст с просьбой оставить отзыв. Текст формы можно менять перед отправкой.


    Все пункты перечислены тезисно, полное задание предоставлю всем кто будет заинтересован в проекте.

    Спасибо! Жду вопросов, уточнений и предложений по работе.

  20. 14 минут назад, ibond сказал:

    Вносите правки в собственном модификаторе, создайте в папке /system/ name.ocmod.xml - поправили файл, обновили модификаторы.

     

    Спасибо! Пробую! 

  21. 12 минут назад, Dotrox сказал:

    Не надо вносить никакие правки в кеше! Как уже было сказано выше - это можно делать только в процессе работы для тестирования, если лень каждый раз обновлять модификаторы в админке. Все правки надо вносить в оригинальные файлы, а затем обновлять кеш и всё.

     

    Отключите все модификаторы, которые трогают эти файлы (если вас устроит, что все эти модули отвалятся).

     

    То что отвалятся модули конечно не устроит

    Спасибо за ответ! Разжевали, теперь понял... :)


×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.