Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

gexagen

Newbie
  
  • Posts

    32
  • Joined

  • Last visited

1 Follower

Recent Profile Visitors

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

gexagen's Achievements

Explorer

Explorer (4/14)

  • Conversation Starter
  • First Post
  • Collaborator
  • Week One Done
  • One Month Later

Recent Badges

8

Reputation

  1. Здравствуйте, форумчане. Требуется суб-подрядчик для запуска интернет-магазина на ocStore. Тематика: камнерезка и все около этого. Мелкий опт и розница. В данный момент скрипт магазина уже развернут, сделаны минимальные настройки, начато наполнение базы товаров. Клиенту понравился шаблон http://opencartforum...BE%D0%BD-visio/ Что нужно сделать: 1. Подключить указанный шаблон. 2. Выполнить адаптацию графических элементов дизайна (логотип компании, шапка сайта, фон страницы) на основе материалов предоставленных заказчиком. 3. Выполнить настройку скрипта под требования заказчика. Из форм оплаты пока подразумевается только выставление счета для оплаты по безналу. Доставка - самовывоз или по городу. Вообще, магазин делается более для своих, т.е. чтоб постоянные клиенты могли в он-лайне заказы формировать. Но не исключается и работа со сторонними частниками/организациями. Срок запуска до 20 чисел мая. Т.е. чуть менее месяца. Если интересно взяться за работу, скидывайте предложения в личку.
  2. Это под каким браузером у Вас такая картина? У себя постоянно отслеживаю в ИЕ6, ФФ и Хроме, везде все нормально, таких косяков не вижу. А по поводу полезности: по данным Яндекс Метрики за неделю пользователи расставляю 8-10 закладочек-ссылочек. Принимая во внимание, что Яндекс сейчас индексирует некоторые соц.сети, не так уж и плохо. Да и дополнительный бесплатный трафик думаю тоже еще никому не помешал.
  3. Никто мне не отвечает, чтож, придется самому себе ответить... Глядя на страницу настройки блока "Поделиться" http://api.yandex.ru/share/ может сложиться неверное представление, что количество социальных сервисов ограничено предложенными 9-ю системами... Так вот же нет! И вы сами можете убедиться в этом на моём сайте: http://androidipad.ru/. Итак, приступаем к тонкому тюнингу блока "Поделиться". Список доступных на сегодняшний день для блока социальных сервисов опубликован в документации по API блока, я приведу его и здесь: blogger - Blogger; digg - Digg; evernote - Evernote; delicious - delicious; facebook - facebook; friendfeed - FriendFeed; gbuzz - Google Buzz; greader - Google Reader; juick - Juick; liveinternet - LiveInternet; linkedin - LinkedIn; lj - Живой Журнал; moikrug - Мой Круг; moimir - Мой Мир; myspace - MySpace; odnoklassniki - Одноклассники.ru; twitter - Twitter; vkontakte - ВКонтакте; yaru - Я.Ру; yazakladki - Яндекс.Закладки. Итого, 20 различных сервисов на все вкусы и предпочтения! Далее, находим в скрипте, который предлагает нам Яндекс строку data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir" здесь перечислены коды активных соц. сервисов. Вставляем сюда через запятую коды нужных нам сервисов и телемаркет! Имеем кастомный дизайн блока "Поделиться"!
  4. Без автоматики всё просто, Выписываете ему купон на скидку, там Вам и процент можно указать, и срок действия и количество применений. Отправляете на мыло ко дню рождения, вместе с поздравлениями. А вот чтоб все это в автоматическом режиме крутилось... тут без программирования не получится...
  5. Тема социальных кнопок уже неоднократно поднималась на форуме, например, здесь и здесь. Я и сам успел отметиться в обеих топиках, предложив как вариант на самописном коде, встроенном в шаблон страниц, так и новый сервис «Поделиться» от Яндекса. Не без успеха пропиарив Яндекс, я сам, по-прежнему, использовал собственный код на своём сайте. Просто было лень переделывать уже сделанное и отлаженное, и работающее. Но вот, произошло событие, которое заставило меня побороть лень и внести изменения в шаблоны, перейдя на использование социальных кнопок от Яндекс. Я имею в виду, новые отчеты в системе Яндекс.Метрика. Теперь вы можете узнать сколько и каких постов было отправлено вашими посетителями в различные социальные сети и сервисы. Кроме того, и сам сервис немного повзрослел: увеличилось количество кнопок-сетей и различных вариантов оформления (http://api.yandex.ru/share/). Так же, несомненным плюсом сервиса «Поделиться» является простота установки на сайт. Вам нужно просто разместить несколько строк java-script кода в соответствующем месте шаблона и всё! Я, например, вставил его в файл \catalog\view\theme\default\template\common\header.tpl, таким образом кнопки у меня располагаются на всех страницах сайта, а не только на страницах товаров и новостей. Что, лично мне, кажется более удобным и правильным. Смотреть здесь: http://androidipad.ru/
  6. Поддержим Российского производителя! С недавних пор, в API Яндекса появился следующий инструмент: Блок «Поделиться» для вашего сайта. Найти его можно вот по этой ссылке: http://api.yandex.ru/share/ Возможность настройки внешнего вида и выбора соц. сервисов для постинга: # Я.ру # Вконтакте # Facebook # Twitter # Одноклассники # МойМир # Livejournal # Friendfeed # Мой круг Встраивается путем размещения JavaScript'а в соответствующем месте страницы (читай - шаблона). Очень просто и вполне юзабельно. Сам использую и вам советую.
  7. Сейчас уже не вспомню названия городов и сёл... Ну не Москва с Питером, конечно... но тем не менее, в других, столь же удаленных от метрополий точках, оплата проходила без проблем. Т.е. это однозначно некомпетентность, либо лень сотрудников. :( Счёт у меня на ИП. Налоги плачу. ;)
  8. За время работы моего магазина несколько раз получал от покупателей жалобы на то, что им отказали в проведении платежа по квитанции с сайта сославшись на "недействующий" или "несуществующий" счет. Ломал голову, перепроверял все цифры в квитанции - все в порядке, все правильно! Сходил, наконец, в местное отделение СБ и выяснил в чем там дело. Оказывается, у СБ есть внутренняя база расчетных счетов, или какой-то алгоритм, который по номеру расчетного счета определяет все остальные реквизиты платежа. Так вот, он не всегда эти реквизиты определяет, выдавая сообщение типа "счет не найден". В этом случае опытная операционистка просто вносит все оставшиеся реквизиты (БИК, кор. счет и т.д.) ручками, а неопытная или ленивая просто посылает вашего клиента куда подальше... Вот. И далеко не каждый из посланных будет с вами связываться для выяснения причин произошедшего, кто-то может вообще подумать, что вы - мошенник, раз у вас со счетом какие-то проблемы... Дописал в шаблон квитанции внизу примечание вот такого содержания: Уважаемый сотрудник Сбербанка России! Если после ввода номера расчетного счета Вы получили сообщение о несуществующем или недействующем счёте, пожалуйста, продолжите оформление перевода, указав остальные платежные реквизиты (БИК, кор. сч. и т.д.) вручную. У нас действующий и существующий счет. Платежи по указанным выше реквизитам проходят нормально. Надеюсь, поможет... не только мне ;)
  9. Для правильного расчета скидки в процентах необходимо привести значения переменных Цены и Спецпредложения обратно к числам, т.к. там они уже хранятся в виде отформатированных стрингов с лишними запятыми и точками. Я это сделал так: после строки <td width="25%"><?php if (isset($products[$j])) { ?> в соответствующих шаблонах вставил: <?php if ($products[$j]['special']) { $gxrc = array(',','.'); $gxsp = (int)str_replace($gxrc,'',$products[$j]['special']); $gxpr = (int)str_replace($gxrc,'',$products[$j]['price']); ?> <div id="header"><div class="label"><?php echo '-'.(int)(($gxpr - $gxsp)/$gxpr*100).'%'; ?></div></div> <?php } ?> В моем магазине цены указываются всегда, поэтому лишнюю проверку я просто отключил. Названия переменных и классов у меня тоже свои, можно менять. Идея, думаю, понятна...
  10. Здесь уже обсуждался вопрос о том, что система скидок в OpenCart не слишком гибкая. Например, на вкладке "Специальное" можно задать акционную цену на товар, но, к сожалению, только в абсолютном, т.е. денежном выражении. Сами понимаете, что это крайне не удобно: меняется цена на товар - вам нужно пересчитывать цену по акции, акции бывают разные и с разными скидками, и каждый раз нужно все считать, считать, считать... А как было бы здорово, если можно было бы указывать величину скидки в таких привычных и понятных для всех процентах! Ну что ж, попробуем реализовать нашу идею, минимальными затратами, без сложных переделок. Например, можно сделать такое условие: если цена по акции больше 1, то значит она указана традиционным способом, т.е. в денежном выражении, если же цена по акции меньше 1, то она указана в процентном выражении. Например, значение цены 0.95 соответствует 5% скидке, а 0.85 скидке в 15%. Теперь осталось модифицировать код системы для правильного расчета цены по акции. Начнем с основной страницы отображения товара, файла catalog\controller\product\product.php, необходимо модифицировать код следующим образом: $this->data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); $special = $this->model_catalog_product->getProductSpecial($this->request->get['product_id']); if ($special < 1) $special = (int)($product_info['price'] * $special); // наша строка для расчета скидки в процентах if ($special) { это для основного продукта страницы. И еще в одном месте: $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); $special = $this->model_catalog_product->getProductSpecial($result['product_id']); if ($special < 1) $special = (int)($result['price'] * $special); // наша строка для расчета скидки в процентах if ($special) { это для рекомендуемых продуктов. Аналогично второму фрагменту нужно внести изменения в следующие файлы: catalog\controller\product\category.php catalog\controller\product\manufacturer.php catalog\controller\product\search.php catalog\controller\module\bestseller.php catalog\controller\module\featured.php catalog\controller\module\latest.php catalog\controller\module\special.php После внесения этих изменений у вас на сайте везде должен заработать новый способ расчета цены спец-предложения, проверьте. А вот корзина все равно считается не правильно! Пришлось повозиться. Изменения нужно внести в файл: system\library\cart.php $product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$customer_group_id . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1"); if ($product_special_query->num_rows) { if ($product_special_query->row['price'] < 1) $price = (int)($product_query->row['price'] * $product_special_query->row['price']); // это две новых строки else $price = $product_special_query->row['price']; // это две новых строки } else { $price = $product_query->row['price']; } После этого изменения ваша корзина будет считаться так, как нам нужно. Вот и все, прошу экспериментировать и комментировать. ПС: изменения производились на ocStore 0.1.1, но не думаю, что на других версиях что-то по-другому. ППС: маленький бонус от переделки: теперь, наконец-то, можно легко и просто устанавливать постоянные скидки для постоянных клиентов в зависимости от статуса (группы) клиента. И не надо каждый раз пересчитывать кучу цен...
  11. Тоже встал на эти грабли. Причина в следующем: В шапке шаблона содержится тег: <base href="http://ваш_домен/" /> который указывает браузеру, что все относительные ссылки нужно делать от корня сайта, а не от текущего адреса страницы. Решений множество: 1. Удаляем в файле /catalog/view/theme/ваша_тема/template/common/header.tpl строку с этим тегом. Я у себя так и сделал, пока полёт нормальный, глюков не обнаружил, хотя и опасался, что в аяксе что-либо перестанет работать или ещё где. 2. Присваиваем правильное значение переменной $base, это нужно в файле /catalog/controller/common/header.php поправить вот этот код: if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) { $this->data['base'] = HTTPS_SERVER; } else { $this->data['base'] = HTTP_SERVER; } К адресу сервера нужно добавить адрес страницы. Этот способ не пробовал, он по своему эффекту должен быть абсолютно идентичен первому, т.к. при отсутствии в <head> тега <base> за базу принимается текущий адрес. Странно, что эта ошибка так скромно обсуждается, что, никто не пользует якоря на свих сайтах?
  12. Привет! Тоже много думал над этим. К сожалению, вся система акций, спец-предложений и купонов в OpenCart пока не очень гибкая-настраиваемая. Удалось выяснить только вот что: Возможности применения нескольких купонов к одному заказу нет (и слава богу). Т.е. при применении каждого нового купона к одному заказу стоимость пересчитывается согласно примененному купону от первоначальной цены. К сожалению, купон действует на акции и спец-предложения. У себя на сайте я вынужден при проведении акции по каким-то товарам отключать действие купона на них путем добавления всех неакционных товаров в те, на которые действует купон. Это гемморойно и не очень удобно (очень не удобно). А хотелось бы, чтоб можно было указывать: товары на которые действует купон или товары на которые он не действует, причем, как на уровне товаров, так и на уровне категорий. Хотелось бы сделать такую возможность, чтоб пользователь мог приобрести товар по минимальной цене, т.е. если по акции скидка 5%, а у него купон на 10%, то он получает товар по цене Первоначальная - 10%, а если скидка по акции больше, чем по купону, то по акционной цене... Хотелось бы иметь возможность устанавливать скидку по акциям и спец-предложениям в процентах а не только в виде конечной цены... Эх, мечты-мечты... а кто делать будет? ПС: а кто знает, в чем разница между вкладками Скидка и Специальное в редактировании товара? Кто-то разобрался с механизмом их действия?
  13. Хм. До переезда форума на новый движок все было чики-пуки (в тексте моего сообщения), а вот после переезда оно превратилось в какой-то хлам :( Интересно, другие полезные решения тоже пострадали подобным образом? Поправил ручками, смотрите выше.
  14. Самоё простое - прописать в файл шаблона - catalog/view/theme/ваша тема/template/product/product.tpl Например вот так: <?php $gx_page = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; $gx_title = $heading_title; ?> <div id="socialbuttons"> <a href="http://vkontakte.ru/share.php?url=<?php echo $gx_page; ?>ℑ=<?php echo $thumb; ?>" target="vkontakte" rel="nofollow" onClick="window.open('','vkontakte','width=600,height=400')">[img=/catalog/view/theme/androidipad/image_s/vkontakte.png]</a> <a href="http://twitter.com/home?status=<?php echo $gx_page; ?> <?php echo $gx_title; ?>" target="_blank" rel="nofollow">[img=/catalog/view/theme/androidipad/image_s/twitter.png]</a> <a href="http://my.ya.ru/posts_add_link.xml?URL=<?php echo $gx_page; ?>&title=<?php echo $gx_title; ?>" target="_blank" rel="nofollow">[img=/catalog/view/theme/androidipad/image_s/yandex.png]</a> <a href="http://connect.mail.ru/share?share_url=<?php echo $gx_page; ?>" target="_blank" rel="nofollow">[img=/catalog/view/theme/androidipad/image_s/mailru.png]</a> <a href="http://www.google.com/bookmarks/mark?op=edit&output=popup&bkmk=<?php echo $gx_page; ?>&title=<?php echo $gx_title; ?>" target="_blank" rel="nofollow">[img=/catalog/view/theme/androidipad/image_s/google.png]</a> <a href="http://www.google.com/buzz/post?url=<?php echo $gx_page; ?>&message=<?php echo $gx_title; ?>" target="_blank" rel="nofollow">[img=/catalog/view/theme/androidipad/image_s/google-buzz.png]</a> <a href="http://www.blogger.com/blog_this.pyra?t&u=<?php echo $gx_page; ?>&n=<?php echo $gx_title; ?>&a=ADD_SERVICE_FLAG&passive=true&alinsu=0&aplinsu=0&alwf=true&hl=ru&skipvpage=true&rm=false&showra=1&fpui=2&naui=8" target="_blank" rel="nofollow">[img=/catalog/view/theme/androidipad/image_s/blogger.png]</a> <a href="http://www.livejournal.com/update.bml?event=<a href="<?php echo $gx_page; ?>"><?php echo $gx_title; ?></a>&subject=<?php echo $gx_title; ?>" target="_blank" rel="nofollow">[img=/catalog/view/theme/androidipad/image_s/livejournal.png]</a> </div> Вставляем в любое удобное место. Картинки кнопок должны лежать в соответствующем месте, у меня это, как видите, специальная папочка в папке моей темы оформления. Ну и количество кнопок в этом модуле можно тоже нарастить по аналогии...Внимание! Приведенный код корректно работает только при включенных SEO-url (или ЧПУ). Без этого будут съедаться все переменные в адресе вашей страницы следующие после символа &... как победить эту проблему без использования javascript-ов я так и не нашел решения... https://opencartforum.com/public/style_emoticons/default/icon_question.gif Пример смотреть здесь: http://androidipad.ru/smartqt7?from=ocforum
  15. Изменения не вносились, в чём ошибка разобрался. Проблема вот в чём: Файл /admin/catalog/model/product.php, функция addProduct, строки: $this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$product_id . "', related_id = '" . (int)$related_id . "'"); $this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$related_id . "', related_id = '" . (int)$product_id . "'"); первая строка создаёт в базе рекомендуемых пару: Товар - Рекомендуемый, вторая создаёт обратную пару Рекомендуемый - Товар. Т.е. авторы скрипта полагают, что если я рекомендую к товару А, товар Б, то и обратная рекомендация тоже истина. Но мне кажется, это не всегда так... Это во-первых... А во-вторых, это и приводит к описанной выше ошибке - созданию множества перекрестных ссылок которых никто не создавал.Аналогичный фрагмент кода есть и в функции editProduct: $this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$product_id . "', related_id = '" . (int)$related_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$related_id . "' AND related_id = '" . (int)$product_id . "'"); $this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$related_id . "', related_id = '" . (int)$product_id . "'"); В общем, я у себя эти фрагменты кода, которые работают с обратной парой (Рекомендуемый - Товар) отключил. Посмотрю что получится. ПС: а что, кроме меня никто не пользуется функцией копирования товаров?
×
×
  • Create New...

Important Information

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