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

Sharapov317

Користувачі
  
  • Публікації

    50
  • З нами

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

Усі публікації користувача Sharapov317

  1. В контроллере URL формируется в массиве результатов таким образом: $data['products'][] = array( 'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']) ); В шаблоне выводится как $product['href'] В catalog/model/checkout/order.php есть только один массив с товарами - попробовал добавить туда: так 'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']) и так 'href' => $this->url->link('product/product', 'product_id=' . $product['product_id']), Пока ничего не получилось
  2. Что-то не получается пока разобраться( Скачал Ocstore по ссылке ,правда там версия 3, но это не так важно. Открываю catalog\view\theme\default\template\common\success.twig там выводится строка с сообщением {{ text_message }}, значит ищем ее в контроллере. Открываю catalog\controller\checkout\success.php этой строкой мы получаем номер заказа: $this->session->data['last_order_id'] = $this->session->data['order_id']; У меня есть номер заказа, правда я его получаю иначе (выше в первом сообщении есть). Теперь ниже в файле есть вывод переменной text_message: if ($this->customer->isLogged() && !empty($this->session->data['last_order_id'])) { $data['text_message'] = sprintf($this->language->get('text_customer'), $this->url->link('account/order/info&order_id=' . $this->session->data['last_order_id'], '', true), $this->url->link('account/account', '', true), $this->url->link('account/order', '', true), $this->url->link('information/contact'), $this->url->link('product/special'), $this->session->data['last_order_id'], $this->url->link('account/download', '', true)); } else { $data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact')); } Но здесь ведь нет ссылок на заказанные товары. Для вывода информации о заказе я использую такой код с циклом: <p>Заказ №<?php echo $info_order_data['order_id']; ?></p> <p>Телефон покупателя: <?php echo $info_order_data['telephone']; ?></p> <p>Заказанные позиции:</p> <ul> <?php foreach($info_order_data['products'] as $product) { ?> <li><?php echo $product['quantity']; ?> шт x <?php $roundproduct=round($product['price']); echo $roundproduct; ?> грн (<?php echo $product['name']; ?>)</li> <?php } ?> </ul> <p>Cумма заказа: <?php $roundtotal=round($info_order_data['total']); echo $roundtotal; ?> грн</p> В самом файле catalog/model/checkout/order.php в массиве заказанных позиций нет ссылки на товар. Возможно надо ее туда добавить, но я не пойму как правильно ее сформировать.
  3. Если я правильно понял, то при этом методе человек должен быть зарегистрирован. Мне нужно вывести информацию не зарегистрированному пользователю сразу после заказа. Ну или я неправильно понял)
  4. Здравствуйте, уважаемые форумчане. Просьба помочь с получением url товаров на странице успешного оформления заказа. Сейчас я вывожу для клиента информацию о его заказе, то есть вывожу после заказа: номер заказа товары с ценой общую сумму Не могу понять как на товар установить ссылку, чтобы можно было перейти на этот товар в магазине. Информация о заказе пропадает после обновления страницы, а клиенты снова хотят посмотреть описание товара и им приходится искать на сайте снова. Вот такой вопрос, надеюсь не сложный для опытных В коде ниже окмод ,которым получаю информацию о заказе и позициях <file path="catalog/model/checkout/order.php"> <operation><!-- получаем номер заказа --> <search><![CDATA[ public function getOrder($order_id) { ]]> </search> <add position="before"><![CDATA[ public function getOrderProducts($order_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'"); return $query->rows; } ]]> </add> </operation> </file> <file path="catalog/controller/checkout/success.php"> <operation><!-- получаем товары в заказе --> <search><![CDATA[ if (isset($this->session->data['order_id'])) { ]]> </search> <add position="after"><![CDATA[ $this->load->model('checkout/order'); $data['info_order_data'] = $this->model_checkout_order->getOrder($this->session->data['order_id']); $data['info_order_data']['products'] = $this->model_checkout_order->getOrderProducts($this->session->data['order_id']); ]]> </add> </operation> </file>
  5. Благодарю @spectre! , Вы очень помогли! Для тех, кто не сразу понял как это сделать. По шагам. В файле catalog/model/checkout/order.php В блоке функции public function addOrder($data) { … заменить кусок кода comment = '" . $this->db->escape($data['comment']) на comment = '" . $this->db->escape($data['comment'] .= $data['shipping_method'])
  6. Здравствуйте, уважаемые пользователи! Прошу помочь, если знаете как. Требуется добавить в комментарий к заказу название способа доставки, чтобы эта информация попала историю заказа. Зачем. У меня есть интеграция с 1С и в нее передается поле комментария, по которому можно в самой 1С выбрать доставку. Info: Opencart 2.3.0.2, Unishop, Simple
  7. Здравствуйте! Подскажите, Вы не планируете "усовершенствовать" так сказать шаблон для пользователей больших экранов? Уже много пользователей сидят на разрешении от 1400 и шаблон узковат. Хотелось бы чтоб он растягивался и товары перестраивались 4-5 в ряд. Спасибо
  8. Приветствую, форумчане! С наступившим новым Годом! Так и вопрос как их можно сформировать? Вы имеете ввиду настраивать правила в Мерчант центре? Хотя не пойму как это можно сделать. Отклоненные товары будут висеть и если их будет много аккаунт могут забанить.
  9. Приветствую, форумчане! Настроил наконец-то стандартный Google Base в Opencart 2.3.0.2 Есть вопрос, как сделать так, чтобы не все товары подгружались, а только избранные. Если не решение, то хотя бы подсказки как лучше это сделать. У меня пока только 1 вариант - использовать одно из пустых полей в товаре и сравнивать есть ли там нужное значение - тогда уже выводить. Но поля могут быть по разному заполнены в зависимости от тематики магазина. Желательно придумать универсальное решение
  10. В общем разобрался сам. Кому нужно вот решение. У меня на сайте стоит модуль Всплывающей корзины, поэтому событие нужно добавлять в него. В файле catalog/view/javascript/popupcart.js в блоке if (json['success']) { добавить строку: dataLayer.push({'event': 'gtm-add-to-cart'}); Теперь в GTM создать тег Добавление в корзину (выбираем событие и пишем категорию и действие) с триггером пользовательское событие (имя события - gtm-add-to-cart) Дублируем цель в аналитикс Все кнопки Купить (в товаре, в рекомендуемых товарах, категории, сравнении, модулях хиты, новые, рекомендуемые) засчитываются На чистом Опенкарт не проверял, но думаю там нужно внести те же изменения только в файл common.js
  11. Здравствуйте, уважаемые форумчане! Просьба помочь с вроде бы простым действием. Задумал добавить на сайт целевое действие Добавление товара в корзину, но уже что то запарился с перебором разных способов. Гугл аналитик подключен к сайту через GTM. Я в файле catalog/view/javascript/common.js после if (json['success']) { добавляю код события dataLayer.push({'event':'gtm-add-to-cart'}); толи не туда добавляю, то ли код нужен другой пробовал создать контейнер первоначально, если его нет window.dataLayer = window.dataLayer || [] тоже не работает, я не вижу срабатывание триггера событий в GTM Помогите! opencart 2.3.0.2
  12. Для пользователя после оформления заказа можно вывести информацию о заказе: типа номер заказа, заказал то-то за столько то
  13. В общем отличный модуль! Не хватает только странички success.tpl и точно везде можно вывести
  14. Ура, разобрался) Спасибо за помощь @PaulKravchenko
  15. О, спасибо друг) Сейчас буду разбираться. Limit это видимо количество замен в ocmod?
  16. Здравствуйте, уважаемые форумчане! Подскажите решение сложного для меня вопроса. Нужно в админпанели в заказах при нажатии кнопки информация о заказе добавить столбик SKU для заказанных товаров (скрин прилагаю) Я смог добавить столбик и перевод, но сама переменная не определена. Если в фале admin/controller/sale/order.php после $data['products'][] = array( 'order_product_id' => $product['order_product_id'], 'product_id' => $product['product_id'], 'name' => $product['name'], 'model' => $product['model'], добавить 'sku' => $product['sku'], то переменная не определяется Судя по коду чуть выше $data['products'] = array(); $products = $this->model_sale_order->getOrderProducts($this->request->get['order_id']); данные берутся из модели sale order с помощью функции для получения данных из базы, но в таблице OrderProducts нет SKU Как его получить собственно? Не понимаю к сожалению как связывать данные из разных таблиц. Спасибо за помощь
  17. Спасибо @seriusis, но так я уже пробовал. Попробовал еще раз, вдруг код с ошибкой написал. добавил в catalog/model/checkout/order.php 'product_id' => $product['product_id'], перед 'name' => $product['name'], добавил в контроллер $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product['product_id']); и при попытке вывести переменную <?php echo $product_info['sku'] ?> ошибка, что она не определена, равно как и product Notice: Undefined variable: product_info in /system/storage/modification/catalog/view/theme/*/template/common/success.tpl on line 4 Notice: Undefined variable: product in /system/storage/modification/catalog/controller/checkout/success.php on line 12
  18. В таблице order_product уже есть значение id заказанного продукта Его можно добавить в массиве catalog/model/checkout/order.php 'product_id' => $product['product_id'], 'name' => $product['name'], А вот как теперь по этому ID товара вывести SKU товара я не пойму Сначала наверное в контроллере нужно загрузить модель продуктов $this->load->model('catalog/product'); И теперь.... ХЗ(
  19. ПРИВЕТСТВУЮ! Появилась необходимость отправлять электронную коммерцию. Код, который нашел здесь к сожалению не заработал и я использовал расширение с маркета Правда сначала переделал его на OCMOD. Помогите добавить вывод SKU и категории товара Сейчас код такой в catalog/model/checkout/order.php после public function getOrder($order_id) { public function getOrderProducts($order_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'"); return $query->rows; } в catalog/controller/checkout/success.php после if (isset($this->session->data['order_id'])) { $this->load->model('checkout/order'); $data['data_layer_order_data'] = $this->model_checkout_order->getOrder($this->session->data['order_id']); $data['data_layer_order_data']['products'] = $this->model_checkout_order->getOrderProducts($this->session->data['order_id']); и переменные в success.tpl $data_layer_order_data['order_id'] //номер заказа $data_layer_order_data['total'] //стоимость заказа $product['model'] //модель товара - !не SKU $product['name'] //название товара $product['price'] //цена товара $product['quantity'] //кол-во товара
  20. ПРИВЕТСТВУЮ! Тоже появилась необходимость отправлять электронную коммерцию. Код выше к сожалению не заработал и я использовал расширение с маркета
  21. Здравствуйте! Вставил на своем сайте скрипт попроще. Пример ниже. А как бы так сделать чтобы в визуальный редактор Opencart 2 добавить такую кнопку. Чтобы пользователь не переходил в режим кода, а выделил текст, нажал на кнопочку, например спойлер и этот текст стал скрытым на сайте. Типа того как в редакторе на данном форуме Пример OC2.3.0.2 В файле /catalog/view/theme/*/template/product/product.tpl Добавляем скрипт в самом конце, например перед <?php echo $footer; ?>: Теперь в описании в режиме источник используем такую конструкцию:
  22. Я уже видел данный пример, но к сожалению не разобрался с ним. Жаль что человек который все сделал не поделился полным решением(
  23. Здравствуйте @SirGrey! Если я правильно понял, то в catalog/model/catalog/product.php: public function getMinMaxPrice($data = array(), $type) {... В catalog/controller/product/category.php: $data = array( 'filter... А в шаблоне вывожу так? <?php echo $price['max']; ?>
  24. Приветствую, форумчане! Прошу помощи реализации вывода мин и макс цены товара в категории. Решил добавить микроразметку в категорию товаров, а там как раз нужно найти и подставить эти значения. Задача такая: Вывести мин и макс цену для текущей категории Цена должна быть > 0 (потому что есть товары с нулевой ценой - удалять нельзя, они периодически обновляются) Цена должна учитывать обычную цену, скидки, акции, опции (то есть самая низкая/высокая цена в любом варианте) Количество товара должно быть > 0 (то есть цена только для товаров в наличии) Запрос должен создавать минимум нагрузки на сайт Неделю посидел...немного насидел. Синтаксис запросов почти не понимаю, хотя что то написал) Кто может поправьте как надо. В любом случае за отклик спасибо Сейчас так: Opencart 2.3.0.2 В catalog/model/catalog/product.php ---------- public function getMinPriceFromCategory($category_id) { $query = $this->db->query("SELECT LEAST(p.price,IFNULL(ps.price, p.price)) min_price FROM `" . DB_PREFIX . "category` c RIGHT JOIN `" . DB_PREFIX . "product_to_category` p2c ON p2c.category_id = c.category_id RIGHT JOIN `" . DB_PREFIX . "product` p ON p2c.product_id = p.product_id LEFT JOIN `" . DB_PREFIX . "product_special` ps ON p.product_id = ps.product_id AND ps.date_end >= NOW() AND ps.date_start <= NOW() WHERE c.category_id = " . (int)$category_id . " AND p.status = 1 AND c.status = 1 AND p.price > 0 AND p.quantity > 0 ORDER BY min_price LIMIT 0,1 "); if ($query->num_rows) { return $query->row['min_price']; } else { return 0; } } В catalog/controller/product/category.php ---------- $data['min_price'] = $this->model_catalog_product->getMinPriceFromCategory($category_id); В catalog/view/theme/*/template/product/category.tpl ---------- <?php echo $min_price; ?>
×
×
  • Створити...

Important Information

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