Перейти к содержанию

alex0410

Новичок
  • Публикаций

    27
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о alex0410

  • Звание
    Пользователь
  • День рождения 04.10.1988

Информация

  • Пол
    Мужчина
  • Город:
    Казахстан. Костанай

Посетители профиля

641 просмотр профиля
  1. Не нужно это исправлять. Картинки не залились везде, плюс не ставили картинку по умолчанию, если нет фото. Пункты только те, что написал выше. Лишних доработок не будет.
  2. ссылка на опенкарт 3 https://bit.ly/2FsZR5g ссылка на опенкарт 1.5 с которого переносим https://bit.ly/2T1sWbr
  3. Добрый вечер. Начали перенос сайта с 1.5 на 3. Товары, категории и прочее перенесли. Дизайн скопировали частично. Предыдущий программист пропал. Что осталось доделать: хлебные крошки, мини корзина, при добавлении товара обновляет количество в корзине, но при нажатии на иконку все равно пишет - корзина пуста, при добавлении товара всплывает окно, не закрывается на Х на странице товара (в категориях все нормально), страницу оформления полностью как на нашем опенкарт 1.5. Цена 2500руб. Оплата предпочтительно на яндекс. Пишите сроки и вопросы в личку.
  4. Добрый день. Установил модуль продавцов. Но никак не могу разобраться, хочу вывести в категории вместо товаров, продавцов у которых есть товары в данной категории. Но там вообще жуть...) Подскажите пожалуйста, как вывести хотя бы Информацию о продавце. Код которые выводит информацию на странице продукта: <operation> <search position="after"><![CDATA[ if ($product_info) { ]]></search> <add><![CDATA[ $this->document->addScript('catalog/view/javascript/dialog-sellercontact.js'); $this->document->addStyle('catalog/view/theme/' . $this->config->get('config_template') . '/stylesheet/multiseller.css'); $data = array_merge($data, $this->load->language('multiseller/multiseller')); $this->load->model('localisation/country'); $this->load->model('localisation/zone'); $this->load->model('tool/image'); $seller_id = $this->MsLoader->MsProduct->getSellerId($this->request->get['product_id']); $seller = $this->MsLoader->MsSeller->getSeller($seller_id); if (!$seller) { $data['seller'] = NULL; } else { $data['seller'] = array(); if (!empty($seller['ms.avatar'])) { $data['seller']['thumb'] = $this->MsLoader->MsFile->resizeImage($seller['ms.avatar'], $this->config->get('msconf_seller_avatar_product_page_image_width'), $this->config->get('msconf_seller_avatar_product_page_image_height')); } else { $data['seller']['thumb'] = $this->MsLoader->MsFile->resizeImage('ms_no_image.jpg', $this->config->get('msconf_seller_avatar_product_page_image_width'), $this->config->get('msconf_seller_avatar_product_page_image_height')); } $country = $this->model_localisation_country->getCountry($seller['ms.country_id']); if (!empty($country)) { $data['seller']['country'] = $country['name']; } else { $data['seller']['country'] = NULL; } $zone = $this->model_localisation_zone->getZone($seller['ms.zone_id']); if (!empty($zone)) { $data['seller']['zone'] = $zone['name']; } else { $data['seller']['zone'] = NULL; } if (!empty($seller['ms.company'])) { $data['seller']['company'] = $seller['ms.company']; } else { $data['seller']['company'] = NULL; } if (!empty($seller['ms.website'])) { $data['seller']['website'] = $seller['ms.website']; } else { $data['seller']['website'] = NULL; } $data['seller']['nickname'] = $seller['ms.nickname']; $data['seller']['seller_id'] = $seller['seller_id']; $data['seller']['href'] = $this->url->link('seller/catalog-seller/profile', 'seller_id=' . $seller['seller_id']); $data['seller']['total_sales'] = $this->MsLoader->MsSeller->getSalesForSeller($seller['seller_id']); $data['seller']['total_products'] = $this->MsLoader->MsProduct->getTotalProducts(array( 'seller_id' => $seller['seller_id'], 'product_status' => array(MsProduct::STATUS_ACTIVE) )); $data['contactForm'] = $this->MsLoader->MsHelper->renderPmDialog($data); } $data['ms_product_attributes'] = $this->MsLoader->MsAttribute->getProductAttributes($this->request->get['product_id'], array('multilang' => 0, 'attribute_type'=> array(MsAttribute::TYPE_TEXT, MsAttribute::TYPE_TEXTAREA, MsAttribute::TYPE_DATE, MsAttribute::TYPE_DATETIME, MsAttribute::TYPE_TIME), 'mavd.language_id' => 0)); $data['ms_product_attributes'] = array_merge($data['ms_product_attributes'], $this->MsLoader->MsAttribute->getProductAttributes($this->request->get['product_id'], (array()))); ]]></add> </operation> и это в тпл: <?php if (isset($seller) && !empty($seller)) { ?> <hr /> <div class="ms-sellerprofile description"> <h3><?php echo $ms_catalog_product_sellerinfo; ?></h3> <div class="seller-data"> <div class="avatar-box"> <a href="<?php echo $seller['href']; ?>"><img src="<?php echo $seller['thumb']; ?>" /></a> </div> <div class="info-box"> <ul class="list-unstyled"> <li><a class="nickname" style="text-decoration: none" href="<?php echo $seller['href']; ?>"><b><?php echo $seller['nickname']; ?></b></a></li> <?php if ($seller['country']) { ?> <li><?php echo $ms_catalog_seller_profile_country; ?></b> <?php echo $seller['country']; ?></li> <?php } ?> <?php if ($seller['zone']) { ?> <li><?php echo $ms_catalog_seller_profile_zone; ?></b> <?php echo $seller['zone']; ?></li> <?php } ?> <?php if ($seller['company']) { ?> <li><?php echo $ms_catalog_seller_profile_company; ?></b> <?php echo $seller['company']; ?></li> <?php } ?> <?php if ($seller['website']) { ?> <li><?php echo $ms_catalog_seller_profile_website; ?></b> <?php echo $seller['website']; ?></li> <?php } ?> <li><?php echo $ms_catalog_seller_profile_totalsales; ?></b> <?php echo $seller['total_sales']; ?></li> <li><?php echo $ms_catalog_seller_profile_totalproducts; ?></b> <?php echo $seller['total_products']; ?></li> <?php if ($this->config->get('mmess_conf_enable') || $this->config->get('msconf_enable_private_messaging') == 2) { ?> <?php if ((!$this->customer->getId()) || ($this->customer->getId() != $seller['seller_id'])) { ?> <?php echo $contactForm; ?> <div class="contact"> <?php if ($this->customer->getId()) { ?> <div class="button-group"> <button type="button" class="btn btn-default btn-block ms-sellercontact" data-toggle="modal" data-target="#contactDialog"><span><?php echo $ms_catalog_product_contact; ?></span></button> </div> <?php } else { ?> <?php echo sprintf($this->language->get('ms_sellercontact_signin'), $this->url->link('account/login', '', 'SSL'), $seller['nickname']); ?> <?php } ?> </div> <?php } ?> <?php } ?> </ul> </div> </div> <!-- end sellerinfo --> </div> <hr /> <!-- end seller block --> <?php } ?> как это в контроллер категории прикрутить то? и еще в модель продукта код: <operation> <search position="before" index="1" offset="2"><![CDATA[ ddddreturn $query->row['total']; ]]></search> <add><![CDATA[ $sql_disable = "SELECT p.product_id as 'product_id'"; /* Filters */ if (!empty($data['filter_category_id'])) { if (!empty($data['filter_sub_category'])) { $sql_disable .= " FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (cp.category_id = p2c.category_id)"; } else { $sql_disable .= " FROM " . DB_PREFIX . "product_to_category p2c"; } if (!empty($data['filter_filter'])) { $sql_disable .= " LEFT JOIN " . DB_PREFIX . "product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN " . DB_PREFIX . "product p ON (pf.product_id = p.product_id)"; } else { $sql_disable .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)"; } } else { $sql_disable .= " FROM " . DB_PREFIX . "product p"; } $sql_disable .= " LEFT JOIN `" . DB_PREFIX . "ms_product` mp ON (p.product_id = mp.product_id)"; $sql_disable .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"; if (!empty($data['filter_category_id'])) { if (!empty($data['filter_sub_category'])) { $sql_disable .= " AND cp.path_id = '" . (int)$data['filter_category_id'] . "'"; } else { $sql_disable .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'"; } if (!empty($data['filter_filter'])) { $implode = array(); $filters = explode(',', $data['filter_filter']); foreach ($filters as $filter_id) { $implode[] = (int)$filter_id; } $sql_disable .= " AND pf.filter_id IN (" . implode(',', $implode) . ")"; } } if (!empty($data['filter_name']) || !empty($data['filter_tag'])) { $sql_disable .= " AND ("; if (!empty($data['filter_name'])) { $implode = array(); $words = explode(' ', trim(preg_replace('/\s\s+/', ' ', $data['filter_name']))); foreach ($words as $word) { $implode[] = "pd.name LIKE '%" . $this->db->escape($word) . "%'"; } if ($implode) { $sql_disable .= " " . implode(" AND ", $implode) . ""; } if (!empty($data['filter_description'])) { $sql_disable .= " OR pd.description LIKE '%" . $this->db->escape($data['filter_name']) . "%'"; } } if (!empty($data['filter_name']) && !empty($data['filter_tag'])) { $sql_disable .= " OR "; } if (!empty($data['filter_tag'])) { $sql_disable .= "pd.tag LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_tag'])) . "%'"; } if (!empty($data['filter_name'])) { $sql_disable .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql_disable .= " OR LCASE(p.sku) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql_disable .= " OR LCASE(p.upc) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql_disable .= " OR LCASE(p.ean) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql_disable .= " OR LCASE(p.jan) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql_disable .= " OR LCASE(p.isbn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql_disable .= " OR LCASE(p.mpn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } $sql_disable .= ")"; } if (!empty($data['filter_manufacturer_id'])) { $sql_disable .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'"; } $this->language->load('multiseller/multiseller'); $sql_disable .= " AND mp.list_until < NOW() AND p.status = 1"; $res_disable = $this->db->query($sql_disable); if ($res_disable->num_rows) { foreach ($res_disable->rows as $product) { $this->MsLoader->MsProduct->changeStatus((int)$product['product_id'], MsProduct::STATUS_DISABLED); $this->MsLoader->MsProduct->disapprove((int)$product['product_id']); $seller_id = $this->MsLoader->MsProduct->getSellerId((int)$product['product_id']); $mail = array( 'recipients' => $this->MsLoader->MsSeller->getSellerEmail($seller_id), 'addressee' => $this->MsLoader->MsSeller->getSellerName($seller_id), 'seller_id' => $seller_id, 'product_id' => (int)$product['product_id'] ); $this->MsLoader->MsMail->sendMail(MsMail::SMT_REMIND_LISTING, $mail); } } ]]></add> </operation> Заранее спасибо за потраченное время.
  5. Добрый день. Подскажите пожалуйста. Хочу добавить возможность доп отправки письма из админки тут http://prntscr.com/iyv8qc Кнопку вывел так : <div class="form-group"> <label class="col-sm-2 control-label">Отправить письмо опрос (Ваше мнение)</label> <div class="col-sm-10"> <input type="checkbox" name="notify2" value="1" /> </div> </div> И изменил в этом же файле js на это: data: 'order_status_id=' + encodeURIComponent($('select[name=\'order_status_id\']').val()) + '&notify=' + ($('input[name=\'notify\']').prop('checked') ? 1 : 0) + '&notify2=' + ($('input[name=\'notify2\']').prop('checked') ? 1 : 0) + '&override=' + ($('input[name=\'override\']').prop('checked') ? 1 : 0) + '&append=' + ($('input[name=\'append\']').prop('checked') ? 1 : 0) + '&comment=' + encodeURIComponent($('textarea[name=\'comment\']').val()), Добавил в admin/model/sale/order.php следующее: $nt=0; if(isset($data['notify2'])) { $nt=(int)$data['notify2']; } if($nt) { $subject='Ваше мнение о работе компании'; $html='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> </head> <body style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #000000;"> <div>Мой текст</div> </body> </html> '; $mail = new Mail(); $mail->protocol = $this->config->get('config_mail_protocol'); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo($order_info['email']); $mail->setFrom($this->config->get('config_email')); $mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8')); $mail->setHtml($html); $mail->setText($text); $mail->send(); unset($subject); unset($html); } Что я упустил? Самое интересное то, что в опенкарт 1.5 работает нормально подобная кнопка. Проблема видимо в том, что там я добавил после public function addOrderHistory. А в опенкарт 2.1 такого не вижу. Подскажи люди добрые)
  6. alex0410

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

    Купили, шаблон не дефолтный, помощи в установке нет. Написал в личку, дал доступы, после этого молчание, на сайте онлайн, личку читает, ответа нет. Слился.
  7. Добрый день. Подскажите, как можно вывести кастомное поле в админке или киньте ссылку на какую нибудь документацию, где хоть как нибудь описано (в контроллер нужно такое то, в модель такое то). Сами поля в базу создаются по кнопке, но не могу их вывести теперь для заполнения. Буду благодарен за любую помощь. Версия ocStore 2.3
  8. Хорошо, я вам завтра напишу, как установим ocstore.
  9. Хорошо, спасибо. Значит завтра все таки поставим на ocstore. Все равно у нас еще чистый опенкарт и если делать, то уже что б эти ссылки работали) И сколько будет стоить ваше дополнение? Что б ссылки к товарам были как писали выше.
  10. в ocstore значит можно такое сделать? Кажется там есть сео про.
  11. Опенкарт Version 2.1.0.2 (trs.2.0.3.0) Из сео модулей ничего не ставили вообще, опенкарт чистый.
  12. А может вы сделаете ocmod? И на продажу, я бы сразу купил, хоть завтра
  13. у меня категории есть. я как раз таки от них и хотел избавиться в урл. Категории у меня начинаются с category/название-категории а товар нужно сделать ссылками shop/ссылка-на страницу-продукта
  14. да, так. у вас какой то модуль установлен?
  15. Подскажите пожалуйста, как можно добавить к товарам shop/ , что бы в итоге получилось sait.ru/shop/ссылка-на-товар Хотел перенести с вордпресс на опенкарт, товары перенес, ссылки тоже, но в вордпрессе в товаре ссылка имеет вид shop/ Через категории не получится сделать, т.к. они имеют другие ссылки. Пробовал ковыряться с seo_url.php но не вышло, то ко всем ссылкам добавляет shop/, то страница не найдена. Установить модуль и сгенерировать не вариант, т.к. эти ссылки уже в индексе и не хотелось бы терять позиции. Как можно это исправить?
×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.