maxximum Опубліковано: 28 січня 2019 Share Опубліковано: 28 січня 2019 Здравствуйте! Хотели бы подключить сторонний обработчик заказов к магазину на ocStore 2.3.0.2.3 Для этого дается javascript код, который просят вставить на страницу успешного оформления заказа (success.php или тому подобную). Посмотрел, погуглил, и возникло пару вопросов: 1) Куда лучше вставить - в код файла /template/common/success.tpl или в language\russian\checkout\success.php или в catalog/controller/checkout/success.php ? 2) А второй - там просят в в параметрах передать цену {price}, номер заказа и еще что-то. А через какие переменные можно получить эти данные? И опять-таки, в каком файле это лучше сделать, чтобы он понял, что это за переменные? Надіслати Поділитися на інших сайтах More sharing options...
spectre Опубліковано: 28 січня 2019 Share Опубліковано: 28 січня 2019 в success php проверяете есть ли еще order_id в сессии, если есть - подгружаете заказ, формируете код в success.tpl - если есть код - выводите Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 28 січня 2019 Автор Share Опубліковано: 28 січня 2019 А success php какой именно - который language\russian\checkout\success.php или catalog/controller/checkout/success.php ? А в success.tpl - есть код <?php echo $header; ?> <div class="container"> <ul class="breadcrumb"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li> <?php } ?> </ul> <div class="row"><?php echo $column_left; ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <h1><?php echo $heading_title; ?> Успешно!</h1> <?php echo $text_message; ?> <div class="buttons"> <div class="pull-right"><a href="<?php echo $continue; ?>" class="btn btn-primary"><?php echo $button_continue; ?></a></div> </div> <?php echo $content_bottom; ?></div> <?php echo $column_right; ?></div> </div> <script type="text/javascript"> ... .. . </script> <?php echo $footer; ?> И вот думал, как в примере написал, перед echo footer вставить этот <script>, но не уверен, будет ли он там работать, и вообще корректно ли это Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 28 січня 2019 Share Опубліковано: 28 січня 2019 16 минут назад, maxximum сказал: И вот думал, как в примере написал, перед echo footer вставить этот <script>, но не уверен, будет ли он там работать, и вообще корректно ли это Будет работать. Если в контроллере найдутся все необходимые скрипту переменные. Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 29 січня 2019 Автор Share Опубліковано: 29 січня 2019 А не подскажите, какая переменная отвечает за цену? Даже не цену, а общую стоимость заказа? Или может цены отдельно взятых товаров в заказе, потом их сложить просто. Поискал в controller/checkout/success.php, нашел там упоминается $this->session->data['order_id'], которая как я понимаю id заказа содержит. А вот data['price'] или data['cost'] не нашел что-то Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 29 січня 2019 Share Опубліковано: 29 січня 2019 смотрите total Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 29 січня 2019 Автор Share Опубліковано: 29 січня 2019 @Vetroff ,@AlexDW - Спасибо! Более-менее разобрался, но не до конца. Нашел в controller/checkout/success.php строки <?php unset($this->session->data['order_id']); unset($this->session->data['coupon']); unset($this->session->data['reward']); unset($this->session->data['voucher']); unset($this->session->data['vouchers']); unset($this->session->data['totals']); Закомментировал order_id и totals. А потом внизу нашел, что объявляются переменные и по аналогии дописал свои строки <?php $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $data['totaly'] = $this->session->data['totals']; //по идее сумма $data['order_idsh'] = $this->session->data['order_id']; //вроде номер заказа И потом в /template/common/success.tpl попробовал вывести эти переменные Номер заказа: <?php echo $order_idsh; ?><br> Общая сумма: <?php echo $totaly; ?> И получилось частично - $order_idsh вывела нормально номер заказа, а вот $totaly - ничего не вывела: http://prntscr.com/mdv3zl Подскажите, почему так? Может я как-то не так к переменной обращаюсь? Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 29 січня 2019 Share Опубліковано: 29 січня 2019 выведите в шаблоне переменную через print_r или var_dump и увидите что внутри ) Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 31 січня 2019 Автор Share Опубліковано: 31 січня 2019 @Vetroff вывели переменную, а внутри - пустота (NULL) Многого это не объяснило, честно говоря, ну по крайней мере то, что видимо другую переменную нужно брать. Но вот какую? Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 31 січня 2019 Автор Share Опубліковано: 31 січня 2019 Поискал еще, нашел что в теме @Tom Советует установить модуль Checkout-detail.ocmod.xml Не знаю, то ли это решение, что мне нужно, но попробую, тк пока больше способов получить итоговую сумму не нашел. Прочитал даже статью про все переменные Opencart, http://s-engineer.ru/peremennye-cms-opencart/ но даже там про total ничего не упоминается! Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 1 лютого 2019 Автор Share Опубліковано: 1 лютого 2019 (змінено) Установил модуль Checkout-detail.ocmod.xml - после этого в массиве $total появились значения. Там еще отделитель от валюты и пробелов нужно, но это уже детали. А такой вопрос еще - а можно ли как-то получить отдельно сумму заказа и сумма доставки? В том, что выводит модуль это называется Предварительная стоимость http://prntscr.com/mf80uy Можно ли ее как-то получить? Тк в массиве $total уже общая сумма с доставкой Змінено 1 лютого 2019 користувачем maxximum Надіслати Поділитися на інших сайтах More sharing options... thentru Опубліковано: 1 лютого 2019 Share Опубліковано: 1 лютого 2019 2 часа назад, maxximum сказал: А такой вопрос еще - а можно ли как-то получить отдельно сумму заказа и сумма доставки? Сумма всего заказа это $order['total'] Сумму доставки можно получить по коду итога shipping перебрав массив $totals Получить можно так, передав номер заказа $totals = $this->model_account_order->getOrderTotals($order_id); Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... maxximum Опубліковано: 12 лютого 2019 Автор Share Опубліковано: 12 лютого 2019 @thentru Спасибо! Нашел сумму доставки в виде цифры в итоге так: <?php $totalar = explode(" ", $totals[0]['text']); $chisel = count($totalar); if ($chisel > 2) $summa = intval($totalar[0].$totalar[1]); if ($chisel <= 2) $summa = intval($totalar[0]); ?> пришлось несколько подумать, чтобы извлечь именно цифру, а не "1 690 руб" и еще подумать, что делать с пробелами в цифрах, но в итоге вроде получилось Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 12 лютого 2019 Share Опубліковано: 12 лютого 2019 40 минут назад, maxximum сказал: Нашел сумму доставки в виде цифры в итоге так: Омг ) Это вот то, что называется "Операция на глазах через задний проход" Без обид ) Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да никаких обид ) Я специально выложил, чтобы и другие подивились. Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 13 лютого 2019 Share Опубліковано: 13 лютого 2019 40 минут назад, maxximum сказал: Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Ну согласитесь, разбираясь самостоятельно вы получили гораздо больше знаний, чем прост скопипастив готовое решение В контроллере, как написали выше, можно получить массив totals используя функцию getOrderTotals, т.е. закомментируем // unset($this->session->data['order_id']); добавляем ниже $this->load->model('account/order'); $totals = $this->model_account_order->getOrderTotals($this->session->data['order_id']); и в массиве мы имеем (в дефолтной конфигурации модулей) данные о предварительной стоимости, стоимости доставки и итого. увидеть это на период разработки можно, например, так print('<pre>'); print_r($totals); print('</pre>'); Дальше, если особо не заморачиваться, можно тупо номеру элемента массива получить их значения $sub_total = $totals[0]['value']; // предв. стоимость $shipping = $totals[1]['value']; // стоимость доставки $total = $totals[2]['value']; // итого ЗЫ. Это без установки описанного выше модификатора, если других данных не нужно. Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да, на счет знаний и опыта согласны ) Спасибо за подробное объяснение! Попробуем тогда по этому методу ) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Налаштування та оптимізація Добавить код javascript на страницу успешного оформления заказа Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
maxximum Опубліковано: 28 січня 2019 Автор Share Опубліковано: 28 січня 2019 А success php какой именно - который language\russian\checkout\success.php или catalog/controller/checkout/success.php ? А в success.tpl - есть код <?php echo $header; ?> <div class="container"> <ul class="breadcrumb"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li> <?php } ?> </ul> <div class="row"><?php echo $column_left; ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <h1><?php echo $heading_title; ?> Успешно!</h1> <?php echo $text_message; ?> <div class="buttons"> <div class="pull-right"><a href="<?php echo $continue; ?>" class="btn btn-primary"><?php echo $button_continue; ?></a></div> </div> <?php echo $content_bottom; ?></div> <?php echo $column_right; ?></div> </div> <script type="text/javascript"> ... .. . </script> <?php echo $footer; ?> И вот думал, как в примере написал, перед echo footer вставить этот <script>, но не уверен, будет ли он там работать, и вообще корректно ли это Надіслати Поділитися на інших сайтах More sharing options...
Vetroff Опубліковано: 28 січня 2019 Share Опубліковано: 28 січня 2019 16 минут назад, maxximum сказал: И вот думал, как в примере написал, перед echo footer вставить этот <script>, но не уверен, будет ли он там работать, и вообще корректно ли это Будет работать. Если в контроллере найдутся все необходимые скрипту переменные. Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 29 січня 2019 Автор Share Опубліковано: 29 січня 2019 А не подскажите, какая переменная отвечает за цену? Даже не цену, а общую стоимость заказа? Или может цены отдельно взятых товаров в заказе, потом их сложить просто. Поискал в controller/checkout/success.php, нашел там упоминается $this->session->data['order_id'], которая как я понимаю id заказа содержит. А вот data['price'] или data['cost'] не нашел что-то Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 29 січня 2019 Share Опубліковано: 29 січня 2019 смотрите total Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 29 січня 2019 Автор Share Опубліковано: 29 січня 2019 @Vetroff ,@AlexDW - Спасибо! Более-менее разобрался, но не до конца. Нашел в controller/checkout/success.php строки <?php unset($this->session->data['order_id']); unset($this->session->data['coupon']); unset($this->session->data['reward']); unset($this->session->data['voucher']); unset($this->session->data['vouchers']); unset($this->session->data['totals']); Закомментировал order_id и totals. А потом внизу нашел, что объявляются переменные и по аналогии дописал свои строки <?php $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $data['totaly'] = $this->session->data['totals']; //по идее сумма $data['order_idsh'] = $this->session->data['order_id']; //вроде номер заказа И потом в /template/common/success.tpl попробовал вывести эти переменные Номер заказа: <?php echo $order_idsh; ?><br> Общая сумма: <?php echo $totaly; ?> И получилось частично - $order_idsh вывела нормально номер заказа, а вот $totaly - ничего не вывела: http://prntscr.com/mdv3zl Подскажите, почему так? Может я как-то не так к переменной обращаюсь? Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 29 січня 2019 Share Опубліковано: 29 січня 2019 выведите в шаблоне переменную через print_r или var_dump и увидите что внутри ) Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 31 січня 2019 Автор Share Опубліковано: 31 січня 2019 @Vetroff вывели переменную, а внутри - пустота (NULL) Многого это не объяснило, честно говоря, ну по крайней мере то, что видимо другую переменную нужно брать. Но вот какую? Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 31 січня 2019 Автор Share Опубліковано: 31 січня 2019 Поискал еще, нашел что в теме @Tom Советует установить модуль Checkout-detail.ocmod.xml Не знаю, то ли это решение, что мне нужно, но попробую, тк пока больше способов получить итоговую сумму не нашел. Прочитал даже статью про все переменные Opencart, http://s-engineer.ru/peremennye-cms-opencart/ но даже там про total ничего не упоминается! Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 1 лютого 2019 Автор Share Опубліковано: 1 лютого 2019 (змінено) Установил модуль Checkout-detail.ocmod.xml - после этого в массиве $total появились значения. Там еще отделитель от валюты и пробелов нужно, но это уже детали. А такой вопрос еще - а можно ли как-то получить отдельно сумму заказа и сумма доставки? В том, что выводит модуль это называется Предварительная стоимость http://prntscr.com/mf80uy Можно ли ее как-то получить? Тк в массиве $total уже общая сумма с доставкой Змінено 1 лютого 2019 користувачем maxximum Надіслати Поділитися на інших сайтах More sharing options... thentru Опубліковано: 1 лютого 2019 Share Опубліковано: 1 лютого 2019 2 часа назад, maxximum сказал: А такой вопрос еще - а можно ли как-то получить отдельно сумму заказа и сумма доставки? Сумма всего заказа это $order['total'] Сумму доставки можно получить по коду итога shipping перебрав массив $totals Получить можно так, передав номер заказа $totals = $this->model_account_order->getOrderTotals($order_id); Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... maxximum Опубліковано: 12 лютого 2019 Автор Share Опубліковано: 12 лютого 2019 @thentru Спасибо! Нашел сумму доставки в виде цифры в итоге так: <?php $totalar = explode(" ", $totals[0]['text']); $chisel = count($totalar); if ($chisel > 2) $summa = intval($totalar[0].$totalar[1]); if ($chisel <= 2) $summa = intval($totalar[0]); ?> пришлось несколько подумать, чтобы извлечь именно цифру, а не "1 690 руб" и еще подумать, что делать с пробелами в цифрах, но в итоге вроде получилось Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 12 лютого 2019 Share Опубліковано: 12 лютого 2019 40 минут назад, maxximum сказал: Нашел сумму доставки в виде цифры в итоге так: Омг ) Это вот то, что называется "Операция на глазах через задний проход" Без обид ) Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да никаких обид ) Я специально выложил, чтобы и другие подивились. Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 13 лютого 2019 Share Опубліковано: 13 лютого 2019 40 минут назад, maxximum сказал: Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Ну согласитесь, разбираясь самостоятельно вы получили гораздо больше знаний, чем прост скопипастив готовое решение В контроллере, как написали выше, можно получить массив totals используя функцию getOrderTotals, т.е. закомментируем // unset($this->session->data['order_id']); добавляем ниже $this->load->model('account/order'); $totals = $this->model_account_order->getOrderTotals($this->session->data['order_id']); и в массиве мы имеем (в дефолтной конфигурации модулей) данные о предварительной стоимости, стоимости доставки и итого. увидеть это на период разработки можно, например, так print('<pre>'); print_r($totals); print('</pre>'); Дальше, если особо не заморачиваться, можно тупо номеру элемента массива получить их значения $sub_total = $totals[0]['value']; // предв. стоимость $shipping = $totals[1]['value']; // стоимость доставки $total = $totals[2]['value']; // итого ЗЫ. Это без установки описанного выше модификатора, если других данных не нужно. Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да, на счет знаний и опыта согласны ) Спасибо за подробное объяснение! Попробуем тогда по этому методу ) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Налаштування та оптимізація Добавить код javascript на страницу успешного оформления заказа Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
maxximum Опубліковано: 29 січня 2019 Автор Share Опубліковано: 29 січня 2019 А не подскажите, какая переменная отвечает за цену? Даже не цену, а общую стоимость заказа? Или может цены отдельно взятых товаров в заказе, потом их сложить просто. Поискал в controller/checkout/success.php, нашел там упоминается $this->session->data['order_id'], которая как я понимаю id заказа содержит. А вот data['price'] или data['cost'] не нашел что-то Надіслати Поділитися на інших сайтах More sharing options...
AlexDW Опубліковано: 29 січня 2019 Share Опубліковано: 29 січня 2019 смотрите total Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 29 січня 2019 Автор Share Опубліковано: 29 січня 2019 @Vetroff ,@AlexDW - Спасибо! Более-менее разобрался, но не до конца. Нашел в controller/checkout/success.php строки <?php unset($this->session->data['order_id']); unset($this->session->data['coupon']); unset($this->session->data['reward']); unset($this->session->data['voucher']); unset($this->session->data['vouchers']); unset($this->session->data['totals']); Закомментировал order_id и totals. А потом внизу нашел, что объявляются переменные и по аналогии дописал свои строки <?php $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $data['totaly'] = $this->session->data['totals']; //по идее сумма $data['order_idsh'] = $this->session->data['order_id']; //вроде номер заказа И потом в /template/common/success.tpl попробовал вывести эти переменные Номер заказа: <?php echo $order_idsh; ?><br> Общая сумма: <?php echo $totaly; ?> И получилось частично - $order_idsh вывела нормально номер заказа, а вот $totaly - ничего не вывела: http://prntscr.com/mdv3zl Подскажите, почему так? Может я как-то не так к переменной обращаюсь? Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 29 січня 2019 Share Опубліковано: 29 січня 2019 выведите в шаблоне переменную через print_r или var_dump и увидите что внутри ) Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 31 січня 2019 Автор Share Опубліковано: 31 січня 2019 @Vetroff вывели переменную, а внутри - пустота (NULL) Многого это не объяснило, честно говоря, ну по крайней мере то, что видимо другую переменную нужно брать. Но вот какую? Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 31 січня 2019 Автор Share Опубліковано: 31 січня 2019 Поискал еще, нашел что в теме @Tom Советует установить модуль Checkout-detail.ocmod.xml Не знаю, то ли это решение, что мне нужно, но попробую, тк пока больше способов получить итоговую сумму не нашел. Прочитал даже статью про все переменные Opencart, http://s-engineer.ru/peremennye-cms-opencart/ но даже там про total ничего не упоминается! Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 1 лютого 2019 Автор Share Опубліковано: 1 лютого 2019 (змінено) Установил модуль Checkout-detail.ocmod.xml - после этого в массиве $total появились значения. Там еще отделитель от валюты и пробелов нужно, но это уже детали. А такой вопрос еще - а можно ли как-то получить отдельно сумму заказа и сумма доставки? В том, что выводит модуль это называется Предварительная стоимость http://prntscr.com/mf80uy Можно ли ее как-то получить? Тк в массиве $total уже общая сумма с доставкой Змінено 1 лютого 2019 користувачем maxximum Надіслати Поділитися на інших сайтах More sharing options... thentru Опубліковано: 1 лютого 2019 Share Опубліковано: 1 лютого 2019 2 часа назад, maxximum сказал: А такой вопрос еще - а можно ли как-то получить отдельно сумму заказа и сумма доставки? Сумма всего заказа это $order['total'] Сумму доставки можно получить по коду итога shipping перебрав массив $totals Получить можно так, передав номер заказа $totals = $this->model_account_order->getOrderTotals($order_id); Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... maxximum Опубліковано: 12 лютого 2019 Автор Share Опубліковано: 12 лютого 2019 @thentru Спасибо! Нашел сумму доставки в виде цифры в итоге так: <?php $totalar = explode(" ", $totals[0]['text']); $chisel = count($totalar); if ($chisel > 2) $summa = intval($totalar[0].$totalar[1]); if ($chisel <= 2) $summa = intval($totalar[0]); ?> пришлось несколько подумать, чтобы извлечь именно цифру, а не "1 690 руб" и еще подумать, что делать с пробелами в цифрах, но в итоге вроде получилось Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 12 лютого 2019 Share Опубліковано: 12 лютого 2019 40 минут назад, maxximum сказал: Нашел сумму доставки в виде цифры в итоге так: Омг ) Это вот то, что называется "Операция на глазах через задний проход" Без обид ) Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да никаких обид ) Я специально выложил, чтобы и другие подивились. Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 13 лютого 2019 Share Опубліковано: 13 лютого 2019 40 минут назад, maxximum сказал: Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Ну согласитесь, разбираясь самостоятельно вы получили гораздо больше знаний, чем прост скопипастив готовое решение В контроллере, как написали выше, можно получить массив totals используя функцию getOrderTotals, т.е. закомментируем // unset($this->session->data['order_id']); добавляем ниже $this->load->model('account/order'); $totals = $this->model_account_order->getOrderTotals($this->session->data['order_id']); и в массиве мы имеем (в дефолтной конфигурации модулей) данные о предварительной стоимости, стоимости доставки и итого. увидеть это на период разработки можно, например, так print('<pre>'); print_r($totals); print('</pre>'); Дальше, если особо не заморачиваться, можно тупо номеру элемента массива получить их значения $sub_total = $totals[0]['value']; // предв. стоимость $shipping = $totals[1]['value']; // стоимость доставки $total = $totals[2]['value']; // итого ЗЫ. Это без установки описанного выше модификатора, если других данных не нужно. Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да, на счет знаний и опыта согласны ) Спасибо за подробное объяснение! Попробуем тогда по этому методу ) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Налаштування та оптимізація Добавить код javascript на страницу успешного оформления заказа Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000
maxximum Опубліковано: 29 січня 2019 Автор Share Опубліковано: 29 січня 2019 @Vetroff ,@AlexDW - Спасибо! Более-менее разобрался, но не до конца. Нашел в controller/checkout/success.php строки <?php unset($this->session->data['order_id']); unset($this->session->data['coupon']); unset($this->session->data['reward']); unset($this->session->data['voucher']); unset($this->session->data['vouchers']); unset($this->session->data['totals']); Закомментировал order_id и totals. А потом внизу нашел, что объявляются переменные и по аналогии дописал свои строки <?php $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $data['totaly'] = $this->session->data['totals']; //по идее сумма $data['order_idsh'] = $this->session->data['order_id']; //вроде номер заказа И потом в /template/common/success.tpl попробовал вывести эти переменные Номер заказа: <?php echo $order_idsh; ?><br> Общая сумма: <?php echo $totaly; ?> И получилось частично - $order_idsh вывела нормально номер заказа, а вот $totaly - ничего не вывела: http://prntscr.com/mdv3zl Подскажите, почему так? Может я как-то не так к переменной обращаюсь? Надіслати Поділитися на інших сайтах More sharing options...
Vetroff Опубліковано: 29 січня 2019 Share Опубліковано: 29 січня 2019 выведите в шаблоне переменную через print_r или var_dump и увидите что внутри ) Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 31 січня 2019 Автор Share Опубліковано: 31 січня 2019 @Vetroff вывели переменную, а внутри - пустота (NULL) Многого это не объяснило, честно говоря, ну по крайней мере то, что видимо другую переменную нужно брать. Но вот какую? Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 31 січня 2019 Автор Share Опубліковано: 31 січня 2019 Поискал еще, нашел что в теме @Tom Советует установить модуль Checkout-detail.ocmod.xml Не знаю, то ли это решение, что мне нужно, но попробую, тк пока больше способов получить итоговую сумму не нашел. Прочитал даже статью про все переменные Opencart, http://s-engineer.ru/peremennye-cms-opencart/ но даже там про total ничего не упоминается! Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 1 лютого 2019 Автор Share Опубліковано: 1 лютого 2019 (змінено) Установил модуль Checkout-detail.ocmod.xml - после этого в массиве $total появились значения. Там еще отделитель от валюты и пробелов нужно, но это уже детали. А такой вопрос еще - а можно ли как-то получить отдельно сумму заказа и сумма доставки? В том, что выводит модуль это называется Предварительная стоимость http://prntscr.com/mf80uy Можно ли ее как-то получить? Тк в массиве $total уже общая сумма с доставкой Змінено 1 лютого 2019 користувачем maxximum Надіслати Поділитися на інших сайтах More sharing options... thentru Опубліковано: 1 лютого 2019 Share Опубліковано: 1 лютого 2019 2 часа назад, maxximum сказал: А такой вопрос еще - а можно ли как-то получить отдельно сумму заказа и сумма доставки? Сумма всего заказа это $order['total'] Сумму доставки можно получить по коду итога shipping перебрав массив $totals Получить можно так, передав номер заказа $totals = $this->model_account_order->getOrderTotals($order_id); Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... maxximum Опубліковано: 12 лютого 2019 Автор Share Опубліковано: 12 лютого 2019 @thentru Спасибо! Нашел сумму доставки в виде цифры в итоге так: <?php $totalar = explode(" ", $totals[0]['text']); $chisel = count($totalar); if ($chisel > 2) $summa = intval($totalar[0].$totalar[1]); if ($chisel <= 2) $summa = intval($totalar[0]); ?> пришлось несколько подумать, чтобы извлечь именно цифру, а не "1 690 руб" и еще подумать, что делать с пробелами в цифрах, но в итоге вроде получилось Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 12 лютого 2019 Share Опубліковано: 12 лютого 2019 40 минут назад, maxximum сказал: Нашел сумму доставки в виде цифры в итоге так: Омг ) Это вот то, что называется "Операция на глазах через задний проход" Без обид ) Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да никаких обид ) Я специально выложил, чтобы и другие подивились. Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 13 лютого 2019 Share Опубліковано: 13 лютого 2019 40 минут назад, maxximum сказал: Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Ну согласитесь, разбираясь самостоятельно вы получили гораздо больше знаний, чем прост скопипастив готовое решение В контроллере, как написали выше, можно получить массив totals используя функцию getOrderTotals, т.е. закомментируем // unset($this->session->data['order_id']); добавляем ниже $this->load->model('account/order'); $totals = $this->model_account_order->getOrderTotals($this->session->data['order_id']); и в массиве мы имеем (в дефолтной конфигурации модулей) данные о предварительной стоимости, стоимости доставки и итого. увидеть это на период разработки можно, например, так print('<pre>'); print_r($totals); print('</pre>'); Дальше, если особо не заморачиваться, можно тупо номеру элемента массива получить их значения $sub_total = $totals[0]['value']; // предв. стоимость $shipping = $totals[1]['value']; // стоимость доставки $total = $totals[2]['value']; // итого ЗЫ. Это без установки описанного выше модификатора, если других данных не нужно. Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да, на счет знаний и опыта согласны ) Спасибо за подробное объяснение! Попробуем тогда по этому методу ) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Налаштування та оптимізація Добавить код javascript на страницу успешного оформления заказа
maxximum Опубліковано: 31 січня 2019 Автор Share Опубліковано: 31 січня 2019 @Vetroff вывели переменную, а внутри - пустота (NULL) Многого это не объяснило, честно говоря, ну по крайней мере то, что видимо другую переменную нужно брать. Но вот какую? Надіслати Поділитися на інших сайтах More sharing options...
maxximum Опубліковано: 31 січня 2019 Автор Share Опубліковано: 31 січня 2019 Поискал еще, нашел что в теме @Tom Советует установить модуль Checkout-detail.ocmod.xml Не знаю, то ли это решение, что мне нужно, но попробую, тк пока больше способов получить итоговую сумму не нашел. Прочитал даже статью про все переменные Opencart, http://s-engineer.ru/peremennye-cms-opencart/ но даже там про total ничего не упоминается! Надіслати Поділитися на інших сайтах More sharing options...
maxximum Опубліковано: 1 лютого 2019 Автор Share Опубліковано: 1 лютого 2019 (змінено) Установил модуль Checkout-detail.ocmod.xml - после этого в массиве $total появились значения. Там еще отделитель от валюты и пробелов нужно, но это уже детали. А такой вопрос еще - а можно ли как-то получить отдельно сумму заказа и сумма доставки? В том, что выводит модуль это называется Предварительная стоимость http://prntscr.com/mf80uy Можно ли ее как-то получить? Тк в массиве $total уже общая сумма с доставкой Змінено 1 лютого 2019 користувачем maxximum Надіслати Поділитися на інших сайтах More sharing options...
thentru Опубліковано: 1 лютого 2019 Share Опубліковано: 1 лютого 2019 2 часа назад, maxximum сказал: А такой вопрос еще - а можно ли как-то получить отдельно сумму заказа и сумма доставки? Сумма всего заказа это $order['total'] Сумму доставки можно получить по коду итога shipping перебрав массив $totals Получить можно так, передав номер заказа $totals = $this->model_account_order->getOrderTotals($order_id); Надіслати Поділитися на інших сайтах More sharing options...
maxximum Опубліковано: 12 лютого 2019 Автор Share Опубліковано: 12 лютого 2019 @thentru Спасибо! Нашел сумму доставки в виде цифры в итоге так: <?php $totalar = explode(" ", $totals[0]['text']); $chisel = count($totalar); if ($chisel > 2) $summa = intval($totalar[0].$totalar[1]); if ($chisel <= 2) $summa = intval($totalar[0]); ?> пришлось несколько подумать, чтобы извлечь именно цифру, а не "1 690 руб" и еще подумать, что делать с пробелами в цифрах, но в итоге вроде получилось Надіслати Поділитися на інших сайтах More sharing options...
Vetroff Опубліковано: 12 лютого 2019 Share Опубліковано: 12 лютого 2019 40 минут назад, maxximum сказал: Нашел сумму доставки в виде цифры в итоге так: Омг ) Это вот то, что называется "Операция на глазах через задний проход" Без обид ) Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да никаких обид ) Я специально выложил, чтобы и другие подивились. Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Надіслати Поділитися на інших сайтах More sharing options... Vetroff Опубліковано: 13 лютого 2019 Share Опубліковано: 13 лютого 2019 40 минут назад, maxximum сказал: Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Ну согласитесь, разбираясь самостоятельно вы получили гораздо больше знаний, чем прост скопипастив готовое решение В контроллере, как написали выше, можно получить массив totals используя функцию getOrderTotals, т.е. закомментируем // unset($this->session->data['order_id']); добавляем ниже $this->load->model('account/order'); $totals = $this->model_account_order->getOrderTotals($this->session->data['order_id']); и в массиве мы имеем (в дефолтной конфигурации модулей) данные о предварительной стоимости, стоимости доставки и итого. увидеть это на период разработки можно, например, так print('<pre>'); print_r($totals); print('</pre>'); Дальше, если особо не заморачиваться, можно тупо номеру элемента массива получить их значения $sub_total = $totals[0]['value']; // предв. стоимость $shipping = $totals[1]['value']; // стоимость доставки $total = $totals[2]['value']; // итого ЗЫ. Это без установки описанного выше модификатора, если других данных не нужно. Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да, на счет знаний и опыта согласны ) Спасибо за подробное объяснение! Попробуем тогда по этому методу ) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да никаких обид ) Я специально выложил, чтобы и другие подивились. Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Надіслати Поділитися на інших сайтах More sharing options...
Vetroff Опубліковано: 13 лютого 2019 Share Опубліковано: 13 лютого 2019 40 минут назад, maxximum сказал: Я просто спрашивал-спрашивал, но никто конкретно решения не написал, только намеками и часть пути. Ну и пришлось достраивать, как умею ) Если вы покажите свой вариант решения, более верный, будет интересно сравнить Ну согласитесь, разбираясь самостоятельно вы получили гораздо больше знаний, чем прост скопипастив готовое решение В контроллере, как написали выше, можно получить массив totals используя функцию getOrderTotals, т.е. закомментируем // unset($this->session->data['order_id']); добавляем ниже $this->load->model('account/order'); $totals = $this->model_account_order->getOrderTotals($this->session->data['order_id']); и в массиве мы имеем (в дефолтной конфигурации модулей) данные о предварительной стоимости, стоимости доставки и итого. увидеть это на период разработки можно, например, так print('<pre>'); print_r($totals); print('</pre>'); Дальше, если особо не заморачиваться, можно тупо номеру элемента массива получить их значения $sub_total = $totals[0]['value']; // предв. стоимость $shipping = $totals[1]['value']; // стоимость доставки $total = $totals[2]['value']; // итого ЗЫ. Это без установки описанного выше модификатора, если других данных не нужно. Надіслати Поділитися на інших сайтах More sharing options... maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да, на счет знаний и опыта согласны ) Спасибо за подробное объяснение! Попробуем тогда по этому методу ) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
maxximum Опубліковано: 13 лютого 2019 Автор Share Опубліковано: 13 лютого 2019 @Vetroff, да, на счет знаний и опыта согласны ) Спасибо за подробное объяснение! Попробуем тогда по этому методу ) Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts