-
Публікації
93 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Усі публікації користувача stebgo
-
в таблице oc_order ? уже делал, в дополнительном магазине прописал с https обе ссылки, теперь заказы приходят с https адресом правил файл admin/controller/sale/order.php $data['store_url'] = $order_info['store_url']; заменял на if ($this->request->server['HTTPS']) { $data['store_url'] = str_replace('http://', 'https://', $order_info['store_url']); } else { $data['store_url'] = $order_info['store_url']; } так же пробовал replace all $data['store_id'] = $order_info['store_id']; with $data['store_id'] = HTTPS_CATALOG; // $order_info['store_id']; in admin/controller/sale/order.php прописывал все ссылки в файлах config.php c https попробовал все бесплатные дополнения с opencart.com которые правят api
-
Здравствуйте. Возникает ошибка при редактировании или просмотре заказа, а также при попытке изменить статус заказа который был создан через дополнительный магазин (созданный средствами opencart) На основном магазине все работает без ошибок. Версия магазина OcStory 2.1.0.2 На обоих магазинах используется ssl ошибка аналогичная описанным в постах при просмотре, редактировании и изменении статуса заказа появляется всплывающее сообщение перепробовал все способы описанные на этом и других форумах и сайтах, но ничего не помогло. Как я понимаю все эти способы работают для основного магазина. При просмотре ошибок на странице просмотра заказа (через хром - f12) показывает следующую ошибку jquery-2.1.1.min.js:4 Mixed Content: The page at 'https://manuart.net/admin/index.php?route=sale/order/info&token=XWTzUCtgJk1kWPCH144rmS1JdySZLj6w&order_id=281' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://manuart.net.pl/index.php?route=api/login'. This request has been blocked; the content must be served over HTTPS. send @ jquery-2.1.1.min.js:4 ajax @ jquery-2.1.1.min.js:4 (anonymous) @ index.php?route=sale/order/info&token=XWTzUCtgJk1kWPCH144rmS1JdySZLj6w&order_id=281:714 в журнале ошибок ничего не отображает. Пожалуйста, помогите решить данную проблему.
-
Здравствуйте. Хочу установить на свой магазин который имеет два домена с общей админкой. Как в моем случае будет работать дополнение? его нужно купить только для одного домена? Я использую ocstore 2,1,0,2 и в нем уже имеется кое какая разметка, которая выводится в head страницы, что делать с ней - удалить, оставить или ваш модуль сам все сделает? Можно ли отключить разметку для самих отзывов, я их немного переделал и меня вроде как все устраивает.
- 2 050 відповідей
-
- микроразметка
- микроданные
- (і ще %d)
-
Здравствуйте. Перестал подходить ключ после обновления с версии 1,2 на 1,4. Я писал вам в личном сообщении (ответ на сообщение где вы прислали ключ после покупки) но ответа нет.
-
Спасибо за ответ. В админке я нашел только ссылку на данные для России и Украины. В них есть данные ip адресов (создается таблица simple_geo_ip), если я правильно понял это адреса только для России и Украины и для других стран нет способа определения по ip кроме как создавать свою базу ip под формат вашей базы? Что означает в базе данных simple_geo_ip поле geo_id?
-
Здравствуйте. Вчера обновил модуль с 4,7+ до текущей версии, был немного удивлен новому оформлению, но недосчитался некоторого функционала и непонятной работы настроек при мульти-магазинах. Появились разные настройки для мульти-магазинов (вроде функция логичная и нужная), но непонятно это вообще все настройки для каждого отдельного магазина или только определенные настройки отличаются, можно ли как-то объединить эти настройки? ну не нужны мне три разные корзины в трех одинаковых магазинах. Может хоть импорт какой есть, дабы исключить возможность в одном из вариантов настроек забыть поставить нужную настройку. Исчезло определение страны пользователя по ip и авто заполнение адреса на основании индекса по данным гугла. Было очень удобно, когда покупатель зайдя в корзину сразу видел стоимость доставки в его страну, а не просьбу заполнить адрес.
-
Здравствуйте. Может вы можете сделать возможность добавления товаров по фильтрам магазина? (на вкладке установка акций) непонятно для чего нужны группы акций - только для фильтра? Было бы неплохо сделать возможность периодичности акций - раз в год, месяц, час.
- 303 відповіді
-
- таймер
- таймер акции
- (і ще %d)
-
-
- таймер
- таймер акции
- (і ще %d)
-
может у кого есть идеи по поводу методики начисления бонусных баллов за отзыв. интересно чужое мнение... опишите способ заставить покупателя писать хорошие длинные отзыва с нужными ключами.
- 6 відповідей
-
- opencart 2.1.0.2
- reviews
- (і ще %d)
-
Мультиязычные отзывы для людей, для поисковиков или и то и другое :ph34r: В общем сделал два варианта: Описание, принцип работы, +/ - вариант 1 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 1) phpMyAdmin Открываем вашу базу в phpMyAdmin или в том что вы используете, находим таблицу (префикс вашей таблицы)_review и добавляем в структуру еще одно поле: language не знаю какие параметры более правильно указать, себе сделал int(5) 2) Модель Открываем файл /catalog/model/catalog/review.php находим в начале кода $this->db->query("INSERT INTO " . DB_PREFIX . "review SET author = '" . $this->db->escape($data['name']) . "', customer_id = '" . (int)$this->customer->getId() . "', product_id = '" . (int)$product_id . "', text = '" . $this->db->escape($data['text']) . "', rating = '" . (int)$data['rating'] . "', date_added = NOW()"); и меняем ее на $this->db->query("INSERT INTO " . DB_PREFIX . "review SET author = '" . $this->db->escape($data['name']) . "', customer_id = '" . (int)$this->customer->getId() . "', product_id = '" . (int)$product_id . "', text = '" . $this->db->escape($data['text']) . "', rating = '" . (int)$data['rating'] . "', date_added = NOW()"); тут добавлена запись языка в поле которое добавили в таблицу. ------------------------------------------------------------------------------------------------------------------------------ В конце кода, перед последним закрывающим знаком } вставляем две функции public function getReviewsByProductId2($product_id, $start = 0, $limit = 20) { if ($start < 0) { $start = 0; } if ($limit < 1) { $limit = 20; } $query = $this->db->query("SELECT r.review_id, r.author, r.rating, r.text, p.product_id, pd.name, p.price, p.image, r.date_added FROM " . DB_PREFIX . "review r LEFT JOIN " . DB_PREFIX . "product p ON (r.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = '" . (int)$product_id . "' AND p.date_available <= NOW() AND p.status = '1' AND r.status = '1' AND r.language = '" . (int)$this->config->get('config_language_id') . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY r.date_added DESC LIMIT " . (int)$start . "," . (int)$limit); return $query->rows; } public function getTotalReviewsByProductId2($product_id) { $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r LEFT JOIN " . DB_PREFIX . "product p ON (r.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = '" . (int)$product_id . "' AND p.date_available <= NOW() AND p.status = '1' AND r.status = '1' AND r.language = '" . (int)$this->config->get('config_language_id') . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "'"); return $query->row['total']; } что это ------------------------------------------------------------------------------------------------------------------------------------------------- 3) controller Открываем файл /catalog/controller/product/product.php и, если вы делали отзывы по моему рецепту, найдите в коде, который вы вставили, следующее $review_total = $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id']); $results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5); и замените его на это $review_total = $this->model_catalog_review->getTotalReviewsByProductId2($this->request->get['product_id']); $results = $this->model_catalog_review->getReviewsByProductId2($this->request->get['product_id'], ($page - 1) * 5, 5); изменились только названия функций на те что мы добавили в модель getTotalReviewsByProductId2 и getReviewsByProductId2 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ На этом первый вариант закончен. он требует доработки проблем описанных в начале поста, но в принципе уже работает. дальше вариант 2 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Возвращаем ajax для отзывов без ajax :ugeek: Открываем шаблон товара (по умолчанию тут /catalog/view/theme/default/template/product/product.tpl) И возвращаем обратно $('#review').delegate('.pagination a', 'click', function(e) { e.preventDefault(); $('#review').fadeOut('slow'); $('#review').load(this.href); $('#review').fadeIn('slow'); }); $('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>'); если вы вставляли мой костыль для перемотки к отзывам, то он больше не нужен. Все, теперь мультиязычные и доступные для поисковиков отзывы с загрузкой через ajax у вас должны работать.... если вы не накосячили и я чего не забыл написать.... PS Знающие люди! гляньте глазом, может такую ересь нельзя на реальный магазин ставить ..... напишите что подправить.
- 6 відповідей
-
- 1
-
-
- opencart 2.1.0.2
- reviews
- (і ще %d)
-
Косяк исправил, добавил в первый пост описание исправлений
- 6 відповідей
-
- opencart 2.1.0.2
- reviews
- (і ще %d)
-
есть один косяк - при переходе на вторую и далее страницу отзывов из ссылки на 1 страницу удаляется только page=1 на ссылке остаётся висеть ?review_ помогите с этим разобраться. где происходит удаление page для первой страницы? вроде должно быть в /system/library/pagination.php но сейчас нет времени разбираться, только ночью :) если кто найдет решение, напишите.
- 6 відповідей
-
- opencart 2.1.0.2
- reviews
- (і ще %d)
-
Здравствуйте :) Эта тема для тех: 1) кого не устраивают стандартные отзывы товаров с ajax в opencart 2 и ocStrore 2 2) кому не подходят, не нравятся, или нет желания покупать готовые решения отзывов для товаров 3) кто хочет немного погеммороится с кодом, но понять как все это работает и что можно сделать под свои запросы. 4) для истинных программистов-альтруистов готовых безвозмездно помочь советом и кодом. ! Я очень плохо знаю PHP, HTML, CSS, javascript ! Любой код написанный мной может содержать ошибки, являться говнокодом, снижать безопасность и т. д. ! Комментарии делаю для своего магазина (ocStore 2.1.0.2) на который планирую переходить с версии 1,5 - по этому рассматриваю, тестирую, настраиваю код только для этой версии ocSrore. ! Я надеюсь на помощь - для этого и создал тему. Комментарии без ajax для opencart / ocstore 2.1.0.2 В файле /catalog/controller/product/product.php найти $this->model_catalog_product->updateViewed($this->request->get['product_id']); и после нее вставить следующее $this->load->model('catalog/review'); $data['text_no_reviews'] = $this->language->get('text_no_reviews'); if (isset($this->request->get['review_page'])) { $page = $this->request->get['review_page']; } else { $page = 1; } $data['reviews_array'] = array(); $review_total = $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id']); $results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5); foreach ($results as $result) { $data['reviews_array'][] = array( 'author' => $result['author'], 'text' => nl2br($result['text']), 'rating' => (int)$result['rating'], 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])) ); } $pagination = new Pagination(); $pagination->total = $review_total; $pagination->page = $page; $pagination->limit = 5; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/product', $url . '&product_id=' . $this->request->get['product_id']. '&review_page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($review_total) ? (($page - 1) * 5) + 1 : 0, ((($page - 1) * 5) > ($review_total - 5)) ? $review_total : ((($page - 1) * 5) + 5), $review_total, ceil($review_total / 5)); // http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html if ($page == 1) { $this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical'); } elseif ($page == 2) { $this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'prev'); } else { $this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']) . '&review_page='. ($page - 1), 'prev'); } $limit = 5; if ($limit && ceil($review_total / $limit) > $page) { $this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']) . '&review_page='. ($page + 1), 'next'); } Что тут, откуда и для чего Находим и удаляем или закомментируем // $this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical'); так как это появилось в наших отзывах и изменяется от условий. На этом с файлом /catalog/controller/product/product.php закончили ----------------------------------------------------------------------------------------------- в файле /system/library/pagination.php после строки $num_pages = ceil($total / $limit); вставить $pages = array("review_page={page}", "page={page}"); review_page можно заменить на то что вы хотите и изменили в контроллере и шаблоне далее находим такие строки $output .= '<li><a href="' . str_replace('&', '&', rtrim( str_replace('page={page}', '', $tmp_url), '?&')) . '">' . $this->text_first . '</a></li>'; $output .= '<li><a href="' . str_replace('&', '&', rtrim( str_replace('page={page}', '', $tmp_url), '?&')) . '">' . $this->text_prev . '</a></li>'; $output .= '<li><a href="' . str_replace('&', '&', rtrim( str_replace('page={page}', '', $tmp_url), '?&')) . '">' . $i . '</a></li>'; и заменяем в них 'page={page}' на $pages в итоге получим такой код в файле /system/library/pagination.php Открываем файл шаблона ( если по умолчанию то /catalog/view/theme/default/template/product/product.tpl) находим <div id="review"></div> или то место куда ajax вставляет отзывы и вставляем в этот div <?php if ($reviews_array) { ?> <?php foreach ($reviews_array as $review) { ?> <table class="table table-striped table-bordered"> <tr> <td style="width: 50%;"><strong><?php echo $review['author']; ?></strong></td> <td class="text-right"><?php echo $review['date_added']; ?></td> </tr> <tr> <td colspan="2"><p><?php echo $review['text']; ?></p> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($review['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } ?> <?php } ?></td> </tr> </table> <div itemprop="review" itemscope itemtype="http://schema.org/Review"> <meta itemprop="itemReviewed" content="<?php echo $heading_title; ?>" > <meta itemprop="author" content="<?php echo $review['author']; ?>" > <meta itemprop="datePublished" content="<?php $date1 = strtotime($review['date_added']); $new_date = date('Y-m-d', $date1); echo $new_date; ?>"> <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"> <meta itemprop="worstRating" content = "1"/> <meta itemprop="ratingValue" content="<?php echo $review['rating']?>"/> <meta itemprop="bestRating" content = "5"/> </div> <meta itemprop="description" content="<?php echo $review['text']; ?>" /> </div> <?php } ?> <div class="text-right"><?php echo $pagination; ?></div> <?php } else { ?> <p><?php echo $text_no_reviews; ?></p> <?php } ?> тут есть мои костыли Удаляем обработку ajax, находим почти в самом низу кода: $('#review').delegate('.pagination a', 'click', function(e) { e.preventDefault(); $('#review').fadeOut('slow'); $('#review').load(this.href); $('#review').fadeIn('slow'); }); $('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>'); можно вместо него вставить: $(document).ready(function() { <?php if(isset($_GET['review_page'])){ ?> $('a[href=\'#tab-review\']').trigger('click'); var scrollTop = $('#tab-review').offset().top; $(document).scrollTop(scrollTop); <?php } ?> }); тогда при пагинации будет открываться таб с отзывами и скролл к нему (не работает при переходе обратно на первую страницу) --------------------------------------------------------------------------------------------------------------------- Вот и все -------------- Большая часть материала взята с сайта http://cmykon.com.ua/opencart/otzyvy-bez-ajax-ili-seo-otzyvy-v-opencart/ не работает в opencart 2.1.0.2 В планах: 1) вывод отзывов в зависимости от текущего языка 2) начисление баллов за отзыв Буду благодарен за исправления ошибок и костылей.
- 6 відповідей
-
- 3
-
-
- opencart 2.1.0.2
- reviews
- (і ще %d)
-
Здравствуйте. Подскажите что за интеграция с торговой площадкой etsy.com появилась в OC2 - поиск практически не дал результатов кроме того что интеграция вроде есть. В админке ничего не нашел, но есть два файла в admin/model/openbay/ - etsy.php и etsy_product.php , есть файлы и в папке admin/controller/openbay/ немного больше, а так же в папке шаблона админки. что это, для чего и как использовать? есть какой то https://www.openbaypro.com/ с драконовскими тарифами.
-
под меня не нужно делать перевод, нужно делать согласно нормам - весь текст в языковом файле в папке нужного языка. та же история и с файлами стилей и кодом. почему текст счетчика - дни, минуты итд для страницы товара находится в php файле, а для страницы категории в файле скрипта? что означает <operation error="skip"> в xml файле? ЗЫ Я просто хочу что бы вы сделали качественный модуль :) который стоит своих денег, наведите порядок и доработайте.
- 303 відповіді
-
- таймер
- таймер акции
- (і ще %d)
-
Здравствуйте. Таймер работает но... это нельзя назвать модулем. 1) Зачем он мне меняет настроенные мной стили для кнопки купить на странице товара, заменяет полностью на ваш стиль. 2) у меня магазин на 3-х языках, и то что прописано у вас в коде для англоязычных покупателей - шлак (текст удалил). 3) Зачем в папку catalog/view/javascript пихать css и php файлы думал сэкономить время на создании собственного счетчика, купил...... уже переделал под себя, но другим не советую его покупать в текущем состоянии. ЗЫ в придачу, если страница долго открыта она перестает отвечать, браузеры хром и мазила выдают ошибку. этот модуль нельзя продавать. DEL ...
- 303 відповіді
-
- таймер
- таймер акции
- (і ще %d)
-
Здравствуйте. В настройках модуля можно настроить разные поля, способы доставки и оплаты для разных групп покупателей. Но нельзя настроить "Минимальные/максимальные значения" для разных групп покупателей - для обычных покупателей одна сумма или кол-во для оптовых другие значения. Добавьте пожалуйста такую настройку если не сложно.
-
как сделать валидацию нижнего подчеркивания _ , такое мыло [email protected] не проходит валидацию
-
вроде работает оставил только // Language Detection $languages = array(); $query = $db->query("SELECT * FROM " . DB_PREFIX . "language WHERE status = '1'"); foreach ($query->rows as $result) { $languages[$result['code']] = $result; } $code = $config->get('config_language'); $config->set('config_language_id', $languages[$code]['language_id']); $config->set('config_language', $languages[$code]['code']); // Language $language = new Language($languages[$code]['directory']); $language->load($languages[$code]['filename']); $registry->set('language', $language); Посмотрите, может это как то плохо я сделал :)
-
вот нашел кусок кода в index.php // Language Detection $languages = array(); $query = $db->query("SELECT * FROM " . DB_PREFIX . "language WHERE status = '1'"); foreach ($query->rows as $result) { $languages[$result['code']] = $result; } $detect = ''; if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && ($request->server['HTTP_ACCEPT_LANGUAGE'])) { $browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']); foreach ($browser_languages as $browser_language) { foreach ($languages as $key => $value) { if ($value['status']) { $locale = explode(',', $value['locale']); if (in_array($browser_language, $locale)) { $detect = $key; } } } } } if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) { $code = $session->data['language']; } elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages) && $languages[$request->cookie['language']]['status']) { $code = $request->cookie['language']; } elseif ($detect) { $code = $detect; } else { $code = $config->get('config_language'); } if (!isset($session->data['language']) || $session->data['language'] != $code) { $session->data['language'] = $code; } if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) { setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']); } $config->set('config_language_id', $languages[$code]['language_id']); $config->set('config_language', $languages[$code]['code']); // Language $language = new Language($languages[$code]['directory']); $language->load($languages[$code]['filename']); $registry->set('language', $language); тут, если я правильно понимаю и происходит определение языка. ЗЫ у меня для каждого языка свой домен, по этому и возникла такая проблема, хочу продвигать каждый магазин отдельно в своей языковой зоне.
-
Нужно отключить любой автоматический выбор языка на сайте, так как некоторые поисковики все равно индексируют страницы не на том языке который должен быть по умолчанию и есть проблемы у некоторых покупателей. не могу понять где устанавливается язык. /catalog/model/localisation/language.php - вывод всех языков но это не то. подскажите пожалуйста хоть строчку кода которая установит язык, дальше я сам доделаю в зависимости от id магазина.
-
удалил <?php echo $currency; ?> вроде получше стало, но все равно автоматом определяет язык. Подскажите в к каком файле происходит определение языка посетителя и в каком файле происходит запись выбранного языка в куки
Останні розширення
-
-
SP Cool Timer Автор: spectre
-
Всі товари магазину Автор: kJlukOo
-
-
Список Замовлень PRO Автор: Parallax