Задача - сделать зачисление на счет пользователя процента от суммы заказа как бонуса. Решение:
function MyUpdateAccount ($order_id, $status_id) {
$koef = 0.05; // Сколько процентов зачислять на счет
if ($order_id>0 AND $status_id=="F") { // Заказ считается выполненным
$order = CSaleOrder::GetByID($order_id);
if ($order['CANCELED']=="N" AND $order['STATUS_ID']=="F" AND $order['USER_ID']>0) {
$rs = CSaleUserTransact::GetList(array(), array('USER_ID'=>$order['USER_ID'], 'DEBIT'=>"Y", 'ORDER_ID'=>$order_id)); // Проверяем начисления пользователю по этому заказу
$exist = $rs->GetNext();
if (!isset($exist['ID'])) {
CSaleUserAccount::UpdateAccount($order['USER_ID'], $order['PRICE']*$koef, $order['CURRENCY'], "Бонус за покупку ".($koef*100)."%", $order_id);
}
}
}
}
AddEventHandler("sale", "OnSaleStatusOrder", "MyUpdateAccount");
Размещаем этот код в /bitrix/php_interface/init.php или где-то там еще, в своих модулях можно. Меняем $koef на свое значение, сейчас 0.05 - это 5% от суммы заказа будет зачисляться на счет пользователя. В данном коде считается, что заказ выполнен, если его код F, меняем на свой нужный. Мысль можно развивать и сделать прогрессивное начисление в зависимости от суммы заказа. Допустим, до 100 т.р. начисление будет 3%, от 100 до 500 т.р. начисление 5% и более 500 т.р. - 7%. Еще можно сделать уведомление пользователю - так мол и так, спасибо дорогой, вот тебе бонус на счет, можешь купить еще че-нить. Также происходит проверка начислений за текущий заказ, чтобы не было двойного начисления, если статус заказа менялся туда-сюда, хотя лучше сделать списание суммы со счета в случае отмены заказа, но это уже другое событие.
На днях возникла необходимость реализовать на одной из страниц сайта возможность перетаскивания элемента (регулятор стоимости в фильтре по ценам) на JavaScript. До этого момента я себе чётко представлял следующий механизм реализации перетаскивания:
Обработать нажатие мыши на элементе и зафиксировать состояние начала перетаскивания;
Обработать перемещение мыши над элементом, чтобы в этот момент задать элементу координаты в соответствии с положением курсора мыши на странице;
Обработать отпускание клавиши мыши на элементе и зафиксировать состояние окончания перетаскивания.
Сразу оговорюсь, что у меня НЕ включена опция установки бета-версий!
Сегодня пришло два стабильных обновления до 8.5.0, а именно "Веб-формы" и "Рассылки". Только вот стоит ли их ставить? Ведь главный модуль до сих пор 8.0.6
Поставил вчера вот. Плюшевая такая, прикольно. Я с Win98 на XP пересел наверное только в 2003, висту я вообще миновал, так до сих пор ни разу не пользовался. А тут win7 предложили попробовать - попробовал.
Порадовала быстрая установка по сравнению с обычной XP - всякие левые сборки никогда не ставил, не приходилось. Но огорчило то, что она убила заголовок раздела на жестком, т.е. вместо D осталась неразмеченная область в итоге. Данные все были на месте и в порядке, а доступа к ним не было, пришлось воспользоваться спасательной программкой и вернуть все как было.
Итак, что мне понравилось: 1) Ножницы! Это такой инструмент, чтобы "скриншотить" прямоугольную произвольную часть экрана и потом с ней че нить делать, в т.ч. и на форум выкладывать.
2) Следующая картинка ) Райтклик на десктопе - следующий рисунок. Картинка на экране плавно меняется на другую.
3) Библиотека Это такая штука, по началу казавшаяся избыточной, но потом посмотрев на D и оценив, в скольких местах у меня лежат фильмы-музыки-etc, понял, что это необходимый "костыль" ) Короче, такие хранилища ссылок на места на жестком.
4) ХИТ - панель задач На панели задач окошки запушенных программ можно перемещать туда сюда мышкой, а они будут задорно друг друга толкать. Расслабляет.
Что жутко не понравилось - нет кнопки "ВВЕРХ". Тычусь туда постоянно.
Кто-нибудь ставил? Есть что-то такое, с чем мне предстоит там столкнуться и ужаснуться\обрадоваться на самом деле?
Наткнулся тут на хабре на , рассказывающую про бизнес 1С:Франчайзи, его бесперспективность и т.д. Провел аналогии с 1С-Битрикс, ведь 1С-Битрикс работает с партнерами точно по той же схеме, всё под копирку.
У нас есть один проект на котором почему-то битрикс был не в исходных кодах, а в Zend версии. И вот хостер присылает гневное письмо - мол, меняйте тариф (а это интернет-магазин и много-много страниц).
Странно, думаю - вроде нечему грузить сайт. Только поисковики могут генерить нагрузку. Прочитав про мегавозможности в плане SEO и уменьшение числа лишних страниц на порядок, обновляемся до 8.5 и заодно переходим на вариант в исходных кодах.
По показаниям статистики, стало лучше (в плане нагрузки на процессор) и хуже в плане нагрузки на субд. Вот и думаем - что помогло - смена версии, переход на исходники или может поисковики наелись?
Хорошие интернет-магазины – моя слабость. При виде хорошего ИМ я впадаю в транс и начинаю изучать сайт по пикселю, пробуя всякие фишки и навороты. Знаете, как ценители искусства с увеличительным стеклом припадают к шедеврам мирового искусства и долго их рассматривают. Но это только в том случае, если сайту удается зацепить в первые 20-30 секунд.
Уже который год на битриксе, а от автокеширования толку не было. Ну не снимало оно общей нагрузки с сервера. И тогда я решил заняться им вплотную.
Диспозиция - проект, на котором 20-30 тысяч страниц. Ежедневно Яндекс и Гугль индексируют по 10-20 тысяч страниц, не считая Yahoo и менее заметных роботов. Sitemap не ставим принципиально - вера не позволяет. Основная нагрузка как раз идёт на громадный спред страниц, где-то по 5-6 тысяч в сутки. С использованием автокеширования с настройками по умолчанию получалось, что за 7200 секунд (2 часа) страницы успевали устаревать, и почти каждый раз при заходе пользователя, они создавались заново. Как результат - загрузка до 5.06 днём.
Контент на сайте, в основном, статика - статьи и новости. Динамика - только заголовки обновлений. Подсчитал среднюю частоту захода человека на одну страницу для страниц, созданных более месяца назад. И решил поставить автокеширование на 2 суток, то есть 86400 секунд. Закешировали буквально всё, что не должно быть динамическим - весь текст статей, новостей, поиск по тегам, архивы. Через 2 дня кеш "прогрелся", а загрузка сервера упала где-то до 2.17 в часы пик, то есть в два раза.
Теперь во-первых, пользователь всё ещё видит актуальную информацию, несмотря на то, что она берётся из кеша. Из-за закешированных "украшательств" типа облака тегов или списка похожих материалов, бот Google ежедневно индексирует в 1.5 раза меньше страниц. На Яндексе не отразилось.
Чего по-прежнему не хватает - это автоматического обновления кеша при обновлении элемента инфоблока. Когда меняем текст старой статьи, он не меняется до устаревания кеша. То ли глюк битрикса, то ли где-то собака порылась.
Так что примите к сведению - стоящие по умолчанию значения на время автокеширования не всегда хороши. Особенно для больших проектов.
Долго не доходили руки разобраться откуда берется в браузерах горизонтальная полоса в режимах "Редактирование" и "Разработка". И самое противное, что полоса прокручивала совершенно никому не нужный 1 пиксель.
Обнаружил, что появляется она, если на сайте есть шапка, футер или меню шириной со страницу (width: 100%). А такие есть почти у всех
Полез рыть файлы стилей Продукта и нашел в /bitrix/themes/.default/pubstyles.css такую строчку:
Оставил комментарий в блоге Константина Дубровин по поводу его семинаров и всего, что он там пишет - "По-моему, вы воду кипятите и меня это порядком достало". И он молодец, закрыл группу от посторонних глаз - вменяемый человек. Еще бы его сообщения не появлялись на главной, было бы вообще красиво - зачем они мне, если у меня туда всё равно доступа никогда не будет?
AJAX, как много в этом слове. Давно хотел написать про AJAX и битрикс, немного критики, пара предложений, разымшления на тему. Более-менее продвинутые разработчики под битрикс знают как работает AJAX в битриксе, регулярно сталкиваются с CAJAX и прочими приблудами. Многих наверное устраивает.
У нас в Новосибирске, на , есть несколько проблем, главная из которых - несоблюдение регламента. В результате мой, предпоследний мастер-класс вместо 40 минут уложился (по-моему) в 20-25 и потом все закрылось. Последний докладчик не успел выступить.
Жду с нетерпением видео чтобы посмотреть, как же мне удалось создать сайт за 20 минут ??!!!
Перепощу уже ставшую бояном новость. У кого на продакшн серверах поднят SVN, то стоит принять меры.
Если кратко, то:
SVN является продвинутым средством для организации совместной разработки десятков, а то и сотен разработчиков. В силу особенностей архитектуры, SVN хранит в каждой директории проекта свои метафайлы, аккуратно сложенные в скрытую директорию .svn. В одном из файлов под названием entries находится список всех файлов и директорий, расположенных в той же папке, что и .svn. Так же там находится информация о расположении репозитория, размере файлов, даты их изменения и логины пользователей, работающих над проектом. Уже не плохо, правда? Объясню, получается, если проект разрабатывается с помощью SVN, то заглянув по адресу мы увидим файловую структуру корня проекта с авторами, последними изменениями, ссылкой на основную ветку репозитория итп.
В папке .svn находится директори text-base, в которой лежат последние версии всех файлов, находящихся в репозитории. Картину дополняет так же и то, что файлы имеют не стандартное расширение (например .php), которое позволяет их сразу отправить на интерпретатор, а дополнительное расширение .svn-base, благодаря которому файл отдается запросившему его человеку «как есть», т.е. голый исходный код!
P.S. На IIS7 особенность обработки расширений файлов зарегистрированных к обработке через FastCGI приводит к тому, что интерпретатор php исполняет файлы и прямой их просмотр невозможен.
Как я писал - сделал обработчик для платежной системы QIWI. Сегодня че-то народ живо интересуется, поэтому зазенденую копию обработчика - требуется Zend Optimizer и PHP5. Работать будет 1 месяц от сегодняшнего числа. Инструкция по установке там же. Как работает, можно посмотреть на демо-сайте (купить какую-нибудь фигню, в заказе выбрать тип плательщика "Частное лицо", способ оплаты "QIWI" и указать свой мобильник). Счет будет выставлен в личный кабинет QIWI.
будут вести на одну и ту же страницу, но никак не на 404. Проверял на многих сайтах на платформе Битрикс в Интернет - для всех можно делать "весёлые" адреса.
Для своих проектов обкатываю решение, основанное на проверке существования символьного кода раздела при включенной опции "Устанавливать статус 404, если не найдены элемент или раздел:" и саму опцию переименовываю в "Устанавливать статус 404, если не найдены раздел или элемент:", соответственно.