Для корректной индексации сайта в поисковых системах необходимо исключить зеркало домена с префиксом WWW. Если у вас есть сертификат безопасного соединения HTTPS, то дополнительно требуется обеспечить 301 редирект на защищенный URL для пользователей и роботов поисковых систем. Данную задачу легко выполнить с помощью функции Bitrix
url - URL на который будет перенаправлен браузер. Допустимо использование как относительных адресов, так и адресов ведущих на другие сайты и начинающихся со следующих протоколов: "http://", "https://", "ftp://".
skip_security_check - Необязательный. Значение true позволяет пропустить проверку модуля безопасности на фишинг.
status - Необязательный. Параметр устанавливает код (статус) в HTTP-заголовке ответа. Например, "301 Moved permanently". Параметр добавлен в версии 8.5.1.
Решение следующее: размещаем PHP строку в файле /bitrix/php_interface/init.php :
if($_SERVER['SERVER_PORT'] == 80 or $_SERVER['SERVER_NAME']== 'host_name.ru')
LocalRedirect( 'https://' . 'www.hostname.ru' . $_SERVER['REQUEST_URI'], false, '301 Moved permanently');
Tеперь получаем корректный 301 редирект, с проверкой безопасности фишинга, на основной URL нашего сайта - "WWW.HOST_NAME.RU". Необходимо учитывать, что без указания необязательного параметра "status" редирект может дать ответ заголовка по умолчанию
Если XML написан читабельно, при обработке XML часто возникает проблема с обработкой пробелов. Если пробелы между тегами не имеют значения, присваиваем атрибуту preserveWhiteSpace значение false:
$xml_string = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<offers>
<offer>
<name>Клавиатура №1</name>
<category>000001</category>
<param name="Гарантия мес." order="1" >12</param>
</offer>
<offer>
<name>Клавиатура №2</name>
<category>000001</category>
<param name="Гарантия мес." order="1" >12</param>
</offer>
</offers>
XML;
$dom = new domDocument("1.0", "utf-8"); // Создаём XML-документ версии 1.0 с кодировкой utf-8
$dom->preserveWhiteSpace=false; //если пробелы между тегами не имеют значения
#$dom->load("file.xml"); // при необходимости, загружаем XML-документ из файла в объект DOM
$dom->loadXML($xml_string); // если это переменная, как в нашем случае, загружаем XML-документ из переменной в объект DOM
$root = $dom->documentElement; // Получаем корневой элемент
$childs = $root->childNodes; // Получаем дочерние элементы у корневого элемента
for ($i = 0; $i < $childs->length; $i++) {
$offer = $childs->item($i); // Получаем следующий элемент из NodeList
$lp = $offer->childNodes; // Получаем дочерние элементы у узла "offer"
$name = $lp->item(0)->nodeValue; // Получаем значение узла "name"
print "name: $name<br />";
}
Разработка одностраничников по системе AIDA. Воронка продаж. Повышаем конверсию.
A ( attention ) — привлечь внимание. Это своеобразное установление контакта с потенциальным клиентом. Важно привлечь клиента и чем больше будет привлечено потенциальных клиентов, тем лучше.
I ( interest ) — создать интерес к товару (или к компании, или к продавцу). Интерес можно создать, например: за счет нового предложения, скидок или распродаж. В целом потребности человека давно известны и описаны, например: в пирамиде потребностей Маслоу.
D ( desire ) – возбудите желание клиента владеть товаром. По сути это — этап презентации товара потребителю. Для того чтобы клиент захотел Ваш товар его нужно «вкусно» преподнести, клиент должен представить что он пользуется товаром и удовлетворяет свои потребности.
A ( action ) – действие, точнее толчок к действию. Если сравнивать с этапами продаж, то это – этап завершения сделки. Этот этап очень важен, ведь клиент должен купить товар пока у него есть желание, созданное на предыдущем этапе, иначе оно исчезнет или клиент может купить данный товар не у вас.
В составе массива $arParams, присутствует элемент с тильдой в названии, например, [~VALUE]. Чем же отличается [~VALUE] от [VALUE]? Текст в названиях с тильдой [~VALUE] храниться в необработанном функцией htmlspecialchars() виде, что в случае необходимости позволяет выводить html код.
При выгрузке товаров с sku на яндекс маркет, яндекс требует чтобы каждому торговому предложению соответствовала уникальная ссылка и страница сайта. Комплексный компонент catalog с последней стабильной версией тогового модуля Интернет-магазин (sale) ver.14.11.9 данное требование не обеспечивает. Производим кастомизацию скрипта отвечающего за показ страницы с выводом элемента каталога.
Для изменения компонента catalog скопируем файлы шаблона в папку .default и найдем в составе файлов скопированного шаблона шаблон компонента catalog.element. В папке шаблона, в script.js найдем и немножко изменим функцию window.JCCatalogElement.prototype.SetCurrent(), которая отвечает за начальный вывод SKU:
window.JCCatalogElement.prototype.SetCurrent = function()
{
var i = 0,
j = 0,
strName = '',
arShowValues = false,
arCanBuyValues = [],
arFilter = {},
tmpFilter = [],
current = this.offers[this.offerNum].TREE,
//CUSTOM START
paramsUrl = window.location.search,
pidRegExp = new RegExp(/[?&]pid=(\d+)/),
pid = pidRegExp.exec(paramsUrl);
if (pid && pid[1]) {
for (i = 0; i < this.offers.length; i++)
{
if (this.offers[i].ID == pid[1]) {
current = this.offers[i].TREE;
}
}
}
//CUSTOM END
...
Теперь при наличии в GET запросе параметра pid с значением равным ID элемента будет активна нужная страница. Осталось немножко откастомить скрипт формирования YML файла, чтобы получить в Маркете ссылку на предложение SKU вида
Для YML выгрузки изменим обработку yandex_simple_run.php в разделе формирования ноды <url />добавим параметр pid, при выполнении кастомизации необходимо следовать всем правилам из курсов http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43в
Дополняем выбороку флагом отбора в свойствах элементов инфоблока, чтобы можно было выгружать только нужные элементы. Все готово, выгружаем товары в Маркет и ждем покупателей!