Сегодня расскажу вам какой интернет-магазин мне достался на поддержку сайта и как там удалось создать калькулятор цены товара в зависимости от итоговой суммы заказа. Сам скрипт выложу тоже, но как мне кажется куда полезнее будет описать алгоритм калькулятора.

Как я уже писал ранее в поддержке сайта один из самых сложных моментов - это изучение устройства самой системы управления сайтом (см. пост - Система управления сайтом). Понять как там все устроено, что за чем идет и в каком состоянии сайт вообще находится. Также было и в этот раз.

Информация о сайте:

  • MODX, LLC. MODX Revolution™
  • Minishop2
  • MIGX
  • Msearch2
  • CustomURLs

CMS достаточно распространенная, но как сразу выяснилось сайт находился в плохом состоянии. Приложение MIGX даже не запускалось, выдавая ошибку 500. Что сразу сильно насторожило и вызвало опасения что сайт совсем не пригоден к работе и нужно все переделывать. Но к счастью, основные функции сайта функционируют, со скрипом, и не всегда так как должны, но базовые потребности обеспечивают.

Перейдем к созданию самого калькулятора стоимости товара. Внешне карточка каждого товара выглядит следующим образом.

Карточка товара
Карточка товара в интернет-магазине

И там, в карточке, зеленым цветом выводится стоимость товара, если заказываешь его более чем на 50 тысяч рублей. Если заказываешь более чем на 200 тысяч, цена единицы товара еще снижается и получается, что итоговая скидка становится еще больше. Три градации цены: 1) розничная 2) оптовая и 3) суперцена, самая дешевая.

На скриншоте вы видите итоговый вариант, с уже запрограммированным, реализованным калькулятором штуки товара в зависимости от общей суммы заказа. В самом начале, там было просто поле с количеством и кнопка "в корзину".

Алгоритм реализации такого калькулятора:

  • 1) Достаем из базы данных CMS, стоимость товара в зависимости от категории. Там они были внесены в каждую карточку. Три значения в каждом товаре.
  • 2) Поместив эти значения в переменные выводим их на экран и смотрим правильные ли значения выводятся. Сравниваем с БД.
  • 3) Далее в цикле при каждом нажатии на стрелочки и увеличении количества заказанного товара делаем проверки условий:

    - Если общая сумма заказа менее 50 000 рублей, то ...
    - Если общая сумма заказа более 50 000 рублей, но менее 200 000 рублей, то ...
    - Если общая сумма заказа более 200 000 рублей, то ...
  • 4) С помощью jquery передаем эти значения напрямую в заранее отформатированные <span>.
  • 5) Делаем дополнительный вывод итоговой цены без скидки, чтобы было понятно почему пошла скидка. Зачеркиваем её с помощью тэга <strike>.

Вот и весь алгоритм. Изначально не хотел выкладывать скрипт, но все-таки сделаю это, вдруг кому-то поможет в дальнейших разработках. Буду рад. Только одно условие, скрипт можно использовать только после прочтения вот этого поста из блога частного вебмастера - Как полностью бросить пить? Замечательный пост.

Скрипт калькулятора:

$('input[name="count"]').bind('click keyup', function(){

$count = $('input[name="count"]').val(); // заносим в переменную данные о количестве товара
$price = $('.descr .price-item-rur').html().replace(/ /g,""); // также заносим изначальную цену товара

$pricenorm = $('.descr .price-item-rur-norm').html().replace(/ /g,""); // берем цену обычную
$priceopt = $('.descr .price-item-rur-opt').html().replace(/ /g,""); // берем цену оптовую
$pricesuper = $('.descr .price-item-rur-super').html().replace(/ /g,""); // берем суперцену

$itogoprice = $count*$pricenorm; // высчитываем итоговую стоимость

if ($itogoprice > 50000) { // если итоговая стоимость больше 50 тыс.

if ($itogoprice > 50000 && $itogoprice < 200000) {
$itogo = ($count*$priceopt); // умножаем количество на цену
$('.descr .ms2_total_cost2').html('<strike>'+$itogoprice+'</strike>'+' <font color=green>'+$itogo+'</font>'); // выводим данные в ячейку
$('.descr .price-item-rur').html($priceopt); // выводим данные о цене за штуку
}

if ($itogoprice > 200000) {// если цена выше 200 тыс.
$itogo = ($count*$pricesuper);
$('.descr .ms2_total_cost2').html('<strike>'+$itogoprice+'</strike>'+' <font color=green>'+$itogo+'</font>');
$('.descr .price-item-rur').html($pricesuper);
}

} else { // если итоговая стоимость ниже 50 тыс.
$itogo = ($count*$pricenorm);
$('.descr .ms2_total_cost2').html($itogo);
$('.descr .price-item-rur').html($pricenorm);
}

});

