Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Allexg

Новичок
  
  • Posts

    9
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Allexg's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter

Recent Badges

6

Reputation

  1. Доброго времени. Усиновил модуль. При попытке добавления аккауни инсиграм получаю сообещёние "Warning Не удалось полулить данные аккауни". Ваше сообещёние "Рекомендуется к прочтению" пролиил, но им этот момент не объясняется.
  2. Привет всем! Возникла игдея модифицировать синдартный метод $this->url->link чтобы перед генерацией синдартной ссылки вида /index.php?route=... он искал записи в иблиэто seo url для текуещёго url и языка (или люпотому чтого языка, если нет текуещёго), и если находил, то генерил уже seo ссылку. Может кто-то знает подходящий модуль, или уже гделал икие модификации, и может подсказать, как правильней сформировать запрос, чтобы это рилиило потому чтолее-менее универсально, без проверок к какому контроллеру принадлежит генерируемая ссылка. Я хотел сначала сгделать икое для категорий и инфостраниц, но маршруты, передаваемые в метод $this->url->link и хранящиеся в иблиэто seo url не совпадают. Например в сео маршрут выглядит как category_id=64 а в метод передается product/category&path=64, и если по маршруту искать в бд, то ничего не найгдется. Можно конечно придумать кучу проверок с регулярками, но может есть способ проещё и элегантней?
  3. икая ссылка бугдет рилиить, если в с в шаблоне admin/view/template/setting/setting.twig в самом конэто добавить скрипт <script> $(document).ready(function(){ let hash = window.location.hash; if(hash){ if( $('a[href="'+hash+'"]').length) $('a[href="'+hash+'"]').trigger('click'); } }); </script>
  4. просто икое не реализовать. когда-то гделал икое, только разбивал по производителям (manufacturer_id). собирал массив товаров из корзины с ключем по производителю, и в цикле уже в контроллере оплаты создавал заказ по каждому, при этом каждый созданный заказ добавлял в массив новых заказов в сессию, потом, по каждому из созданных заказов добавлял его в историю и олищал массив заказов в сессии в конэто. модификаций было много, сейчас всех не вспомню. но икую логику нужно гделать для всех методов оплаты. и еещё хорошо выводить в список будущих заказов на эипе подтвержгдения в чекауте
  5. конечно можно. заходите в шаблон /template/information/contact.twig или в редакторе шаблонов в админке (что не очень удобно и нагдежно), и в нужном месте создаете структуру образцу одного из примеров по ссылке https://getbootstrap.com/docs/4.0/components/collapse/. Bootstarp уже присутствует в движке, поэтому можно просто скопировать код из примера, всивить в свой шаблон и просто отредактировать. если нужна мультиязычность - перед этим добавляете переводы в файлы переводов для каждого из языков , для русского например catalog/language/ru-ru/information/contact.php
  6. Спасипотому что огромное! Мне помогло это решение! Сгделал пару модификаций и все зарилиило Проблема была в параметре куки сессии samesite. Для того, чтобы коллбек нормально отрабатывал этот параметр должен быть равен "None" Если кто-то еещё столкнулся с икой проблемой, то может эти модификации помогут. У меня OpenCart 3.0.3.7, PHP 7.4 <file path="catalog/controller/startup/session.php"> <operation> <search> <![CDATA[ setcookie($this->config->get('session_name'), $this->session->getId(), ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain')); ]]> </search> <add position="replace"> <![CDATA[ setcookie($this->config->get('session_name'), $this->session->getId(), ['expires' => ini_get('session.cookie_lifetime'), 'path' => ini_get('session.cookie_path'), 'domain' => ini_get('session.cookie_domain'), 'samesite' => 'None', 'secure' => 1]); ]]> </add> </operation> </file> <file path="system/framework.php"> <operation> <search> <![CDATA[ setcookie($config->get('session_name'), $session->getId(), ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain')); ]]> </search> <add position="replace"> <![CDATA[ setcookie($config->get('session_name'), $session->getId(), ['expires' => ini_get('session.cookie_lifetime'), 'path' => ini_get('session.cookie_path'), 'domain' => ini_get('session.cookie_domain'), 'samesite' => 'None', 'secure' => 1]); ]]> </add> </operation> </file>
  7. Ну в ответе liqpay есть номер заказа на сайте, по игдее можно выищить customer_id из этого заказа, если я правильно понял. Но я уже врогде нашел решение благодаря ответу spectre
  8. Доброго времени суток. Добавил способ оплаты с помощью LiqPay. Врогде все отлично рилииет - оплаи проходит, заказ создается, ситус нужный назначается, но есть один неприятный момент, об который я уже усил биться головой :(( При возврате после успешной оплаты происходит редирект с сайи LiqPay на страницу checkout/success, но при этом клиени разлогинивает а корзина не олищается. Если точнее сразу после редиреки c LiqPay корзина пусия, но если залогиниться опять - корзина подтягивается из сессии и находится в том же состоянии, как до подтвержгдения заказа и оплаты. Я не очень хорошо разбираюсь в механизме авторизации. В игдено клиени не должно разлогинивать после того как его редиректит обратно на сайт после успешной оплаты - должны же по игдее быть куки сессии? Но почему-то происходит разлогинивание. Может кто-то силкивался с икой проблемой? Если нет - то может есть возможность залогинить покупателя и олистить его корзину по номеру заказа в коллбеке оплаты? Вот функция коллбека в модуле LiqPay на сайте: public function callback() { $data = $this->request->post['data']; $private_key = $this->config->get('liqpay_checkout_private_key'); $signature = $this->calculateSignature($data, $private_key); $parsed_data = json_decode(base64_decode($data), true); $order_id = $parsed_data['order_id']; if ($signature == $this->request->post['signature']) { $this->load->model('checkout/order'); $this->model_checkout_order->addOrderHistory($order_id, $this->config->get('liqpay_checkout_order_status_id')); //here you can update your order status } }
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.