Jump to content

Search the Community

Showing results for tags 'оформление заказа'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Основной
    • Новости и анонсы
    • Предложения и пожелания
    • Акции, подарки, конкурсы и награды
  • For developers
    • Общие вопросы
    • Нововведения на форуме
  • Opencart 3.x
    • Opencart 3.x: Общие вопросы
    • Opencart 3.x: Установка и обновление
    • Opencart 3.x: Локализация
    • Opencart 3.x: Настройка и оптимизация
    • Opencart 3.x: Песочница
    • Opencart 3.x: Поиск модулей
    • Opencart 3.x: Отчёты об ошибках
  • Opencart 2.x
    • Opencart 2.x: Общие вопросы
    • Opencart 2.x: Установка и обновление
    • Opencart 2.x: Локализация
    • Opencart 2.x: Настройка и оптимизация
    • Opencart 2.x: Песочница
    • Opencart 2.x: Поиск модулей
    • Opencart 2.x / ocStore 2.x: Отчёты об ошибках
  • Поддержка и ответы на вопросы
    • Общие вопросы
    • Установка, обновление, настройка
    • Шаблоны, дизайн и оформление магазина
    • Модули и дополнения
    • Помощь программистам и разработчикам
    • Мобильная витрина
    • Вопросы безопасности
    • SEO-вопросы (оптимизация и продвижение магазина)
    • Перевод
    • Отчёты об ошибках
    • Интернет-магазины и электронная коммерция
    • Песочница
  • Услуги
    • Создание магазинов под ключ
    • Дизайн, верстка и шаблоны
    • Программирование, создание модулей, изменение функциональности
    • Настройка и мелкая работа по уже существующему сайту
    • Обновление версии движка магазина
    • Наполнение магазина
    • Системное администрирование (настройка хостинга, серверов, ПО)
    • Другие услуги
    • Отзывы об исполнителях
    • Отзывы о заказчиках
  • Разное
    • Примеры сайтов на OpenCart (ocStore)
    • Курилка
    • Предложения по улучшению
    • Группы

Categories

  • Шаблоны
    • Бесплатные шаблоны
    • Платные шаблоны
  • Filters
  • Promotions & Pricing
  • Coupons & reward points, affiliate programs
  • Blogs, News & Articles
  • Shopping Cart & Order
  • Product Options
  • Product Attributes
  • Product Combinations
  • Search
  • SEO & Optimization
  • Caching & Server Performance
  • Платежные системы
  • Доставки
  • Editors
  • Design & Navigation
  • Banners, Slideshows & Galleries
  • Email Marketing & SMS Integration
  • Customer Support & Chat
  • Обмен данными
  • Учет в заказе
  • Compare & Wishlist
  • Социальные сети
  • Parsers
  • Модули
  • Tools & Developer Tools
  • Licenses
  • Языковые пакеты
  • Прочее
  • Отчеты
  • Сборки
  • Услуги

Categories

  • Настройка OpenCart
  • Служебные документы
  • Оплата

Blogs

  • Konorws (Разработка и модификация Opencart)
  • Блог mr.Kent)
  • AWS
  • Прожектор Бритни Спирс
  • Layk
  • Продвижение интернет-магазина, seo оптимизация
  • Записная книжка
  • Блог RGB
  • Записки от sitecreator
  • О программировании и другом
  • Модули которые сделают сайт лучше
  • Блог веб-студии NeoSeo
  • Useful IT
  • Задачи, идеи, решения.
  • Найденные решения проблем с Opencart
  • ocdroid blog
  • Заметки на полях...
  • Pimur
  • Серж Ткач
  • О жизни, смерти, о бизнесе и Опенкарте
  • Полезное с бесполезным
  • Просто мысли от laim731
  • Маркетинг и продвижение интернет-магазина
  • Магазин Tv-Project.com
  • Мой копирайтинг
  • Разработка под Opencart
  • SEO боксинг специального назначения

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


MSN


Сайт


ICQ


Jabber


Skype


Город:


Интересы