В конце возникла сложность с тем, что сам интернет-магазин делит цену товара на разряды, добавляя между разрядами пробелы. Таким образом если разрядов нет, то в переменной находится число и можно совершать математические операции. Если же цена уже имеет один разряд, например "1 205 рублей", то переменная уже не является числом и математические операции с ней невозможны.

Нам нужно удалить оттуда пробелы и сделать их числами. Это мы делаем с помощью вот такого куска кода ".replace(/ /g,"")", добавляя его к каждой переменной.

Думаю, на этом мы с вами закончим изучение создания калькулятора цены товара на сайте в зависимости от итоговой суммы заказа. Надеюсь помог.

За время работы над поддержкой сайтов клиентов столкнулся со множеством различных систем управления сайтом, или проще говоря CMS. Каких только видов их не существует, бывают платные, бесплатные. Бывают те которые писал один человек, через пень колоду, а бывают нормальные, написанные коллективами программистов, например Joomla. Отдельного разговора заслуживают как хорошие, так и плохие CMS.

Не буду от вас скрывать, что одним из самых сложных моментов в поддержке сайта является изучение системы управления сайтом у клиента. Изучив как она устроена можно будет двигаться дальше и осуществлять эффективную и грамотную поддержку. Первый месяц поддержки сайта - самый сложный период для вебмастера и трудозатратный.

Вебмастер
Первый месяц поддержки сайта - самый сложный период для вебмастера и трудозатратный.
Часто приходится тратить уйму времени, чтобы понять как у клиента устроены модули сайта, где их конкретно найти и что поправить, чтобы ничего не сломалось.

Часто приходиться тратить уйму времени, чтобы понять как у клиента устроены модули сайта, где их конкретно найти и что поправить, чтобы ничего не сломалось. Перед началом работы по поддержке сайта я всегда снимаю бэкап с файлов и базы. Если этих данных клиент не предоставляет, работать напрямую только через систему управления сайтом - очень рискованно без бэкапа. Иногда нажав - "очистить кэш", сайт полностью очищается от всего, даже от необходимого для его нормальной работы. Потому что предыдущий вебмастер или создатель сайта сделал как ему было удобно и вставил какие-то элементы кода, туда куда не следует.

Могу привести пример когда при обновлении версии джумлы, сайт сам по себе затирает все изменения, если они внесены в системные файлы CMS, или шаблон редактировался стандартный, без персонализации.

Бывают сайты со вменяемой системой управления, и с такими сайтами приятно работать, там все структурировано и понятно.

Разобраться можно почти в любой системе управления сайтом, но порой бывают совсем уж уникальные случаи, когда она не работает вообще или что-то сломали до меня. Смотришь на такой сайт и хочется ему помочь, но понимаешь, что это невозможно, так как кода просто нет и восстановить его никак нельзя без старого вебмастера. Самый правильный выход из такой ситуации - создание сайта заново, главное убедить в этом клиента. Он-то своим сайтом дорожит, а ты сам понимаешь, что если не сделать все заново - безнадега.

Бывают сайты со вменяемой системой управления, и с такими сайтами приятно работать, там все структурировано и понятно. Нужно осуществлять только ежемесячную грамотную поддержку, ведение и развитие сайта - и все получится у него!

Если у вас есть сайт, который вы не в состоянии обновлять, где что-то не работает, его нужно починить или помочь вам с его поддержкой - звоните или пишите мне. Готов посмотреть ваш сайт, дать заключение и ответить возьму ли его на поддержку, или сразу нужно все переделывать. Сайты должны быть полезными и живыми! Обращайтесь - помощь с сайтом вам гарантирована!

