LoadModule rpaf_module modules/mod_rpaf.so
RPAF_Enable On
RPAF_ProxyIPs 127.0.0.1 Ваш.IP.Сервера
RPAF_SetHostName On
RPAF_SetHTTPS On
RPAF_SetPort On
RPAF_ForbidIfNotProxy Off
И не забываем выключить remoteip в файле /etc/httpd/conf.modules.d/00-base.conf и удалить файл /etc/httpd/bx/conf/mod_rpaf.conf
Существует проблема с выгрузкой заказов с 2 разных сайтов.
Если сайты являются копиями друг друга, т.е. сначала был сделан сайт 1, затем скопирован и развернут с базой, и на его основе с незначительными доработками был сделан сайт 2.
Для 1 сайта уже была подключены импорты заказов из Битрикс, и импорт номенклатуры в Битрикс.
Для второго сайта сделали идентичные обмены, также путем копирования обменов, и изменения параметров отбора и древа групп в обмене товарами, и без изменений обмена заказами, кроме url адреса.
При включении на автомате обоих импортов заказов происходит проблема дублирования заказа. Со 2 сайта приходит заказ, и полностью удаляет документы старого заказа в 1С, полученного с первого сайта. При сравнении и проверке заказов выяснилось, что заказы с идентичными ID.
Самый быстрый - меняем стартовое значение поля ID
Оно int(11), значит у нас есть в запасе от (-2147483648 до 2147483647)
Для первого сайта оставляем всё как есть.
Для второго: ALTER TABLE `b_sale_order` AUTO_INCREMENT = 100000000;
Для третьего: ALTER TABLE `b_sale_order` AUTO_INCREMENT = 200000000;
Для пользователя - задействуем нумератор заказов, что бы не боялся больших цифр.
Решил все загружаемые файлы в наш Битрикс24 отправить в Яндекс.Облако
Но файлы просто не скачивались, после долгой отладки нашёл как отдаются файлы, копнул глубже... ядро Битрикс, используя заголовок x-accel-redirect, делает всю эту магию с внешними хранилищами.
Находим секцию в /etc/nginx/bx/conf/bitrix_general.conf
# Use nginx to return static content from s3 cloud storage
# /upload/bx_cloud_upload/...amazonaws.com/
location ^~ /upload/bx_cloud_upload/ {
Удаляем ссылки «Изменить»:
в конец функции editOrder добавляем код
var editSteps = this.orderBlockNode.querySelectorAll('.bx-soa-editstep'), i;
for (i in editSteps) {
if (editSteps.hasOwnProperty(i)) {
BX.remove(editSteps[i]);
}
}
Продолжаю оптимизировать рабочий процесс. Теперь создание репозитория, привязка оповещений в Битрикс24 из Bitbucket, к выбранной группе становится гораздо быстрее!
Пишет нам один заказчик, что сайт начал долго открываться.
Заходим - действительно, ~17 секунд отдаётся контент.
Начали анализировать ситуацию, в одном из включаемых файлов видим это:
sleep(15); - команда которая говорит серверу - подожди просто 15 секунд, потом делай свои дела дальше.
Это даже не смешно, "случайно" такую команду не напишешь, за 15 лет разработки я применил эту команду только 1 раз, и то, в сервисном скрипте, который по крону делает что то.
Так что это 100% диверсия. И те разработчики, если такое сделали, не известно, на что ещё способны. Как минимум 2 бэкдора уже нашёл.
Продолжение этой проблемы. Когда менеджер работает одновременно в админке и в 1С, и когда в 1С выключена загрузка отгрузок и оплат - Битрикс убирает из заказа эти данные. Возвращаем информацию в заказ, и список заказов.
<?php
// local/php_interface/init.php
// Добавляем информацию внутри заказа
\Bitrix\Main\EventManager::getInstance()->addEventHandler('sale', 'onSaleAdminOrderInfoBlockShow', ['DivasoftFixSyncOrderInfo', 'onSaleAdminOrderInfoBlockShow']);
// Заполняем колонки в списке заказов
\Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnAdminListDisplay", ['DivasoftFixSyncOrderInfo', 'onAdminListDisplay']);
\Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnAdminSubListDisplay", ['DivasoftFixSyncOrderInfo', 'onAdminListDisplay']);
class DivasoftFixSyncOrderInfo {
static function getSystemDeliveryNameByOrderD7($order) {
$shipmentCollection = $order->getShipmentCollection();
$shipmenName = "Не выбрана";
$systemShipmentItemCollection = $shipmentCollection->getSystemShipment()->getShipmentItemCollection();
foreach ($shipmentCollection as $obShipment) {
if ($obShipment->isSystem()) {
$arShipment = $obShipment->getFields()->getValues();
$shipmenName = $arShipment['DELIVERY_NAME'];
}
}
return $shipmenName;
}
static function getSystemPaymentNameByOrderD7($order) {
// getSystemPayment такого метода нет, запросим информацию по тому что есть
$paySystemService = \Bitrix\Sale\PaySystem\Manager::getObjectById($order->getField('PAY_SYSTEM_ID'));
$payName = $paySystemService->getField("NAME");
return $payName;
}
function onSaleAdminOrderInfoBlockShow(\Bitrix\Main\Event $event) {
$order = $event->getParameter("ORDER");
$shipmenName = self::getSystemDeliveryNameByOrderD7($order);
$payName = self::getSystemPaymentNameByOrderD7($order);
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS, array(
array('TITLE' => 'Доставка:', 'VALUE' => $shipmenName, 'ID' => 'dvs_system_shipment'),
array('TITLE' => 'Оплата:', 'VALUE' => $payName, 'ID' => 'dvs_system_payment'),
), 'sale'
);
}
function onAdminListDisplay(&$list) {
if ($list->table_id == "tbl_sale_order") {
foreach ($list->aRows as &$row) {
foreach ($row->aFields as $key => &$val) {
$order = false;
if ($key == "DELIVERY") {
if (!$val['view']['value']) {
if (!$order) {
$order = \Bitrix\Sale\Order::load($row->arRes['ID']);
}
$val['view']['value'] = self::getSystemDeliveryNameByOrderD7($order);
}
}
if ($key == "PAY_SYSTEM") {
if (!$val['view']['value']) {
if (!$order) {
$order = \Bitrix\Sale\Order::load($row->arRes['ID']);
}
$val['view']['value'] = self::getSystemPaymentNameByOrderD7($order);
}
}
}
}
}
}
}
?>
Столкнулись с проблемой. Остатки у некоторых товаров сами увеличиваются. Резервирование выключено, заказы не отменяются.
В итоге, обратил внимание на "Архивирование заказов". Долго описывал проблему, в итоге тех.поддержка ответила:
Посмотрели по заказу у отгрузки стоит RESERVED=Y, но сам заказ и отгрузки по нему не отгружались, поэтому перед архивацией произошло разрезервация остатков. Такая же логика и при удалении заказа, если отгрузка не отгружалась, то резервация возвращается обратно. А архивирование по своему поведению совпадает с удалением.
Это штатное поведение функционала резервирования и архивирования.
Штатное поведение Карл! Выключаем архивацию, радуемся правильным остаткам на складе.
Вечная проблема любого владельца нетипичного сайта - никто не хочет браться за доработку сайтов с большим объемом рукописного кода, поиск и исправление ошибок.
Почему разработчики не любят работать с чужим кодом?
Это нежелание вызвано в основном трудностью в прогнозировании сроков и стоимости работ. Это - то же самое, что сказать таксисту: «Отвези меня в Тридевятое царство». Таксист спрашивает: «Где это?». «Не знаю» - отвечаете вы, и при этом требуете от таксиста озвучить сроки и стоимость.
Разработчики находятся в аналогичном, положении получая рукописный незакомментированный код. Нужно найти ошибки, изучить код, документировать его и только после этого решать задачу. Из-за частых и неизвестных ошибок в коде, при составлении коммерческого предложения, очень высок риск недооценить задачу.
При этом помним, что в России крайне низкое качество php кода. Все высококлассные программисты работают в крупных веб-студиях на высоких зарплатах. На фрилансе, их просто нет.
Кроме того, фрилансеры/студенты разрабатывают сайты на готовых бесплатных фреймворках, которые не обновлялись несколько лет, поэтому самописный код может быть еще и настолько некачественным, что все попытки доработать его чреваты постоянными глюками.
Как дописывать такой код или исправить ошибки на сайте? Увы, логику придется полностью переписывать.
Клиенты обычно не понимают этих трагичных выводов и вытекающих из этого сроков, и расходов. Начинаются споры, жалобы на дороговизну разработки, запросы в другие студии. В итоге находится начинающая веб-студия, которая не учитывает множество моментов, делает маленькую цену, и только усугубляет ситуацию.
По итогу выходит дешевле сделать новый сайт на платформе 1С-Битрикс, чем прикрутить изменения на старый и неизвестный самописный движок, где все доработки, которые сделаны вручную - уже есть в стандартом Битриксе, и клиенту открывается огромный функционал связанный с аналитикой, работой с клиентской базой, товарами, заказами, и прочими фишками, которые появляются при выходе обновлений от 1С-Битрикс.
Мы прошли большой и сложный путь в своих попытках работать с чужим кодом. Тоже ошибались в оценках, попадали в связи с этим на большие гарантийные работы.
Однако, мы можем предложить работу с чужим кодом нашим заказчикам.
Работа с самописным кодом тарифицируется в двойном размере, предварительное изучение кода обязательно, оплата по факту потраченного времени (время работы с кодом фиксируется CRM Битрикс24, клиент приглашается в группу с проектом).
Добавляем в init.php обработчик и у нас нет встроенного бутстрапа, даже если включить объединение стилей - тоже сработает. т.к. файлы ядра не добавляются в единый файл
Есть вёрстка (набор html шаблонов) для Интернет магазина. Все скрипты, шрифты, изображения и дополнительные стили лежат на одном уровне с шаблоном, в соответствующих каталогах.
Основной файл стилей называется styles.css, и лежит на первом уровне.
Если используется less, то итоговый файл так же компилируется в один styles.css
Допускается размещение font-awesome.min.css на одном уровне с styles.css
Предоставляются все типовые страницы, кроме корзины (sale.basket.basket), оформления заказа (sale.order.ajax), истории заказов, детального заказа, отмены заказа. Так же не верстается блок с фильтром (catalog.smart.filter)
Эти компоненты стандартные, необходимо просто закинуть на страницы, наши верстальщики приведут к стилю сайта.
Если это интернет магазин, то редакция малый бизнес. Одна цена. Предусмотреть функционал скидок.
Если продаём одежду, то только одна характеристика(SKU) у товаров - размер
Платёжная система - тип "Наличный расчет (cash)"
Доставка - никаких авто расчётов, только названия и логотипы Транспортных компаний.
С 1 января 2018 года будет ограничена поддержка 1С-Битрикс на PHP версии ниже 5.6.
Обратитесь в компанию Дивасофт, мы поможем перейти на подходящую версию PHP!
Мы перепробовали много хостинговых компаний. Самый выгодный и удобный оказался Flops.
В частности тариф "Оплата за потребление" - зачем платить постоянно за полную мощность, когда есть вариант платить только за потреблённые ресурсы. Так же есть возможность быстро добавить или убрать оперативную память, добавить или убрать ядра процессоров, расширить место на SSD диске.
Все действия без доплаты, в течении нескольких секунд. Можно сделать в 1 клик клон сервера, потом его быстро удалить. Конечно не amazon, но в РФ это очень интересный вариант!
Если нужно разместить на странице несколько кнопок, которые будут заполнять значения одной CRM-Формы, которые будут приходить по ajax - нужно сделать так:
Добавляем на страницу скрытую кнопку с классом, b24-web-form-popup-btn-X, где X = ID Битрикс формы
Используем функцию reinitB24Dvsform(), в данном случае на вход идёт значение поля формы LEAD_TITLE, можно вызывать в скрипте, или по событию onclick
<?php
// JS код
/**
* Инициализируем настройки формы, ОБЯЗАТЕЛЬНО указываем ref
*/
function initB24CrmDvsForm(b24val) {
return {"id":"8","lang":"ru","sec":"y8awav","type":"button","click":"", "ref":'https://ACCOUNT.bitrix24.ru/bitrix/js/crm/form_loader.js', "fields": {
'values': b24val
}};
}
var b24paramsload = initB24CrmDvsForm({});
/**
* Стандартное добавление скрипта и переменных для скрипта Б24
*/
(function(w,d,u,b){w['Bitrix24FormObject']=b;
w[b] = w[b] || function(){arguments[0].ref=u;
(w[b].forms=w[b].forms||[]).push(arguments[0])};
if(w[b]['forms']) return;
s=d.createElement('script');
r=1*new Date();
s.async=1;
s.src=u+'?'+r;
h=d.getElementsByTagName('script')[0];
h.parentNode.insertBefore(s,h);
})(window,document,b24paramsload.ref,'b24form');
b24form(b24paramsload);
/**
* Реинициализируем форму, частично повторяем функцию init у Bitrix24FormLoader
*/
function reinitB24Dvsform(nVal) {
if(!window.Bitrix24FormObject || !window[window.Bitrix24FormObject])
return;
if(!window[window.Bitrix24FormObject].forms)
return;
// Уничтожаем форму
Bitrix24FormLoader.unload(b24paramsload);
// Пересоздаём параметры формы
b24paramsload = initB24CrmDvsForm({'LEAD_TITLE': nVal});
// Инициируем форму с новыми данными
Bitrix24FormLoader.params = b24paramsload;
Bitrix24FormLoader.init();
// Открываем попап
Bitrix24FormLoader.showPopup(b24paramsload);
}
?>
Для этого в файле /bitrix/modules/main/lib/entity/event.php находим конструктор, и записываем в лог значения переменных $entity->getModule(), $eventName, $parameters
Узнаем всё, в том числе кучу недокументированных возможностей!
После включение редиректа на https, в некоторых случаях появляется ошибка 400 Bad Request The plain HTTP request was sent to HTTPS port
Всё происходит из за mod_dir, он берет на себя редирект с папки без слеша на папку с слешом, но он не воспринимает "HTTPS on" как побудитель использования схемы https://
Что бы всё это заработало, нужно:
В конфигах nginx'a ничего не трогаем
proxy_set_header Host $host:443;
В конфиге апача который отвечает за ваш домен
Если у вас конфигурация многосайтовая - /etc/httpd/bx/conf/bx_ext_site.local.conf
односайтовая - /etc/httpd/bx/conf/default.conf
К названию сервера ServerName site.local дописываем: ServerName https://site.local
Sometimes, the server runs behind a device that processes SSL, such as a reverse proxy, load balancer or SSL offload appliance. When this is the case, specify the https:// scheme and the port number to which the clients connect in the ServerName directive to make sure that the server generates the correct self-referential URLs.
Организации или ИП, деятельность которых связана с наличными расчётами или оплатой при помощи банковских карт, обязательно должны применять зарегистрированный кассовый аппарат. Благодаря нашей инструкции вы сможете осуществить регистрацию быстро и без осложнений. Давайте разберёмся, как она проводится, какие документы для неё потребуются.
Заключить договор с ОФД на передачу данных
Приобрести ККМ со встроеным Фискальным Накопителем
Зарегистрировать ККМ в ФНС
Подключить ККМ к ОФД
Скачать и установить драйвера ККМ на локальный компьютер Драйвер для работы кассового аппарата в режиме формирования чека
Ставится для поддержки виртуальных COM-портов В драйверах содержится программа «Тест драйверов («fptr_t.exe», в каталоге «nt-x86-mingw»)» - требуется для настройки и просмотра портов Скачать здесь
Драйвер для отправки кассой данных в ОФД
Ставится для работы службы «Ethernet over USB» и настраивается с помощью «DTOintegrator.exe», в каталоге «\Program Files (x86)\ATOL\Drivers8\Bin\». Настраивается в режиме «Администратора» Скачать здесь
Скачать (msi, exe) и установить приложение 1С-Битрикс.Кассы
Обновить 1С-Битрикс Управление сайтом до версии 17.хх
С 1 февраля 2017 вступил в силу новая версия 54-ФЗ «О применении контрольно-кассовой техники». Новый порядок применения ККТ предполагает, что данные о продажах с каждого выбитого чека должны передаваться в налоговую инспекцию через интернет. То есть вместо касс с ЭКЛЗ придется использовать кассы с фискальным накопителем (ФН).
При чем тут интернет-магазины?
Если раньше использование касс, при оплате заказа при помощи банковских карт, электронных денег(электронных средств платежа) в интернет-магазинах (ИМ) не требовалось, то теперь, вне зависимости от того как была произведена оплата, владельцы ИМ будут обязаны пробить чек и предоставить его покупателю как минимум в электронном виде в течении пяти минут. Причем зарегистрировать чек в налоговой надо сразу после поступления денежных средств. Электронный чек должен быть отправлен на e-mail покупателя указанный при получении заказа. Все данные о чеках сохраняются в фискальном накопителе.
Внимание! Если ИМ получает деньги с помощью Киви-кошелька, банковских карт, Вебмани, Yandex.Денег — надо печатать чек.
Под закон не подпадают только банковские переводы. Пример: ИМ выставил счёт клиенту, клиент идёт на почту или в банк, оплачивает. Вот тут ИМ не пробивает чек.
В остальных случаях — выбивает. Это самое большое изменение. Кассовый аппарат регистрируется. Чек выписывается сразу.
Печатать чеки не обязательно, физический чек не нужен, если ИМ не работает с оффлайн-клиентами. Для таких ИМ существую специальные интернет-кассы без печатного блока (например, АТОЛ 42ФС)
Что надо будет делать клиенту по ФЗ-54?
Нужно приобрести кассу с поддержкой ФЗ-54 или модернизировать старую. Можете порекомендовать клиентам «Атол» или «Штрих-М».(ссылки) Драйверы универсальные, вся линейка «Атол» прекрасно работает с нашим решением. «ШТРИХ-М» тоже будет работать в ближайшее время.
Клиент заключает договор с ОФД. Это легко. Клиент регистрирует кассу в ФНС. Подключает её к ОФД. Нужно прописать внутри касс определённые параметры. Обычно это делают сервисные компании по продаже касс.
Нужно установить и настроить драйвер кассы(ссылки). Устанавливаете приложение «1С-Битрикс». Система сама найдёт конкретный магазин, сама заберёт нужные данные, сама получит ключи авторизации.
Нужно настроить кассу в «1С-Битрикс: Управление сайтом». Подключаете кассу внутри сервиса, настраиваете и клиент работает по новому закону.
Когда надо перейти?
С 1 февраля 2017 года вступил в силу запрет на регистрацию касс старого образца, а регистрация онлайн-касс стала обязательной. Пока еще работать можно как на кассах с ЭКЛЗ, так и на кассах с ФН.
С 1 июля 2017 года кассы с ЭКЛЗ станут вне закона. Работать можно будет только на новых кассах с ФН.
С 1 июля 2018 – кассы должны использовать все предприниматели, которые раньше могли их не использовать: ПСН, ЕНВД. ИП, оказывающие услуги должны будут выдавать бланк строгой отчетности.
Что если владелец ИМ не будет использовать новую кассу?
Неприменение ККТ (первый инцидент):
для должностных лиц и ИП - 25-50% суммы чека, но не менее 10 000 рублей;
для юридических лиц - 75-100% суммы чека, но не менее 30 000 рублей.
Повторный инцидент неприменения ККТ:
приостановление деятельности ИП или юр. лица на срок до 90 суток;
для должностных лиц - дисквалификация до 2 лет.
Не направление покупателю электронного чека:
для должностных лиц и ИП - до 2 000 рублей;
для юридических лиц - до 10 000 рублей.
Незаконная работа с кассовым аппаратом старого образца:
для должностных лиц и ИП - до 3 000 рублей.
для юридических лиц - до 10 000 рублей
Чем поможет «1С-Битрикс»?
Есть бесплатное приложение «1C-Битрикс.Кассы». Оно ставиться на компьютер, и к нему подключается касса.
Приложение работает по принципу сервера:
подключается к вашему интернет-магазину;
получает от него данные;
отправляет их на кассу.
Касса сама не умеет инициировать соединение. Она умеет как принтер — получать данные. Значит нужен посредник, который будет связан с интернет-магазином. Он будет получать данные и печатать на этом принтере. Таким посредником является «1С-Битрикс.Кассы»
Сейчас поддерживаются два типа аппаратов: «Атол» и «Штрих-М». На данный момент все тесты происходят с аппаратами «Атол». Со «Штрих-М» пока есть технические задержки.
Чуть позже разницы не будет, клиент будет выбирать кассу, с которой привычнее работать.
Важно: Приложение работает при наличии активной лицензии «1С-Битрикс»!
Кроме того, к интернет-магазину можно подключить несколько касс, если заказов очень много. Возможно подключение разных юр. лиц, подключение к разным ОФД, поддерживаются все необходимые виды чеков: чек-возврат, чек-аванс, чек с учетом аванса.
Есть несколько способов подключения и инициализации рекапч, но самый удобный это тот, который занимает мало строчек кода, и максимально эффективен.
В init.php добавляем код, инициализирующий рекапчу. Код добавляется структурно после подключения всех стилей и скриптов, что исключает ошибку раннего старта рекапчи. Код добавляется именно через addString(), а не через addScript():
Тем самым не зная точно сколько рекапч будет на странице, мы можем работать с ними по идентификатору дива (в данном случае это recaptchaUID), в котором эта капча инициализировалась по классу g-recaptcha.
Вирусный код на страницах сайта может привести к полной блокировке доступа к сайту со стороны антивирусов или хостинга, а также бану в поисковых системах. Вирусы на сайте вредят посетителям, заражая их компьютеры вредоносным кодом и троянскими программами. Заполняют ваш сайт ссылками на другие сайты, что понижает ваши позиции в поисковых системах. Постоянно рассылают через ваш сайт вредоносные рекламные электронные письма.
Необходимо понимать, что вирусы являются следствием взлома, поэтому в первую очередь нужно найти источник появления вируса на сайте (скорее всего это будет взлом сайта через уязвимости в скриптах или кража пароля от FTP).
Компания Дивасофт поможет решить эту задачу, установить нужное оборудование, интегрировать кассу с вашим Интернет-магазином, а так же проконсультирует по всем вопросам.
CMS 1С-Битрикс подружит интернет-магазины с физическими кассами для соблюдения нового 54-ФЗ «О применении контрольно-кассовой техники». Сайты смогут подключать к интернет-магазину несколько параллельно работающих касс для соответствия законодательству. С 1 февраля 2017 года вступит в силу часть поправок к 54-ФЗ, которые изменят порядок работы и приема оплаты в интернет-магазинах. В полную силу закон заработает с 1 июля 2017 года. Каждый интернет-магазин должен иметь кассовый аппарат (ККТ), подключенный к интернету и соединенный с оператором фискальных данных (ОФД).
Касса будет оформлять чек на каждую транзакцию в интернет-магазине. А после - отправлять его в ОФД для регистрации. Чек будет дублироваться клиенту на почту. Электронный вариант чека станет полноценной альтернативой бумажному.
Из ОФД данные будут уходить в Федеральную налоговую службу. Штраф за каждую незарегистрированную покупку в интернет-магазине будет составлять до 100% ее суммы, но не меньше 30 000 рублей, а за неправильную кассу или неотправку электронной версии чека клиенту – 10 000 рублей.
Количество заказов в интернет-магазине распределяется неравномерно – в зависимости от времени суток, сезона, акционных предложений. За одну секунду в интернет-магазин может поступать несколько десятков заказов, а текущее кассовое оборудование позволяет печатать не более 2 чеков за секунду.
К интернет-магазинам на «1С-Битрикс» можно будет подключить несколько кассовых аппаратов параллельно. Эта проблема решена.
В настройках модуля "Интернет-магазин" ставим
Знаков после запятой при выводе количественного значения: Авто
В свойствах таблицы b_sale_basket меняем все длины полей, что содержат 18,4 на 18,10
ALTER TABLE `b_sale_basket` MODIFY `PRICE` decimal(18,10) NOT NULL ;
ALTER TABLE `b_sale_basket` MODIFY `BASE_PRICE` decimal(18,10) NULL DEFAULT NULL ;
ALTER TABLE `b_sale_basket` MODIFY `QUANTITY` decimal(18,10) NOT NULL DEFAULT "0.0000000000000" ;
Если заказ создаётся через API, а не через админку - то всё хорошо. Если через админку будем менять цену за единицу товара - то всё хорошо, но если "сохранить" без изменений... точность сбросится до 4го знака.
И волшебный ответ для того, что бы аккаунт прошёл валидацию "your account is temporarily disabled. business verification please contact support to resolve"
Hello!
What types of emails will you be sending - transactional or marketing?
transactional + marketing
Register info, Order info, Promo mail.
Where do you source your database of email addresses?
CMS 1C-Bitrix (divasoft.ru)
Are all of your email addresses double-opt in?
I do not quite understand, but the mail has.
What is your expected monthly volume of messages?
100-1000, we just start online-store
Have you read our Email Best Practices document?
Yes!
Can you please give us the URL that your users use to sign up for your email as well as a link to your Terms of Service?
In development, link to register page = https://divasoft.ru/login/?register=yes&backurl=%2F
p.s. этот сервис скрывает ip адрес сервера отправителя
Дальше в Админ-панели, в настройках Валюты->Языковые настройки (/bitrix/admin/currency_edit.php?lang=ru&ID=RUB)
Строка формата для вывода валюты: # руб.
Разделитель тысяч при выводе: Другое значение  
Дальше меняем длину одного столбца в SQL таблице:
ALTER TABLE `b_catalog_currency_lang`
CHANGE `THOUSANDS_SEP` `THOUSANDS_SEP` varchar(10) COLLATE 'utf8_unicode_ci' NULL DEFAULT ' ' AFTER `DEC_POINT`;
И устанавливаем нужное значение разделителя вручную (т.к. в админке ограничение на 5 символов при вводе):
UPDATE `b_catalog_currency_lang` SET `THOUSANDS_SEP` = ' '
WHERE `CURRENCY` = 'RUB' AND `LID` = 'ru';
Как и всякая хорошая вещь, блог «Дивасофт» начинался с идеи. Чужой. Где-то на просторах интернета мы подсмотрели дизайн с широкими картинками и узким текстом. Отталкиваясь от него, приступили к созданию своего варианта. Долго, очень долго мы вымеряли шаблоны. Придумывали, где разметить дату и подпись, использовать ли теги, как обойтись с картинками, что делать с разделением по страницам. И вот, спустя чуть ли не полгода, блог «Дивасофт» запущен и работает.
И он красивый. Да, вот так вот нескромно с нашей стороны это заявлять, но посудите сами. Чего только стоит исходный код страницы, залюбоваться можно. Разметка всех и вся сделана по стандартам HTML5. Вы только посмотрите на структуру каждого поста!
<article>
<header>
<h2><a href="">Открытие блога</a></h2>
<span><time datetime="2014-05-16T12:00:00+04:00">16 Мая 2014</time>,
<em>Ashe Gentle</em></span>
</header>
<p>Как и всякая хорошая вещь, блог «Дивасофт» начинался с идеи. Чужой. Где-то на просторах интернета мы подсмотрели дизайн с широкими картинками и узким текстом. Отталкиваясь от него, приступили к созданию своего варианта. Долго, очень долго мы вымеряли шаблоны. Придумывали, где разметить дату и подпись, использовать ли теги, как обойтись с картинками, что делать с разделением по страницам. И вот, спустя чуть ли не полгода, блог «Дивасофт» запущен и работает.</p>
<h3>Подзаголовок</h3>
<p>И он красивый. Да, вот так вот нескромно с нашей стороны это заявлять, но посудите сами. Чего только стоит исходный код страницы, залюбоваться можно. Разметка всех и вся сделана по стандартам HTML5. Вы только посмотрите на структуру каждого поста!</p>
<footer>
<em><a href="#">Бекэнд</a>, <a href="#">Bitrix</a></em>
</footer>
</article>
Тут тебе и <article>, и <header>, и <footer>, и <time> и всё-всё-всё на свете. А как замечательно оформлены у нас цитаты:
<blockquote cite="http://divasoft.ru/blog/">
<p>А как замечательно оформлены у нас цитаты</p>
</blockquote>
Отдельно стоит упомянуть типографику. Вы обратили внимание, что мы используем верные кавычки, принятые в русском языке — «ёлочки»? И, конечно, длинные тире вместо дефисов и минусов, которые, между прочим, не так просто поставить. Приходится использовать либо цифровые коды, либо специальные символы html.
А ещё мы точно продумали расположение изображений. Их может быть четыре рядом, три, два или одно на весь блок записи. И при всём этом отступы между ними будут равными. Пришлось повозиться с полпикселями, появляющимися в разных браузерах. Но и эту проблему мы решили, использовав float: right; для крайнего правого изображения.
Кстати, о полпикселях. Это происходит потому, что мы используем собственную процентную сетку. Которая тоже была разработана путём долгих и кровавых споров. У нас вообще никогда без них не обходится. Сейчас, например, воюем за или против переносов слов.
Всё вышесказанное относилось к вёрстке, но и с натягом вышло не так просто. Изначально планировалось использовать стандартный компонент битрикс — блог. Но когда уже всё было готово и мы приступили к тестированию, возникли непредвиденные проблемы. Оказалось, что начиная с 12 версии, разработчики битрикса запретили использование HTML-редактора в блогах. Наверное, это связано с безопасностью. И наверное, важно. Но нам абсолютно не подходит. Так реализация проекта застопорилась на неопределённое время, пока мы искали пути обхода. Как вариант рассматривали использование другой площадки — wordpress, например. Заточенный именно для блогов, он мог бы стать решением всех проблем. Но оказалось нецелесообразным разбивать единую систему. Поэтому мы сделали блог на инфоблоках.
И увидел Бог всё, что Он создал, и вот, хорошо весьма. И был вечер, и было утро...
Возможно, потом у нас будут комментарии и подписка, и конечно «новое видение» основного сайта. Пока это всё в проекте и в необозримом будущем. Но уже сейчас вы можете читать о жизни компании, её проблемах, решениях, разработках, проектах и о многом другом. Присоединяйтесь!
Некоторое время назад мы поставили себе цель стать сертифицированным партнёром битрикс. Это дало бы нам дополнительные плюшки и корпоративный портал, к тому же. Битрикс предлагает два способа: набрать 100 и более баллов по продажам их продуктов или пройти сертификацию по определённым курсам. Мы решили пойти по более простому (на наш взгляд) второму пути. И я приступила к изучению и прохождению кучи тестов. День за днём я читала, отвечала, снова читала и получала сертификаты. В результате собралась внушительная стопка.
И вот, когда были сданы все тесты, оставалось дело за малым: рассказать на нашем сайте о продуктах битрикс. Дав себе справедливый отдых, я отложила написание статьи на недельку. Этого времени хватило, чтобы продать нужное количество лицензий и заработать статус «Сертифицированный партнёр» по первому пути.