Found 146 results

  1. 350.00 руб Скачать/Купить дополнение Простое оформление заказа Простое решение для реального упрощения оформления заказа, с настройкой которого разберется любой чайник. Модуль разделен на блоки, содержание (поля, методы) которых можно настроить индивидуально (например, для каждой группы доставки указать свои поля, а для самовывоза и вовсе их отключить). При разработке модуля был использован опыт и требования к оформлению заказа интернет-магазинов с высокой конверсией продаж. ДЕМО Opencart / ocStore 2.3 Opencart / ocStore 3.0 Логин: demo Пароль: demo УСТАНОВКА Установите модуль через стандартный установщик Перейдите к настройкам модуля "Оформление заказа Custom" Осуществите первичную настройку модуля Обновите кэш модификаторов (Встроенный модификатор осуществляет переадресацию со стандартных страниц корзины и оформления заказа на настраиваемую.) ЧТО ВНУТРИ Модуль имеет 8 основных блоков на одной странице Оформить как - (с регистрацией, без регистрации и авторизация) Корзина (с набором колонок, необходимых для отображения на странице) Личные данные (настройка полей для каждой группы пользователей) Доставка (поля, с отметкой для каких методов осуществлять отображение) Оплата (методы и группы пользователей для отображения) Поле комментария Модули (таких как подарочные сертификаты, купоны) Итоговая таблица Данное решение удовлетворит большинство магазинов, которым необходимо простое и быстрое оформление заказа, но нет желания устанавливать сложные модули и разбираться с их настройкой. ИЗМЕНЕНИЕ ОФОРМЛЕНИЯ Вы можете самостоятельно изменить оформление и изменить расположение блоков на свое усмотрение. Для сохранения работоспособности модуля сохраняйте уникальные идентификаторы (id) и названия полей и методов (name). В планах добавить в модуль различные темы оформления для быстрого старта. ПОДДЕРЖКА Поддержка осуществляется преимущественно в личных сообщениях, а так же по электронной почте support@matro.site Простая корзина, упрощенная корзина, custom checkout Добавил matroskin92 Добавлено 22.01.2019 Категория Покупки, оформление заказа, корзина Системные требования Сайт разработчика https://matrosite.ru/ Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 2.3 ocStore 3.0 2.3 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет Старая цена 0  
  2. 300.00 руб Скачать/Купить дополнение Управление торговлей 3 Быстрый заказ Управление торговлей 3 Быстрый заказ купить в 1 клик, купить все что в корзине в 1 клик, заказ падает в заказ демо Opencart 2.x карточка товара демо Страница категорий login: demo pass: demo Демка OcStore Opencart login: demo pass: demo Все версии поддерживают выбор опций Обновил версию для Opencart 2.0.0.0 - 2.1.0.1 1)Поля можно настраивать 2)Вывод в корзине кнопки купить в 1 клик 3)Добавил настройки модуля - можно задать шаблон письма для покупателя - можно задать шаблон письма для Админа - поддерживает переменные - можно подтягивать форму шаблона с товаром который заказали для отправки на почту как себе так и покупателю - почту задавать для получения теперь в самом модуле 4)изменил дизайн 5)заказ падает в заказ 6)всплывающие окно после покупки можно редактировать. посмотреть все настройки модуля можно в админке ПРОДАЖИ / БЫСТРЫЙ ЗАКАЗ или нажать на информер. Совместимость: OCSTORE 15 2x OPENCART 15 OPENCART 2.х - все версии Модуль использует ionCube с онлайн проверкой ключа после приобретения писать в личку заглавив письмо" КУпил, Скачал, Жду ключа на управление 3" Это третий модуль из серии "Управление торговлей" , в него так же включено дальнешее расширение и совместимость со всеми остальными модулями серии "Управление торговлей" Для тех "Кто в теме" полезные ссылки Управление торговлей 7 Управление торговлей 6 Управление торговлей 5 Управление торговлей 4 Управление торговлей 2 Управление торговлей 1 Модуль наличия товара на складе разный цвет Добавил 29aleksey Добавлено 10.02.2015 Категория Покупки, оформление заказа, корзина Системные требования Сайт разработчика Старая цена 399 Метод активации По запросу в ЛС Ioncube Loader Требуется OpenCart ocStore OpenCart.Pro, ocShop
  3. Столкнулся с проблемой, что пользователи попадая в корзину в первую очередь хотят видеть способы доставки, а уже потом все остальное. Помогите решить данную проблему(подскажите где искать) в opencart 3.0. Необходимо поменять местами определенные шаги при оформлении заказа. что было и что должно быть отобразил на принскринах во вложении. ps: лазил на данном форуме и нашел решения для opencart 2.0, плюс модуль simple - сразу пишу, это не подходит!
  4. 450.00 руб Скачать/Купить дополнение Быстрый заказ 2 в 1 v Быстрый заказа 2 в 1 Модуль позволяет совершать вашим клиента быстрый заказа товара, не проходя утомительную процедуру регистрации или оформления заказа, особенно в стандартном OC. Для совершения заказа достаточно заполнить всего 2 поля, а больше и не нужно, всю остальную работу сделает менеджер. Особенностью модуль является его режим работы: Если модуль расположен на карточке товара, тогда информация о товаре для формирования заказа будет браться с той страницы на которой пользователь нажал кнопку оформления заказа. В настройках модуля можно настроить учет опций, которые выбрал покупатель на карточке товара. То есть, если покупатель выбрал у товара, например, рубашка, опцию "размер" - "XL" и в настройках модуля включен учет опций, то быстрый заказ будет оформлен на товар рубашка размера XL. Также учитывается, указанное покупателем, количество товара. Если модуль расположен в корзине или на любой другой странице отличной от карточки товара, тогда заказ будет оформлен на товары, находящиеся у покупателя в корзине. Внимание! Происходит оформление реального заказа. ________________________________________________ Язык модуля: Русский ________________________________________________ Возможности: Какие поля и как показывать, настраивается в админке; Можно пометить поля как обязательные для заполнения; При оформлении заказа происходит валидация полей; Можно задать для каждой позиции свой набор полей и настроек; Модуль можно легко выключить, если он больше не нужен; Не изменяет никакие системные файлы; Возможность отображения формы быстрого заказа на любой схеме магазина; Возможность отображения формы быстрого заказа только на конкретном магазине; Мультиязычный заголовок и описание для формы быстрого заказа; Мультиязычное название и описание для полей формы; Возможность менять порядок для полей; Позволяет/Запрещает покупателя совершать заказ при нехватке товара на складе; Позволяет/Запрещает покупателя совершать заказ учитывая минимальное количество товара; Учет количества при заказе с карточки товара; Позволяет учитывать выбранные пользователем опции на карточке товара; Позволяет/Запрещает пользователю совершать заказ на карточке товара, пока не будут заполнены все обязательные опции товара; Позволяет/Запрещает отображать на карточке товара выбранные пользователем опции; Позволяет выводить предварительную стоимость заказа учитывая количество и выбранные пользователем опции (при условии что они включены в админке); при формировании цены учитываются акции и скидки; Позволяет использовать капчу; Позволяет добавить к блоку класс, чтобы сделать свою конкретному блоку; Система шаблонов позволяет создать, свой шаблон для конкретного блока; Настройка статуса заказа после оформления; Отображения блока в зависимости от группы покупателей; Позволяет/Запрещает отображать форму быстрого заказа только для авторизованных покупателей; Модуль позволяет создать нового пользователя и прикрепить его к заявке если покупатель не авторизован; Гибкая настройка списания товара со склада после оформления быстрого заказа; Модуль позволяет настроить уведомления покупателю после оформления быстрого заказа; Гибка система уведомления администрации о новом заказе; Возможность задать дополнительные адреса для уведомления. ________________________________________________ Работает во всех современных браузерах (в скобках указаны версии на которых проверялся модуль): Firefox (3.6, 4.0, 5.0) Safari (4.0.5) Opera (11.10) Яндекс браузер (1.7.1364.21027) Chrome (29.0.1547.66) Internet Explorer (9, 8, 7) ________________________________________________ Демонстрация работы Пример работы тут Админка (Логин: demo, Пароль: demo) ________________________________________________ Оставляйте отзыва, пожеланию по улучшению, замечания. Это очень поможет сделать модуль удобнее. ________________________________________________ Внимание! Перед покупкой модуля убедитесь что он отвечает вашим требованиям и если у вас возникли вопросы обязательно задавайте их на форуме! Запрещено распространение модуля от своего имени, продажа, перепродажа, передача третьим лицам, выкладывание в складчину и прочие незаконные действия. Я ценю свое время и если я не обнаружу вас в списке покупателей, то техническая поддержка оказываться не будет. Установка: Из директории upload скопировать всё в корень сайта; Установить модуль и выставить права доступа в панели администратора (Система → Пользователи → Группы пользователей); Выполнить настройку. Модуль тестировался на версиях ocStore/OpenCart: 1.5.1.3, 1.5.3.1, 1.5.4.1, 1.5.5.1, 1.5.6, 2.0.1.x, 2.0.2.0, 2.0.3.x. Внимание! Версия 2.0.0.x не поддерживается! Добавил homer Добавлено 21.09.2013 Категория Покупки, оформление заказа, корзина Системные требования Сайт разработчика Старая цена Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop
  5. Все заказы оформляются с итоговой суммой 0.00р . Дополнения > Учитывать в заказе > ИТОГО > включено В чем тогда ошибка ? Помогите разобраться пожалуйста
  6. 1 400.00 руб Скачать/Купить дополнение Моя страница оформленного заказа Модуль позволяет создать свои индивидуальные страницы успешно офрмленного заказа, в зависимости от группы настроек: Метод Оплаты заказа Метод Доставки заказа Статус заказа Гость или Зарегистрированный покупатель Группа покупателя Создавайте свои группы настроек и выводите разный текст на странице успешно оформленного заказа! На созданных модулем страницах доступны html теги, переменные из заказа (такие как номер, сумма, метод доставки, метод оплаты и многие, многие другие данные из заказа), используйте картинки, используйте карты места расположения, используйте встроенный html редактор Модуль поддерживает вывод данных даже из созданных модулем simple (простое оформление заказа) полей Не заменяет системных файлов Не требует vqmod Совместим с модулем simple (простое оформление заказа) Демо: http://os23-2.pe-art.ru админ панель - логин demo , пароль demo Смотрите также другие модули по ссылке Добавил ashap Добавлено 29.04.2018 Категория Покупки, оформление заказа, корзина Системные требования Сайт разработчика https://store.pe-art.ru/ Старая цена Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0 2.3 2.1 2.0 ocStore 3.0 2.3 2.1 OpenCart.Pro, ocShop Opencart.pro 2.3 Opencart.pro 2.1 OcShop 2.0.3.х Обращение к серверу разработчика Нет  
  7. здравствуйте. при нажатии на корзину выдает ошибку. ссылка: http://shangrila.shop/index.php?route=checkout/oct_fastorder вроде как ошибка в модуле оформление быстрого заказа. когда его отключаю, ничего не меняется. как это решить?
  8. Добрый день! Подскажите пожалуйста почему не передается платежная информация заказчика. Где исправить ? То есть на почту приходит только заказ, без остальных полей Версия 1.5.4.1 В разделе модули, самого модуля нет. данные сбрасывает после выбора способа оплаты и остается только товар <?php class ModelCheckoutOrder extends Model { public function addOrder($data) { $this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', store_id = '" . (int)$data['store_id'] . "', store_name = '" . $this->db->escape($data['store_name']) . "', store_url = '" . $this->db->escape($data['store_url']) . "', customer_id = '" . (int)$data['customer_id'] . "', customer_group_id = '" . (int)$data['customer_group_id'] . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) . "', payment_company = '" . $this->db->escape($data['payment_company']) . "', payment_company_id = '" . $this->db->escape($data['payment_company_id']) . "', payment_tax_id = '" . $this->db->escape($data['payment_tax_id']) . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) . "', payment_address_2 = '" . $this->db->escape($data['payment_address_2']) . "', payment_city = '" . $this->db->escape($data['payment_city']) . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) . "', payment_country = '" . $this->db->escape($data['payment_country']) . "', payment_country_id = '" . (int)$data['payment_country_id'] . "', payment_zone = '" . $this->db->escape($data['payment_zone']) . "', payment_zone_id = '" . (int)$data['payment_zone_id'] . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) . "', payment_method = '" . $this->db->escape($data['payment_method']) . "', payment_code = '" . $this->db->escape($data['payment_code']) . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) . "', shipping_company = '" . $this->db->escape($data['shipping_company']) . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) . "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2']) . "', shipping_city = '" . $this->db->escape($data['shipping_city']) . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) . "', shipping_country = '" . $this->db->escape($data['shipping_country']) . "', shipping_country_id = '" . (int)$data['shipping_country_id'] . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) . "', shipping_method = '" . $this->db->escape($data['shipping_method']) . "', shipping_code = '" . $this->db->escape($data['shipping_code']) . "', comment = '" . $this->db->escape($data['comment']) . "', total = '" . (float)$data['total'] . "', affiliate_id = '" . (int)$data['affiliate_id'] . "', commission = '" . (float)$data['commission'] . "', language_id = '" . (int)$data['language_id'] . "', currency_id = '" . (int)$data['currency_id'] . "', currency_code = '" . $this->db->escape($data['currency_code']) . "', currency_value = '" . (float)$data['currency_value'] . "', ip = '" . $this->db->escape($data['ip']) . "', forwarded_ip = '" . $this->db->escape($data['forwarded_ip']) . "', user_agent = '" . $this->db->escape($data['user_agent']) . "', accept_language = '" . $this->db->escape($data['accept_language']) . "', date_added = NOW(), date_modified = NOW()"); $order_id = $this->db->getLastId(); foreach ($data['products'] as $product) { $this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$product['product_id'] . "', name = '" . $this->db->escape($product['name']) . "', model = '" . $this->db->escape($product['model']) . "', quantity = '" . (int)$product['quantity'] . "', price = '" . (float)$product['price'] . "', total = '" . (float)$product['total'] . "', tax = '" . (float)$product['tax'] . "', reward = '" . (int)$product['reward'] . "'"); $order_product_id = $this->db->getLastId(); foreach ($product['option'] as $option) { $this->db->query("INSERT INTO " . DB_PREFIX . "order_option SET order_id = '" . (int)$order_id . "', order_product_id = '" . (int)$order_product_id . "', product_option_id = '" . (int)$option['product_option_id'] . "', product_option_value_id = '" . (int)$option['product_option_value_id'] . "', name = '" . $this->db->escape($option['name']) . "', `value` = '" . $this->db->escape($option['value']) . "', `type` = '" . $this->db->escape($option['type']) . "'"); } foreach ($product['download'] as $download) { $this->db->query("INSERT INTO " . DB_PREFIX . "order_download SET order_id = '" . (int)$order_id . "', order_product_id = '" . (int)$order_product_id . "', name = '" . $this->db->escape($download['name']) . "', filename = '" . $this->db->escape($download['filename']) . "', mask = '" . $this->db->escape($download['mask']) . "', remaining = '" . (int)($download['remaining'] * $product['quantity']) . "'"); } } foreach ($data['vouchers'] as $voucher) { $this->db->query("INSERT INTO " . DB_PREFIX . "order_voucher SET order_id = '" . (int)$order_id . "', description = '" . $this->db->escape($voucher['description']) . "', code = '" . $this->db->escape($voucher['code']) . "', from_name = '" . $this->db->escape($voucher['from_name']) . "', from_email = '" . $this->db->escape($voucher['from_email']) . "', to_name = '" . $this->db->escape($voucher['to_name']) . "', to_email = '" . $this->db->escape($voucher['to_email']) . "', voucher_theme_id = '" . (int)$voucher['voucher_theme_id'] . "', message = '" . $this->db->escape($voucher['message']) . "', amount = '" . (float)$voucher['amount'] . "'"); } foreach ($data['totals'] as $total) { $this->db->query("INSERT INTO " . DB_PREFIX . "order_total SET order_id = '" . (int)$order_id . "', code = '" . $this->db->escape($total['code']) . "', title = '" . $this->db->escape($total['title']) . "', text = '" . $this->db->escape($total['text']) . "', `value` = '" . (float)$total['value'] . "', sort_order = '" . (int)$total['sort_order'] . "'"); } return $order_id; } public function getOrder($order_id) { $order_query = $this->db->query("SELECT *, (SELECT os.name FROM `" . DB_PREFIX . "order_status` os WHERE os.order_status_id = o.order_status_id AND os.language_id = o.language_id) AS order_status FROM `" . DB_PREFIX . "order` o WHERE o.order_id = '" . (int)$order_id . "'"); if ($order_query->num_rows) { $country_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "country` WHERE country_id = '" . (int)$order_query->row['payment_country_id'] . "'"); if ($country_query->num_rows) { $payment_iso_code_2 = $country_query->row['iso_code_2']; $payment_iso_code_3 = $country_query->row['iso_code_3']; } else { $payment_iso_code_2 = ''; $payment_iso_code_3 = ''; } $zone_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "zone` WHERE zone_id = '" . (int)$order_query->row['payment_zone_id'] . "'"); if ($zone_query->num_rows) { $payment_zone_code = $zone_query->row['code']; } else { $payment_zone_code = ''; } $country_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "country` WHERE country_id = '" . (int)$order_query->row['shipping_country_id'] . "'"); if ($country_query->num_rows) { $shipping_iso_code_2 = $country_query->row['iso_code_2']; $shipping_iso_code_3 = $country_query->row['iso_code_3']; } else { $shipping_iso_code_2 = ''; $shipping_iso_code_3 = ''; } $zone_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "zone` WHERE zone_id = '" . (int)$order_query->row['shipping_zone_id'] . "'"); if ($zone_query->num_rows) { $shipping_zone_code = $zone_query->row['code']; } else { $shipping_zone_code = ''; } $this->load->model('localisation/language'); $language_info = $this->model_localisation_language->getLanguage($order_query->row['language_id']); if ($language_info) { $language_code = $language_info['code']; $language_filename = $language_info['filename']; $language_directory = $language_info['directory']; } else { $language_code = ''; $language_filename = ''; $language_directory = ''; } return array( 'order_id' => $order_query->row['order_id'], 'invoice_no' => $order_query->row['invoice_no'], 'invoice_prefix' => $order_query->row['invoice_prefix'], 'store_id' => $order_query->row['store_id'], 'store_name' => $order_query->row['store_name'], 'store_url' => $order_query->row['store_url'], 'customer_id' => $order_query->row['customer_id'], 'firstname' => $order_query->row['firstname'], 'lastname' => $order_query->row['lastname'], 'telephone' => $order_query->row['telephone'], 'fax' => $order_query->row['fax'], 'email' => $order_query->row['email'], 'payment_firstname' => $order_query->row['payment_firstname'], 'payment_lastname' => $order_query->row['payment_lastname'], 'payment_company' => $order_query->row['payment_company'], 'payment_address_1' => $order_query->row['payment_address_1'], 'payment_address_2' => $order_query->row['payment_address_2'], 'payment_postcode' => $order_query->row['payment_postcode'], 'payment_city' => $order_query->row['payment_city'], 'payment_zone_id' => $order_query->row['payment_zone_id'], 'payment_zone' => $order_query->row['payment_zone'], 'payment_zone_code' => $payment_zone_code, 'payment_country_id' => $order_query->row['payment_country_id'], 'payment_country' => $order_query->row['payment_country'], 'payment_iso_code_2' => $payment_iso_code_2, 'payment_iso_code_3' => $payment_iso_code_3, 'payment_address_format' => $order_query->row['payment_address_format'], 'payment_method' => $order_query->row['payment_method'], 'payment_code' => $order_query->row['payment_code'], 'shipping_firstname' => $order_query->row['shipping_firstname'], 'shipping_lastname' => $order_query->row['shipping_lastname'], 'shipping_company' => $order_query->row['shipping_company'], 'shipping_address_1' => $order_query->row['shipping_address_1'], 'shipping_address_2' => $order_query->row['shipping_address_2'], 'shipping_postcode' => $order_query->row['shipping_postcode'], 'shipping_city' => $order_query->row['shipping_city'], 'shipping_zone_id' => $order_query->row['shipping_zone_id'], 'shipping_zone' => $order_query->row['shipping_zone'], 'shipping_zone_code' => $shipping_zone_code, 'shipping_country_id' => $order_query->row['shipping_country_id'], 'shipping_country' => $order_query->row['shipping_country'], 'shipping_iso_code_2' => $shipping_iso_code_2, 'shipping_iso_code_3' => $shipping_iso_code_3, 'shipping_address_format' => $order_query->row['shipping_address_format'], 'shipping_method' => $order_query->row['shipping_method'], 'shipping_code' => $order_query->row['shipping_code'], 'comment' => $order_query->row['comment'], 'total' => $order_query->row['total'], 'order_status_id' => $order_query->row['order_status_id'], 'order_status' => $order_query->row['order_status'], 'language_id' => $order_query->row['language_id'], 'language_code' => $language_code, 'language_filename' => $language_filename, 'language_directory' => $language_directory, 'currency_id' => $order_query->row['currency_id'], 'currency_code' => $order_query->row['currency_code'], 'currency_value' => $order_query->row['currency_value'], 'ip' => $order_query->row['ip'], 'forwarded_ip' => $order_query->row['forwarded_ip'], 'user_agent' => $order_query->row['user_agent'], 'accept_language' => $order_query->row['accept_language'], 'date_modified' => $order_query->row['date_modified'], 'date_added' => $order_query->row['date_added'] ); } else { return false; } } public function confirm($order_id, $order_status_id, $comment = '', $notify = false) { $order_info = $this->getOrder($order_id); if ($order_info && !$order_info['order_status_id']) { // Fraud Detection if ($this->config->get('config_fraud_detection')) { $this->load->model('checkout/fraud'); $risk_score = $this->model_checkout_fraud->getFraudScore($order_info); if ($risk_score > $this->config->get('config_fraud_score')) { $order_status_id = $this->config->get('config_fraud_status_id'); } } // Blacklist $status = false; $this->load->model('account/customer'); if ($order_info['customer_id']) { $results = $this->model_account_customer->getIps($order_info['customer_id']); foreach ($results as $result) { if ($this->model_account_customer->isBlacklisted($result['ip'])) { $status = true; break; } } } else { $status = $this->model_account_customer->isBlacklisted($order_info['ip']); } if ($status) { $order_status_id = $this->config->get('config_order_status_id'); } $this->db->query("UPDATE `" . DB_PREFIX . "order` SET order_status_id = '" . (int)$order_status_id . "', date_modified = NOW() WHERE order_id = '" . (int)$order_id . "'"); $this->db->query("INSERT INTO " . DB_PREFIX . "order_history SET order_id = '" . (int)$order_id . "', order_status_id = '" . (int)$order_status_id . "', notify = '1', comment = '" . $this->db->escape(($comment && $notify) ? $comment : '') . "', date_added = NOW()"); $order_product_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'"); foreach ($order_product_query->rows as $order_product) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = (quantity - " . (int)$order_product['quantity'] . ") WHERE product_id = '" . (int)$order_product['product_id'] . "' AND subtract = '1'"); $order_option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_option WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . (int)$order_product['order_product_id'] . "'"); foreach ($order_option_query->rows as $option) { $this->db->query("UPDATE " . DB_PREFIX . "product_option_value SET quantity = (quantity - " . (int)$order_product['quantity'] . ") WHERE product_option_value_id = '" . (int)$option['product_option_value_id'] . "' AND subtract = '1'"); } } $this->cache->delete('product'); // Downloads $order_download_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_download WHERE order_id = '" . (int)$order_id . "'"); // Gift Voucher $this->load->model('checkout/voucher'); $order_voucher_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_voucher WHERE order_id = '" . (int)$order_id . "'"); foreach ($order_voucher_query->rows as $order_voucher) { $voucher_id = $this->model_checkout_voucher->addVoucher($order_id, $order_voucher); $this->db->query("UPDATE " . DB_PREFIX . "order_voucher SET voucher_id = '" . (int)$voucher_id . "' WHERE order_voucher_id = '" . (int)$order_voucher['order_voucher_id'] . "'"); } // Send out any gift voucher mails if ($this->config->get('config_complete_status_id') == $order_status_id) { $this->model_checkout_voucher->confirm($order_id); } // Order Totals $order_total_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order_total` WHERE order_id = '" . (int)$order_id . "' ORDER BY sort_order ASC"); foreach ($order_total_query->rows as $order_total) { $this->load->model('total/' . $order_total['code']); if (method_exists($this->{'model_total_' . $order_total['code']}, 'confirm')) { $this->{'model_total_' . $order_total['code']}->confirm($order_info, $order_total); } } // Send out order confirmation mail $language = new Language($order_info['language_directory']); $language->load($order_info['language_filename']); $language->load('mail/order'); $order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$order_info['language_id'] . "'"); if ($order_status_query->num_rows) { $order_status = $order_status_query->row['name']; } else { $order_status = ''; } $subject = sprintf($language->get('text_new_subject'), $order_info['store_name'], $order_id); // HTML Mail $template = new Template(); $template->data['title'] = sprintf($language->get('text_new_subject'), html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'), $order_id); $template->data['text_greeting'] = sprintf($language->get('text_new_greeting'), html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); $template->data['text_link'] = $language->get('text_new_link'); $template->data['text_download'] = $language->get('text_new_download'); $template->data['text_order_detail'] = $language->get('text_new_order_detail'); $template->data['text_instruction'] = $language->get('text_new_instruction'); $template->data['text_order_id'] = $language->get('text_new_order_id'); $template->data['text_date_added'] = $language->get('text_new_date_added'); $template->data['text_payment_method'] = $language->get('text_new_payment_method'); $template->data['text_shipping_method'] = $language->get('text_new_shipping_method'); $template->data['text_email'] = $language->get('text_new_email'); $template->data['text_telephone'] = $language->get('text_new_telephone'); $template->data['text_ip'] = $language->get('text_new_ip'); $template->data['text_payment_address'] = $language->get('text_new_payment_address'); $template->data['text_shipping_address'] = $language->get('text_new_shipping_address'); $template->data['text_product'] = $language->get('text_new_product'); $template->data['text_model'] = $language->get('text_new_model'); $template->data['text_quantity'] = $language->get('text_new_quantity'); $template->data['text_price'] = $language->get('text_new_price'); $template->data['text_total'] = $language->get('text_new_total'); $template->data['text_footer'] = $language->get('text_new_footer'); $template->data['text_powered'] = $language->get('text_new_powered'); $template->data['logo'] = HTTP_IMAGE . $this->config->get('config_logo'); $template->data['store_name'] = $order_info['store_name']; $template->data['store_url'] = $order_info['store_url']; $template->data['customer_id'] = $order_info['customer_id']; $template->data['link'] = $order_info['store_url'] . 'index.php?route=account/order/info&order_id=' . $order_id; if ($order_download_query->num_rows) { $template->data['download'] = $order_info['store_url'] . 'index.php?route=account/download'; } else { $template->data['download'] = ''; } $template->data['order_id'] = $order_id; $template->data['date_added'] = date($language->get('date_format_short'), strtotime($order_info['date_added'])); $template->data['payment_method'] = $order_info['payment_method']; $template->data['shipping_method'] = $order_info['shipping_method']; $template->data['email'] = $order_info['email']; $template->data['telephone'] = $order_info['telephone']; $template->data['ip'] = $order_info['ip']; if ($comment && $notify) { $template->data['comment'] = nl2br($comment); } else { $template->data['comment'] = ''; } if ($order_info['payment_address_format']) { $format = $order_info['payment_address_format']; } else { $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; } $find = array( '{firstname}', '{lastname}', '{company}', '{address_1}', '{address_2}', '{city}', '{postcode}', '{zone}', '{zone_code}', '{country}' ); $replace = array( 'firstname' => $order_info['payment_firstname'], 'lastname' => $order_info['payment_lastname'], 'company' => $order_info['payment_company'], 'address_1' => $order_info['payment_address_1'], 'address_2' => $order_info['payment_address_2'], 'city' => $order_info['payment_city'], 'postcode' => $order_info['payment_postcode'], 'zone' => $order_info['payment_zone'], 'zone_code' => $order_info['payment_zone_code'], 'country' => $order_info['payment_country'] ); $template->data['payment_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))); if ($order_info['shipping_address_format']) { $format = $order_info['shipping_address_format']; } else { $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; } $find = array( '{firstname}', '{lastname}', '{company}', '{address_1}', '{address_2}', '{city}', '{postcode}', '{zone}', '{zone_code}', '{country}' ); $replace = array( 'firstname' => $order_info['shipping_firstname'], 'lastname' => $order_info['shipping_lastname'], 'company' => $order_info['shipping_company'], 'address_1' => $order_info['shipping_address_1'], 'address_2' => $order_info['shipping_address_2'], 'city' => $order_info['shipping_city'], 'postcode' => $order_info['shipping_postcode'], 'zone' => $order_info['shipping_zone'], 'zone_code' => $order_info['shipping_zone_code'], 'country' => $order_info['shipping_country'] ); $template->data['shipping_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))); // Products $template->data['products'] = array(); foreach ($order_product_query->rows as $product) { $option_data = array(); $order_option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_option WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . (int)$product['order_product_id'] . "'"); foreach ($order_option_query->rows as $option) { if ($option['type'] != 'file') { $value = $option['value']; } else { $value = utf8_substr($option['value'], 0, utf8_strrpos($option['value'], '.')); } $option_data[] = array( 'name' => $option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } $template->data['products'][] = array( 'name' => $product['name'], 'model' => $product['model'], 'option' => $option_data, 'quantity' => $product['quantity'], 'price' => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']), 'total' => $this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']) ); } // Vouchers $template->data['vouchers'] = array(); foreach ($order_voucher_query->rows as $voucher) { $template->data['vouchers'][] = array( 'description' => $voucher['description'], 'amount' => $this->currency->format($voucher['amount'], $order_info['currency_code'], $order_info['currency_value']), ); } $template->data['totals'] = $order_total_query->rows; if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/order.tpl')) { $html = $template->fetch($this->config->get('config_template') . '/template/mail/order.tpl'); } else { $html = $template->fetch('default/template/mail/order.tpl'); } // Text Mail $text = sprintf($language->get('text_new_greeting'), html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')) . "\n\n"; $text .= $language->get('text_new_order_id') . ' ' . $order_id . "\n"; $text .= $language->get('text_new_date_added') . ' ' . date($language->get('date_format_short'), strtotime($order_info['date_added'])) . "\n"; $text .= $language->get('text_new_order_status') . ' ' . $order_status . "\n\n"; if ($comment && $notify) { $text .= $language->get('text_new_instruction') . "\n\n"; $text .= $comment . "\n\n"; } // Products $text .= $language->get('text_new_products') . "\n"; foreach ($order_product_query->rows as $product) { $text .= $product['quantity'] . 'x ' . $product['name'] . ' (' . $product['model'] . ') ' . html_entity_decode($this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') . "\n"; $order_option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_option WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . $product['order_product_id'] . "'"); foreach ($order_option_query->rows as $option) { $text .= chr(9) . '-' . $option['name'] . ' ' . (utf8_strlen($option['value']) > 20 ? utf8_substr($option['value'], 0, 20) . '..' : $option['value']) . "\n"; } } foreach ($order_voucher_query->rows as $voucher) { $text .= '1x ' . $voucher['description'] . ' ' . $this->currency->format($voucher['amount'], $order_info['currency_code'], $order_info['currency_value']); } $text .= "\n"; $text .= $language->get('text_new_order_total') . "\n"; foreach ($order_total_query->rows as $total) { $text .= $total['title'] . ': ' . html_entity_decode($total['text'], ENT_NOQUOTES, 'UTF-8') . "\n"; } $text .= "\n"; if ($order_info['customer_id']) { $text .= $language->get('text_new_link') . "\n"; $text .= $order_info['store_url'] . 'index.php?route=account/order/info&order_id=' . $order_id . "\n\n"; } if ($order_download_query->num_rows) { $text .= $language->get('text_new_download') . "\n"; $text .= $order_info['store_url'] . 'index.php?route=account/download' . "\n\n"; } if ($order_info['comment']) { $text .= $language->get('text_new_comment') . "\n\n"; $text .= $order_info['comment'] . "\n\n"; } $text .= $language->get('text_new_footer') . "\n\n"; $mail = new Mail(); $mail->protocol = $this->config->get('config_mail_protocol'); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->hostname = $this->config->get('config_smtp_host'); $mail->username = $this->config->get('config_smtp_username'); $mail->password = $this->config->get('config_smtp_password'); $mail->port = $this->config->get('config_smtp_port'); $mail->timeout = $this->config->get('config_smtp_timeout'); $mail->setTo($order_info['email']); $mail->setFrom($this->config->get('config_email')); $mail->setSender($order_info['store_name']); $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8')); $mail->setHtml($html); $mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8')); $mail->send(); // Admin Alert Mail if ($this->config->get('config_alert_mail')) { $subject = sprintf($language->get('text_new_subject'), html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'), $order_id); // Text $text = $language->get('text_new_received') . "\n\n"; $text .= $language->get('text_new_order_id') . ' ' . $order_id . "\n"; $text .= $language->get('text_new_date_added') . ' ' . date($language->get('date_format_short'), strtotime($order_info['date_added'])) . "\n"; $text .= $language->get('text_new_order_status') . ' ' . $order_status . "\n\n"; $text .= $language->get('text_new_products') . "\n"; foreach ($order_product_query->rows as $product) { $text .= $product['quantity'] . 'x ' . $product['name'] . ' (' . $product['model'] . ') ' . html_entity_decode($this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') . "\n"; $order_option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_option WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . $product['order_product_id'] . "'"); foreach ($order_option_query->rows as $option) { if ($option['type'] != 'file') { $value = $option['value']; } else { $value = utf8_substr($option['value'], 0, utf8_strrpos($option['value'], '.')); } $text .= chr(9) . '-' . $option['name'] . ' ' . (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) . "\n"; } } foreach ($order_voucher_query->rows as $voucher) { $text .= '1x ' . $voucher['description'] . ' ' . $this->currency->format($voucher['amount'], $order_info['currency_code'], $order_info['currency_value']); } $text .= "\n"; $text .= $language->get('text_new_order_total') . "\n"; foreach ($order_total_query->rows as $total) { $text .= $total['title'] . ': ' . html_entity_decode($total['text'], ENT_NOQUOTES, 'UTF-8') . "\n"; } $text .= "\n"; if ($order_info['comment']) { $text .= $language->get('text_new_comment') . "\n\n"; $text .= $order_info['comment'] . "\n\n"; } $mail = new Mail(); $mail->protocol = $this->config->get('config_mail_protocol'); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->hostname = $this->config->get('config_smtp_host'); $mail->username = $this->config->get('config_smtp_username'); $mail->password = $this->config->get('config_smtp_password'); $mail->port = $this->config->get('config_smtp_port'); $mail->timeout = $this->config->get('config_smtp_timeout'); $mail->setTo($this->config->get('config_email')); $mail->setFrom($this->config->get('config_email')); $mail->setSender($order_info['store_name']); $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8')); $mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8')); $mail->send(); // Send to additional alert emails $emails = explode(',', $this->config->get('config_alert_emails')); foreach ($emails as $email) { if ($email && preg_match('/^[^\@]+@.*\.[a-z]{2,6}$/i', $email)) { $mail->setTo($email); $mail->send(); } } } // Send Admins SMS if configure if ($this->config->get('config_sms_alert')) { $options = array( 'to' => $this->config->get('config_sms_to'), 'copy' => $this->config->get('config_sms_copy'), 'from' => $this->config->get('config_sms_from'), 'username' => $this->config->get('config_sms_gate_username'), 'password' => $this->config->get('config_sms_gate_password'), 'message' => str_replace(array('{ID}', '{DATE}', '{TIME}', '{SUM}', '{PHONE}'), array($order_id, date('d.m.Y'), date('H:i'), floatval($order_info['total']), $order_info['telephone']), $this->config->get('config_sms_message')) ); $this->load->library('sms'); $sms = new Sms($this->config->get('config_sms_gatename'), $options); $sms->send(); } } } public function update($order_id, $order_status_id, $comment = '', $notify = false) { $order_info = $this->getOrder($order_id); if ($order_info && $order_info['order_status_id']) { // Fraud Detection if ($this->config->get('config_fraud_detection')) { $this->load->model('checkout/fraud'); $risk_score = $this->model_checkout_fraud->getFraudScore($order_info); if ($risk_score > $this->config->get('config_fraud_score')) { $order_status_id = $this->config->get('config_fraud_status_id'); } } // Blacklist $status = false; $this->load->model('account/customer'); if ($order_info['customer_id']) { $results = $this->model_account_customer->getIps($order_info['customer_id']); foreach ($results as $result) { if ($this->model_account_customer->isBlacklisted($result['ip'])) { $status = true; break; } } } else { $status = $this->model_account_customer->isBlacklisted($order_info['ip']); } if ($status) { $order_status_id = $this->config->get('config_order_status_id'); } $this->db->query("UPDATE `" . DB_PREFIX . "order` SET order_status_id = '" . (int)$order_status_id . "', date_modified = NOW() WHERE order_id = '" . (int)$order_id . "'"); $this->db->query("INSERT INTO " . DB_PREFIX . "order_history SET order_id = '" . (int)$order_id . "', order_status_id = '" . (int)$order_status_id . "', notify = '" . (int)$notify . "', date_identificator = '" . (int)$date_identificator . "', number_identificator = '" . (int)$number_identificator . "', shipping_method = '" . (int)$shipping_method . "', comment = '" . $this->db->escape($comment) . "', date_added = NOW()"); // Send out any gift voucher mails if ($this->config->get('config_complete_status_id') == $order_status_id) { $this->load->model('checkout/voucher'); $this->model_checkout_voucher->confirm($order_id); } if ($notify) { $language = new Language($order_info['language_directory']); $language->load($order_info['language_filename']); $language->load('mail/order'); $subject = sprintf($language->get('text_update_subject'), html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'), $order_id); $message = $language->get('text_update_order') . ' ' . $order_id . "\n"; $message .= $language->get('text_update_date_added') . ' ' . date($language->get('date_format_short'), strtotime($order_info['date_added'])) . "\n\n"; $order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$order_info['language_id'] . "'"); if ($order_status_query->num_rows) { $message .= $language->get('text_update_order_status') . "\n\n"; $message .= $order_status_query->row['name'] . "\n\n"; } if ($order_info['customer_id']) { $message .= $language->get('text_update_link') . "\n"; $message .= $order_info['store_url'] . 'index.php?route=account/order/info&order_id=' . $order_id . "\n\n"; } if ($comment) { $message .= $language->get('text_update_comment') . "\n\n"; $message .= $comment . "\n\n"; } $message .= $language->get('text_update_footer'); $mail = new Mail(); $mail->protocol = $this->config->get('config_mail_protocol'); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->hostname = $this->config->get('config_smtp_host'); $mail->username = $this->config->get('config_smtp_username'); $mail->password = $this->config->get('config_smtp_password'); $mail->port = $this->config->get('config_smtp_port'); $mail->timeout = $this->config->get('config_smtp_timeout'); $mail->setTo($order_info['email']); $mail->setFrom($this->config->get('config_email')); $mail->setSender($order_info['store_name']); $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8')); $mail->setText(html_entity_decode($message, ENT_QUOTES, 'UTF-8')); $mail->send(); } } } } ?>
  9. Добрый день ! Подскажите пожалуйста в чем почему не выводятся поля в заказ. Сам заказ есть, а данных заказчика нет. Где можно отредактировать? Поля заполняются , но при отправке пропадают.
  10. Добрый день. Столкнулся с проблемой, после оформления заказа, выбора способа оплаты, нажимаю кнопку оформить заказ, то 1-2 секунды показывает условия способов оплаты и сразу переходит на страницу Ваш заказ принят. Как продлить отображение условий оплаты после нажатия кнопки оформить заказ? В каких файлах (каталоге) желательно сделать изменение. Буду признателен, если поможете. ---------------------------- Opencart 2.1.0.2, Базовый шаблон defult
  11. Добрый день! Помогите пожалуйста решить проблему - не приходят письма уведомлений о заказе на почту администратора. Клиент так же не получает письма об успешном оформлении. Искал решение проблемы. Делал замены строк, которые рекомендуют - не поехало. Когда ставлю протокол Mail все начинает работать, но только с почтой от хостинга. При этом письма попадают в спам. Если есть кто-то с прямыми руками - готов немного заплатить, чтоб решить данную проблему.
  12. 300.00 руб Скачать/Купить дополнение Купить в 1 клик PRO - oc 2.x Купить в 1 клик PRO - oc 2.x Быстрый заказ Версия для 15 купить все что в корзине в 1 клик заказ падает в заказ демо Opencart 2.x карточка товара демо Страница категорий login: demo pass: demo 1) Пользователь видит дополнительные кнопки "Быстрого заказа" - кнопки имеют гибкие настройки как по цвету, так и по иконкам(более 400) 2) Быстрый заказ не только с карточки товара но и с категории 3) Регистрация всех заказов в админке + информер + ссылка на страницу товара, заказ на который был сделан. 4) Гибкие настройки цветов, названий ,отправки СМС. 5) Заказ падает в заказ 6) В модуль добавлен выбор опций. 7) При выборе количества и опции автоматический пересчет цены. 8) В админке в графе регистрации быстрых заказов отображается присвоеный порядковый номер заказа + название и картинка заказанного товара ( очень удобно для визуального контроля) 9) Быстрая обработка с переходом в сам заказ , присвоение статуса. Модуль использует ionCube с онлайн проверкой ключа после приобретения писать в личку заглавив письмо" КУпил, Скачал, Жду ключа на Купить в 1 клик" Добавил 29aleksey Добавлено 23.12.2015 Категория Покупки, оформление заказа, корзина Системные требования Сайт разработчика Старая цена 399 Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop Обращение к серверу разработчика  
  13. 1 проблема По инструкции, которая массово распространена в интернете, удаляю лишние шаги из оформления заказа. Однако шаг "Способ оплаты" не убирается. Почему-то несмотря на замену <input type="checkbox" name="agree" value="1"/> на <input type="checkbox" name="agree" value="1" checked="checked" /> в файле catalog/view/theme/default/template/checkout/payment_method.tpl при просмотре кода на сайте все равно эта галочка не отмечена. Может в этом проблема? А как тогда ее отметить? 2 проблема Если нельзя совсем убрать пункт "Способ оплаты", можно хотя бы удалить из него инструкцию по оплате или заменить в ней текст? В каком файле это правится?
  14. При оформлении заказа вылазит вот такая ерунда: Хотя в админке способы оплаты активированы и настройки на них по идее верны... Так же способы доставки тоже активированы и настройки должны быть правильными по идее. Я очень много экспериментировал с ними, но ничего не помогало, может кто поможет у кого была такая проблема, буду очень благодарен! Версия opencart 2.3.xx
  15. Всем привет. Очень прошу помочь разобраться в проблеме при оформлении заказа, а именно при процедуре способа оплаты. Не могу понять в чем дело. Заранее спасибо!
  16. 300.00 руб Скачать/Купить дополнение Так же покупают Вывод рекомендуемых товаров на основе аналогичных покупок других клиентов вашего интернет-магазина. Чем больше и разнообразнее покупки, тем более точны будут рекомендации модуля в последующем. ДЕМО OPENCART 3 OPENCART 2.3 Для того, чтобы увидеть результат работы модуля, добавьте в корзину товар Ipad Classic и перейдите на страницу корзины. УСТАНОВКА Установите модуль стандартым способом Активируйте в списке модулей и произведите необходимую настройку модуля. Добавьте вывод модуля в нужный Вам макет на нужную позицию. (Это не обязательно макет корзины). ОБРАЩАЮ ВНИМАНИЕ Если в Вашем интернет-магазине не было покупок или каждая из покупок не содержала больше 1 товара, то модулю нечего будет рекомендовать другим покупателям. Добавил matroskin92 Добавлено 11.03.2019 Категория Покупки, оформление заказа, корзина Системные требования PHP > 5.6 Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 2.3 ocStore 3.0 2.3 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет  
  17. Всем привет, кто что подскажет нужно - добавить поле для добавления отдельного комментария непосредственно в корзине как пример - кольца - клиент должен указать для кольца необходимые размеры . для осstore-2.3
  18. 300.00 руб Скачать/Купить дополнение Упрощенное оформление заказа OpenCart 2.3.x.x (Easy Checkout) ГЛОБАЛЬНОЕ ОБНОВЛЕНИЕ! Быстрое оформление заказа на одной странице. Модуль поддерживает все функции стандартного оформления (пользовательские поля, сохранение данных в сессию, добавление заказа в админку, методы доставки, методы оплаты и т.д.). Функции: Вкл/выкл модуля Вкл/выкл полей Вкл/выкл корзины при оформлении Вкл/выкл оплаты и доставки Возможность вкл/откл регистрации при оформлении Возможность вкл/откл ввода адреса доставки, отличного от адреса платежа при оформлении Проверка валидности полей "на лету" Модуль не заменяет никакие файлы. Для установки использовать стандартный установщик OpenCart. Установка: (Дополнения / Установка дополнений) Установите EasyCheckout.*.ocmod.zip, (Дополнения / Менеджер дополнений) Нажмите кнопку обновить, (Дополнения / Дополнения) Активируйте модуль "Easy Checkout (упрощенное оформление заказа) и включите" Обновление: Удалить старый модификатор (не модуль!) Установить новую версию через стандартный установщик Обновить модификаторы Включить и настроить модуль По всем вопросам, багам, замечаниям, предложениям обращаться: Почта: ed.smartass@gmail.com; skype: wari0z ДЕМО: http://oc23ru.505559.ru/ http://oc23ru.505559.ru/admin/index.php?route=extension/module/ez_checkout demo demo Добавил likesmartass Добавлено 20.12.2017 Категория Покупки, оформление заказа, корзина Системные требования Сайт разработчика ed.smartass@gmail.com Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Не проверялось
  19. После установки чистого ocstore 2.1.0.1.1 при оформлении заказа, необходимо нажимать два раза для подтверждения, хотя заказ создается после 1 нажатия, но лишь после второго отображается сообщение об успешной покупке. На локалке такой проблемы не было, может кто-то сталкивался с этим?
  20. (V.2.0.3.1) Здравствуйте. Хочу использовать магазин только для продажи цифрового товара. Подскажите как упростить регистрацию - Оформление заказа. Шаг 2: Профиль & Платежная информация - Только Имя и E-mail Шаг 3: Адрес доставки - не нужен Шаг 4: Способ доставки - не нужен Возможно кто то решал эту проблему. Подскажите.
  21. Все доброго дня! При оформлении заказа возникла ошибка: В журнале ошиок: 2015-04-30 15:52:11 - PHP Notice: Undefined index: shipping in ...../www/catalog/controller/checkout/shipping_method.php on line 11 2015-04-30 15:52:50 - PHP Notice: Undefined index: shipping_address in ....../www/catalog/controller/checkout/guest.php on line 257 11-я строка в shipping_method.php: $payment_address = $this->session->data['guest']['payment']; 257-я строка в guest.php: if ($this->session->data['guest']['shipping_address']) { $this->session->data['guest']['shipping']['firstname'] = $this->request->post['firstname']; $this->session->data['guest']['shipping']['lastname'] = $this->request->post['lastname']; $this->session->data['guest']['shipping']['address_1'] = $this->request->post['address_1']; $this->session->data['guest']['shipping']['city'] = $this->request->post['city']; } Может кто то помочь решить проблему? ocStore 1.5.5.1.2
  22. Доброго времени суток. Прошу помощи в поиске модуля. Суть такова: на странице оформления заказа необходимо добавить функцию выбора опции у товара. Тоесть, у товара есть опции: цвет и размер. Они обязательны. Необходимо предоставить покупателю возможность изменить эти опции на стадии оформления заказа. Как то так...
  23. Всем привет! Возник такой интересный вопрос, как можно поменять местами шаги оформления заказа? Сначала необходимо, чтобы пользователь выбрал необходимый метод оплаты, а только из расчета того, какой метод он выбрал, ему будут предложены соответствующие методы доставки. Говоря другим языком, нужно поменять местами шаг 4 "Способ доставки" с шагом 5 "Способ оплаты". Надеюсь кто-нибудь откликнется.
  24. Здрасте! Стоит задача передать параметры заказа в платёжную систему. В отличие от других платёжек (сравниваю эквайринг от Сбера, Киви, Яндекс), данный вариант (предоставление кредита YesCredit) требует модель товара (принципиально подтянуть именно модель, потому как название и модель немного разнятся из-за специфического представления информации) и количество. Так вот, в программировании я не силён. :-) Что уже "получилось": 1) Забрать номер заказа <?php //Описание номера заказа if (isset($this->request->get['order_id'])) { $order_id = $this->request->get['order_id']; } else { $order_id = ''; } if ($order_id == ''){ $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']); }else{ $order_info = $this->model_account_order->getOrder($order_id); } 2) Выхватить тотал суммы заказа и номер заказа. $product_price = $this->currency->format($order_info['total']); $order_id = $order_info['order_id']; Но почему-то не получается подтянуть модель и количество. Подскажите, в каком файле\модели\контроллере происходит присвоение данных переменным, которые мне необходимы.
  25. Всем привет! Что требуется? Пишу :) 1. На данный момент в ручную прописаны районы (за место Стран) и микрорайоны (за место городов). Нужно сделать три выпадающих списка, а именно: - "Регион" там должны быть прописаны все регионы России; - "Город" в этом списке как Вы наверное уже догадались должен быть список городом России в логике выбора в предыдущем списке региона; - "Район" список районов привязанный только если будет выбрал один город Пермь. 2. Помощь в настройке способов доставки, что бы срабатывало как сейчас все работает :) По бюджету сказать не могу потому как не в курсе каков объем работы и сколько времени займет, так что пишите ждем предложений. Спасибо :)
×

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.