Меньше недели назад посадил на балконе, в длинные ящики для цветов, огурцы-корнишоны. Как нельзя кстати в магазине была земля по акции, за 9.90 руб, я купил 30 литров и все это засыпал в эти ящики. Всего посадил шесть семян, думаю, что ведро огурчиков мне обеспечено. Срок созревания огурцов 55-65 дней. И уже первые всходы!

Огурцы на балконе
Прошло меньше недели, а огурцы уже взошли

На балконе адски жарко, настоящая теплица, наверное поэтому так быстро взошли мои огурцы. Скоро придется подвязывать и мой балкон превратиться в опасные огуречные джунгли, где легко поцарапаться.

Продолжаю выращивать укроп на подоконнике, но многие из ростков просто засыхают. Скорее всего я совершил роковую ошибку и посадил укроп слишко кучно. Прореживать не хочу, пусть победит сильнейший или умрет. Это - подоконник!

Руиздат.ру - наш литературный сайт для современных авторов развивается постоянно. Сайту уже почти полтора года, потихоньку-помаленьку, но движемся вперед. Нет никаких космических бюджетов, инвестиций или вложений. Только энтузиазм и желание помочь авторам, чтобы их действительно читали. Те кто пишут хорошо, их лайкают и читают. Никаких накруток со стороны администрации и редакции не осуществляется. Если проза или стихи автора попали в топ, то исключительно потому что произведение интересное.

Вебмастер
Поддержка такого литературного сайта - это достаточно сложный и комплексный процесс.

Иногда, авторы, сами пытаются накрутить себе лайков, но такие наказываются и больше так не делают. Стоит защита от голосования с одного и того же айпишника несколько раз, но такая защита обходится на раз-два. Все это я в прекрасно понимаю.

Поддержка литературного сайта - это достаточно сложный и комплексный процесс, порой с такими трудностями приходится сталкиваться, что хочется отдать эту работу на аутсорсинг. Сейчас новые функции там появляются редко, но летом планирую много программировать и сделать некоторые интересные штуки на сайте. Тут главное, соблюсти баланс между нагруженностью сервера и развитостью сайта. Если его нагрузить сейчас излишне, а денег он до сих пор не приносит - это будет преждевременно и может вызвать коллапс в базе данных и самом сервере. Нужно вводить все очень осторожно.

Основное неудобство и мою раздосадованность вызывает система комментирования. Она из 2002 года можно так выразиться :) Без шуток. Её обязательно надо будет доработать. Мои знания в программировании тоже ограничены и придется что-то придумывать. Еще один волнующий меня момент - безопасность. Ей я стараюсь уделять первоочередное значение. Взломать можно все, а уж уронить сервер, при желании, можно даже у миллионных проектов. Что можно говорить про наш скромный литературный сайт?) Стараемся работать в этом направлении более плотно.

Еще один волнующий меня момент - безопасность. Ей я стараюсь уделять первоочередное значение.
Взломать можно все, а уж уронить сервер, при желании, можно даже у миллионных проектов.

Продолжая тему поддержки Руиздата, могу сказать, что уже сейчас размер дампа sql базы занимает 250 мегабайт. Картинок, фотографий и рисунков загружено более 6000 штук. Все это занимает место, но пока совсем не критично. Проблемы могут начаться когда база будет весить больше 5 гигабайт, и картинок будет ~ 100 000 штук. Ежедневная посещаемость находится в диапазоне от 230 до 280 уников в сутки. Но для реальной раскрутки эти цифры должны быть минимум в пять раз выше. Надеюсь после лета мы достигнем рубежа в 800 уников за сутки.

Экономьте свое время и деньги - отдайте поддержку сайта частному вебмастеру, администратору вашего сайта!

Не сомневайтесь в необходимости качественной поддержки, ведения, сопровождения, доработки, развития, наполнения и т.п. - это действительно нужно поручить администратору сайта удаленно, или частному вебмастеру, как ты не называй. Потому как порой цена ошибки - в разы дороже того, что вы сэкономили. Ведением и поддержкой сайта вы, как руководитель компании или проекта, заниматься не должны. Вы должны думать и работать над тем как сайт развить, а не верстать туда контент и следить за правильной, бесперебойной работой сайта. Экономьте свое время и деньги - отдайте поддержку сайта частному вебмастеру, администратору вашего сайта! Руиздат бы одобрил!

Если кто-то из потенциальных клиентов на поддержку сайта читает этот пост, то прошу вас иметь в виду, что никакое программирование не включено ни на одном тарифном плане на поддержку, ведение и сопровождение сайта частным вебмастером кроме тарифа "СПЕЦИАЛЬНЫЙ", стоимостью от 10 тысяч рублей в месяц. Пишите запрос - обсудим вашу ситуацию индивидуально, подберем стратегию и договоримся по стоимости поддержки сайта в месяц.

Решились с другом поехать в Оптину Пустынь прямо на саму Пасху, отстоять всю службу и посмотреть сам знаменитый монастырь. Как доехать, мы прочитали на сайте, но так как машины у нас нет, нам пришлось воспользоваться обычным, общественным транспортом чтобы достичь заветной Оптиной пустыни. Впереди вас ждет подробный рассказ о том как добраться до Оптиной Пустыни и мои личные впечатления от поездки.

Выехали мы из Москвы в 08:53 на обычной электричке до Калуги. Удовольствие, прямо скажу, сомнительное. Судите сами.

Электричка до Калуги
Всего-то 3.5 часа, 417 рублей и ты в Калуге!

Из трех с половиной часов в дороге на электричке, два с небольшим мы проехали стоя. На станции "Малоярославец" вышла большая часть пассажиров и удалось сесть. Еще полтора часа и мы прибыли в Калугу. Калуга встретила нас шикарным премиум-обедом за 170 рублей в столовой близ вокзала. Выбора блюд нет - зато дешево, и вкусно. Сразу по прибытии в Калугу мы купили билеты на автобус на 18:15 до Козельска, за 176 рублей.

Калуга
Калуга - прекрасна!

Отлично проведя время в Калуге мы приехали на автовокзал, дождались нашего комфортабельного автобуса и отправились в Козельск. Дорога заняла примерно полтора часа, все время в пути звучали удушливые песни вроде "срывайте розы в 16 лет" или "я выпью сегодня со своей подругой", пару раз меня так и разбирало от смеха и тупости звучавших песен, но ради спокойствия пассажиров и водителя я себя сдерживал. Хотя от себя хотелось бы заметить, что если ты будешь слушать такие песни - то обязательно вырастешь деградантом, причем во всех областях. Вероятность 95%, проверял на калькуляторе.

По прибытию в Козельск, мы пешком отправились в Оптину, по дороге нам повстречался аист у кого-то в огороде, мы его сфотографировали на свои мегапиксельные фотоаппараты в телефонах и продолжили свой путь к пустыни. Прямо у транспортного кольца стоит гигантский крест, подошел к нему специально и рассмотрел. Он из дерева.

Крест
Крест - отличная идея!

Продвигаясь все ближе к Оптиной пустыни мы каждый раз себе задавали вопрос успеем ли мы добраться до темна. Почему? Потому что значительная часть нашей пешей прогулки предстояла по лесу. Добраться до пустыни пешком можно, но не всем по силам. Расстояние примерно 7 километров. Цена автобуса 16 рублей. Такси 100 рублей, с радостью подвезут. Но мы шли пешком - это классно! Не пожалеете.

Крест
Дорога к Оптиной пустыни
Уже смеркается.

По дороге в лесу нам встретилось два источника, один Пафнутия, другой Сергия. Оба источника прекрасно ухожены, у источника Пафнутия установлена купель, на следующий день я в ней окунулся. Бодрит знаете ли похлеще холодного душа в ванне. Кто-то из окунающихся сказал, что там вода минус -2, но она из-за сероводорода не замерзает. Что-то мне верится в это с трудом.

Святой источник преподобного Сергия
Святой источник преподобного Сергия
Не представляю каким образом достигается такой напор воды


Купели
Купели. Разделены на мужскую и женскую. Логично.

Купель
Купель у источника Преподобного Пафнутия

Если вы пойдете к Оптиной пустыни пешком, через лес, то вам обязательно нужно зайти в эти купели и окунуться. Поверьте, это того стоит.

Когда уже почти стемнело мы достигли заветной цели и попали на территорию монастыря Оптиной Пустыни. Было 20 часов 35 минут и мы сразу же зашли в храм, где пробыли до 23:08, отстояв очередь на исповедь к батюшке. Исповедовали 5-6 батюшек. После исповеди мы решили попытать счастья и попробовать попросить койку на пару часов, чтобы поспать после службы.

Мы были готовы к тому что из-за наплыва желающих, нам могут отказать. Вероятность этого была достаточно высока, поэтому мы взяли с собой теплые вещи, чтобы в разговорах на скамейке провести остаток ночи. Но нам вообще безо всяких проблем и сложностей сразу же разрешили занять две нижние кровати в шестиместном номере стоимостью 300 рублей за койку. Это было замечательно! Мы оставили свои рюкзаки и отправились на службу.

Отстояв службу, которая полностью закончилась в 03:30 мы пошли спать на свои прекрасные кровати. Я не шучу, кровати действительно были великолепные, очень комфортные, чего я тоже не ожидал за 300 рублей.

Утром, мы проснулись в 09:48, умылись, перекусили яйцами и в 10:40 окончательно съехали. Хотел бы поблагодарить дежурную гостиницы Оптиной Пустыни за гостеприимство и отзывчивость. Спасибо!

При свете дня мы осмотрели все достопримечательности Оптиной, заглянули на позднюю литургию, сделали еще кое-какие обязательные дела и отправились в обратный путь, который был полностью аналогичным только в обратном порядке.

Оптина Пустынь
Оптина Пустынь - великолепна!

Оптина Пустынь
Центральный собор Оптиной Пустыни

В заключении, хотелось бы подытожить нашу поездку некоторыми тезисами и общими впечатлениями, в виде списка, который я специально составил на свежую голову вернувшись из Оптиной домой. Самые яркие воспоминания с поездки в Оптину пустынь на пасху, что запомнилось и подметилось:

  • 1) Можно приложится и поцеловать открытые мощи, не через стекло. Шокирован.
  • 2) В конце службы причастие запивают вином, по всей видимости кагором. Не есть хорошо, стоит запах вина в церкви во время причастия.
  • 3) Есть купель, вода ледяная. Супер бодрит.
  • 4) Недорого. Сорокоуст 50 рублей. Свечка 10 руб - воск. Поесть можно за соточку - легко. Я поел на 185, но я толстый.
  • 5) Приютили - 300 рублей за койку, считай бесплатно почти. Прямо у монастыря.
  • 6) Если ты действительно верующий, не чета мне, тебе все там дадут бесплатно и они ждут именно верующих. А не делающих вид. Таких вычисляют за пару фраз. Так что нечего упрекать РПЦ за стяжательство, если ты веруешь, всем тебе помогут и бесплатно, если нет - плати.
  • 7) Думаю, что в Оптиной готовят самых боевых защитников Православия. Слово "братуха" употребляют некоторые батюшки, строгие и добродушные. Заметил особенное приветствие среди приближенных к батюшкам. Оптина - способна себя защитить и защитить Православие.
  • 8) Много рукописных икон, но стоимость у них в основном дороже 30 тысяч рублей.
  • 9) В марте мы ездили в Псково-Печорскую обитель и могу сказать, что в сравнении с Оптиной Пустынью они отличаются. Объяснить невозможно, возможно самому съездить и прочувствовать. Также имеются отличия в сравнении с Дивеево и Сергиевым Посадом. Оптина пустынь - особенная, на мой взгляд.
Долгих лет процветания тебе, любимая Оптина Пустынь! Христос Воскресе!

p.s. итого затраты за двое суток нашего путешествия (на 1 человека) составили:

  • Проезд = 1 200 руб. (туда - обратно)
  • Питание = 600 руб.
  • Проживание = 300 руб.

  • Итого: 2 100 рублей (супер-эконом вариант)