Разработка, внедрение, сопровождение
Техническая поддержка:
+7-964-938-34-88
Отдел продаж, с 9:00 до 18:00 (по Москве)
с 09.00 - 18.00 (по Москве)
Вы также можете заказать звонок

Киоск

2 450 Р
Готовый сайт
Киоск
Киоск
2 450 Р
12:02:02 - 17.11.2017
Дополнительные модули
Стоимость решения: 2 450 Р
Дополнительные модули: 0 Р
Итого: 2 450 Р
12:02:02 - 17.11.2017

Часто задаваемые вопросы и ответы на них

Что входит в состав модуля?
В состав модуля входят следующие компоненты:
catalog.basket - компонент отвечающий за отображение товаров в корзине и процедуру оформления заказа
catalog.basket.small - компонент отвечающий за отображение количества товаров в корзине, а так же является обработчиком события добавления товара в корзину. Поэтому данный компонент должен присутствовать на всех страницах, на которых нужен функционал добавления товара в корзине.
market.yandex_market - компонент позволяет генерировать xml для выгрузки товаров в Яндекс.Маркет (находится в папке /ys-ym/ относительно корня сайта). Компонент выводит настройки если вы админ и выводит XML если вы гость. Предварительно зарегистрируйтесь в системе Яндекс.маркет.
Что происходит в процессе установки модуля?
При первой установке модуля "Киоск", автоматически создаются разделы: 
/account/orders/ - отображение заказов пользователя; 
/account/cart/ - корзина; 
После установки модуля во вкладке “Сервисы” будет создано меню настройки модуля “Киоск”
.

Модуль создаёт два типа почтовых событий и по одному почтовому шаблону для каждого из них: SALE_ORDER и SALE_ORDER_ADMIN. Первый используется для отправки писем клиенту об успешном оформлении заказа. Второй используется для отправки аналогичного письма администратору сайта (указывается в параметрах компонента yenisite:catalog.basket).


Какие настройки нужно обязательно сделать в административном разделе?
1) Отмечаем инфоблоки, которые являются торговыми каталогами нажимаем кнопку “Сохранить”


В инфоблоке, указанном как торговый каталог, создается числовое свойство MARKET_QUANTITY для хранения количества товара и PRICE_BASE для хранения цены (тип цены PRICE_BASE создается по умолчанию, для его редактирования и создания новых типов цен см. пункт "Как создать несколько типов цен"). 
Если в настройках Киоска включить количественный учет для каталога товаров, значение в этом поле будет автоматически уменьшаться при оформлении заказа с помощью большой корзины Киоска.


2) Далее необходимо заполнить цены и количество каждого товара
Как вывести малую/летающую корзину в публичной части сайта?
Малая корзина отвечает за добавления товара в корзину и поэтому она должна находится перед компонентом каталога. 
Для вызова компонента малой корзины используйте следующий код:
<? $APPLICATION->IncludeComponent(
	"yenisite:catalog.basket.small", 
	"", 
	array(), 
	false
);?>
				


Для отображения малой корзины на всех страницах сайта необходимо поместить ее в header.php вашего шаблона. 
Если же хотите отображать корзину только на страницах каталога, то ее необходимо поместить в файл, где непосредственно вызывается компонент каталога (например: /catalog/index.php).В состав решения входит шаблон bitronic, для малой корзины. Он делает корзину “летающей” и позволяет выбирать количество товара прямо в корзине.


Как вывести кнопки для добавления товара в корзину (без AJAX, универсально для любого шаблона)?
Для работы с каталогом, необходимо использовать стандартный компонент bitrix:catalog
Внимание! Настоятельно рекомендуем скопировать шаблон компонента в шаблон сайта для внесения последующих правок.

Добавление кнопок в список элементов (bitrix:catalog.section)

После того как вы скопировали шаблон комплексного компонента bitrix:catalog в шаблон сайта, необходимо найти следующий файл:

bitrix/templates/ВАШ_ШАБЛОН/components/bitrix/catalog/bitrix/.default/bitrix/catalog.section/.default/template.php

Далее в этом файле ищем часть где выводятся элементы каталога.

Для справки: каждый компонент по завершению своей работы формирует массив результатов. Обычно массив результатов обозначается как $arResult. Компонент bitrix:catalog по умолчанию имеет вложенный массив элементов $arResult[‘ITEMS’]. В нем хранятся данные об элементах (товарах), которые в последующем выводятся в шаблон компонента.

Вывод элементов в шаблоне осуществляется примерно следующим образом:
foreach ($arResult[‘ITEMS’] as $arItem) //цикл для перебора всех элементов в массиве
{
	if ($arItem[‘CAN_BUY’]) //если элемент разрешен к покупке
	{
		//Выводим кнопки “купить” и “в корзину”
	}
}

					


Теперь вставляем код вызова кнопок "купить" и "в корзину" внутри этого цикла, в необходимом месте верстки

foreach ($arResult[‘ITEMS’] as $arItem) //цикл для перебора всех элементов в массиве
{
	if ($arItem[‘CAN_BUY’]) //если элемент разрешен к покупке
	{
		//Выводим кнопки “купить” и “в корзину”
		<noindex> 
			<a href="<?echo $arElement["BUY_URL"]?>" rel="nofollow"> //Кнопка "купить"
				<?echo GetMessage("CATALOG_BUY")?>
			</a> 
			<a href="<?echo $arElement["ADD_URL"]?>" rel="nofollow"> //Кнопка "добавить в корзину"
				<?echo GetMessage("CATALOG_ADD")?>
			</a> 
		</noindex>
	}
}
			

Если ничего не выводится, то скорей всего в языковых файлах не определены следующие константы:

$MESS["CATALOG_BUY"] = "Купить"; 
$MESS["CATALOG_ADD"] = "В корзину";
Как интегрировать Киоск в стандартный AJAX в новых шаблонах каталога?

bitrix:catalog.element

в шаблоне компонента детальной страницы находим файл result_modifier.php и в самый конец файла (до закрывающего тега ?> ) добавляем:

if (CModule::IncludeModule('yenisite.market')) {
	$prices = CMarketPrice::GetItemPriceValues($arResult["ID"], $arResult['PRICES']);
	if(count($prices)>0)
		unset ($arResult["PRICES"]);
	$minPrice = false;
	foreach ($prices as $k => $pr) {
		$pr = floatval($pr);
		$arResult["PRICES"][$k]["VALUE"] = $pr;
		$arResult["PRICES"][$k]["PRINT_VALUE"] = $pr;
		if ((empty($minPrice) || $minPrice > $pr) && $pr > 0) {
			$minPrice = $pr;
			$minPriceId = $k;
		}
	}
	if ($minPrice !== false) {
		$arResult['MIN_PRICE']['PRICE_ID'] = $minPriceId;
		$arResult['MIN_PRICE']['VALUE'] = $minPrice;
		$arResult['MIN_PRICE']['PRINT_VALUE'] = $minPrice;
		$arResult['MIN_PRICE']['DISCOUNT_VALUE'] = $minPrice;
		$arResult['MIN_PRICE']['PRINT_DISCOUNT_VALUE'] = $minPrice;
		$arResult['CAN_BUY'] = true;
	}
	$arResult['CHECK_QUANTITY'] = (CMarketCatalog::UsesQuantity($arParams['IBLOCK_ID']) == 1);
	$arResult['CATALOG_QUANTITY'] = intval($arResult['PROPERTIES']['MARKET_QUANTITY']['VALUE']);
	
	if ($arResult['CHECK_QUANTITY'] && $arResult['CATALOG_QUANTITY'] <= 0) {
		$arResult['CAN_BUY'] = false;
	}
	$arResult['CATALOG_TYPE'] = 1; //simple product
}

Что делает этот код.

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

bitrix:catalog.section, bitrix:catalog.top

в шаблоне компонента страницы раздела каталога (или топа каталога) находим файл result_modifier.php и в самый конец файла (до закрывающего тега ?> ) добавляем:

if (CModule::IncludeModule('yenisite.market')) {
	$arResult['CHECK_QUANTITY'] = (CMarketCatalog::UsesQuantity($arParams['IBLOCK_ID']) == 1);
	
	foreach ($arResult['ITEMS'] as $index => &$arItem) {
		$prices = CMarketPrice::GetItemPriceValues($arItem['ID'], $arItem['PRICES']);
		if (count($prices) > 0) {
			unset($arItem['PRICES']);
		}
		$minPrice = false;
		foreach ($prices as $k => $pr) {
			$pr = floatval($pr);
			$arItem['PRICES'][$k]['VALUE'] = $pr;
			$arItem['PRICES'][$k]['PRINT_VALUE'] = $pr;
			if ((empty($minPrice) || $minPrice > $pr) && $pr > 0) {
				$minPrice = $pr;
			}
		}
		if ($minPrice !== false) {
			$arItem['MIN_PRICE']['VALUE'] = $minPrice;
			$arItem['MIN_PRICE']['PRINT_VALUE'] = $minPrice;
			$arItem['MIN_PRICE']['DISCOUNT_VALUE'] = $minPrice;
			$arItem['MIN_PRICE']['PRINT_DISCOUNT_VALUE'] = $minPrice;
			$arItem['CATALOG_MEASURE_RATIO'] = 1;
			$arItem['CAN_BUY'] = true;
		}
		$arItem['CHECK_QUANTITY'] = $arResult['CHECK_QUANTITY'];
		$arItem['CATALOG_QUANTITY'] = CMarketCatalogProduct::GetQuantity($arItem['ID'], $arItem['IBLOCK_ID']);
		
		if ($arItem['CHECK_QUANTITY'] && $arItem['CATALOG_QUANTITY'] <= 0) {
			$arItem['CAN_BUY'] = false;
		}
		$arItem['CATALOG_TYPE'] = 1; //simple product
	}
	unset($arItem);
}

bitrix:catalog

в параметрах комплексного компонента необходимо указать путь к странице, на которой расположен компонент с большой корзиной Киоска:



Где и в каком виде хранятся заказы клиентов?

Заказы клиентов хранятся в инфоблоке "Заказы" (тип инфоблока "yenisite_market")

Каждый элемент данного инфоблока - отдельный заказ

Может ли Киоск оповещать о создании нового заказа? Куда приходят письма?

Да, Киоск оповещает о создании нового заказа как клиента, так и администратора интернет магазина

Адрес администратора необходимо указывать в настройках компонента yenisite:catalog.basket (большая корзина)

Может ли Киоск оповещать о создании нового заказа? Куда приходят письма?

Да, Киоск оповещает о создании нового заказа как клиента, так и администратора интернет магазина

Адрес администратора необходимо указывать в настройках компонента yenisite:catalog.basket (большая корзина)

Как добавить свойство в умный фильтр?

Для этого необходимо зайти в параметры редактирования соответствующего свойства:


Далее сделать следующие настройки:


Как создать несколько типов цен?

Прежде чем создать новый тип цены, необходимо добавить свойство в инфоблок каталога для его хранения:

Далее переходим в раздел "типы цен" (Сервисы->Киоск->Типы цен)

И добавляем новый тип цены

В форме добавления необходимо указать следующие параметры:

    Название типа цены
    Символьный код - должен соответствовать символьному коду свойства, которое создали для хранения данного типа цены
    Выбрать необходимые группы пользователей, которым будет доступна данный тип цены
Как настроить, чтобы разные группы пользователей видели разные типы цен?
В каждом типе цены нужно указать, каким группам пользователей он доступен (см. предыдущий пункт). Для того, чтобы получить список цен, доступных текущему пользователю, используется метод CMarketPrice::GetItemPriceValues($elementID, $arPrices) - подробнее в третьем примере использования API.
Может ли Киоск работать на многосайтовости, что для этого нужно сделать?

Да, Киоск может работать на многосайтовости. Для этого необходимо, cкопировать папку /account/ в корневой каталог каждого сайта (где предполагается использование модуля Киоск)*

Далее при оформлении заказа происходит передача перменной SITE_ID в свойство заказа, которые в последующем фильтрутся для каждого сайта

* - данный раздел копируются только на один сайт (который стоит по умолчанию). 
В файле /account/order/index.php в параметрах компонента bitrix:news.list (вывод списка заказов), происходит передача SITE_ID для фильтрации заказов по сайту.

Так же необходимо отметить в шаблонах почтовых собыитий SALE_ORDER и SALE_ORDER_ADMIN галочку для использования их на новых сайтах.

Переходим в почтовое событие

Переходим в шаблон почтового события

И выбираем необходимые сайты уже в шаблоне

Как настроить добавление свойств в корзину (покупка с характеристикой)?

вывод свойств для покупки в комплексном компоненте bitrix:catalog и всех остальных компонентах каталога активируется с помощью четырёх параметров, которые находятся в группе "Добавление в корзину":

Описание параметров в официальной документации Битрикса.

Вид параметров в настройках компонента.

В качестве PRODUCT_PROPS_VARIABLE необходимо указать стандартное название переменной "prop". Необходимые для добавления характеристики появятся в arResult компонента. В шаблоне нужно вывести поля для выбора характеристик. Можно посмотреть, как это выглядит в стандартных шаблонах Битрикса. Все необходимые свойства товара должны передаваться на сервер в момент добавления в корзину в массиве prop[код_свойства] = ID значения.

При передаче запроса на добавление в корзину должен передаваться массив PROP, содержащий коды свойств в качестве ключей и ID элементов списка в качестве значений.

Передающиеся параметры.

Свойство инфоблока типа "Список".

Свойства, с которыми товар был добавлен в корзину, будут отображаться в шаблонах малой и большой корзины Киоска. В истории заказов в публичной части сайта (шаблон bitronic для компонента bitrix:news.detail). В письмах, которые отправляются администратору и покупателю после оформления заказа. А также в административной части в текстовом поле с описанием заказа.

Как подключить автоматический обработчик платёжной системы Платрон?

В первую очередь необходимо подключить свой сайт к платежной системе Платрон. Это можно сделать на следующей странице: https://www.platron.ru/info/connect/

После установки модуля "Киоск" в системе появится инфоблок "Платежные системы" типа "Справочники". В этом инфоблоке уже содержится запись для подключения платежной системы. Ее необходимо активировать:

У данного элемента НЕОБХОДИМО либо оставить название "Platron", либо задать символьный код "platron" (с версии 1.5.1)
Далее необходимо изменить элемент "Platron" и указать идентификатор магазина и кодовое слово, которые вы получите, подключив свой сайт к платежной системе.Теперь магазин готов к приему платежей через систему Платрон: Скриншот 1 Скриншот 2
Как именно работает «Количественный учёт» в Киоске?

В инфоблоке, указанном как торговый каталог, создается числовое свойство MARKET_QUANTITY для хранения количества товара. Если в настройках Киоска включить количественный учет для каталога товаров, значение в этом поле будет автоматически уменьшаться при оформлении заказа с помощью большой корзины Киоска.

Включение количественного учета

Форма редактирования товара

Получить текущий остаток товара можно с помощью метода CMarketCatalogProduct::GetQuantity($elementID, $iblockID), подробнее в четвёртом примере использования API.

Компонент большой корзины yenisite:catalog.basket для товаров, у которых включен количественный учёт, производит сверку между количеством положенным в корзину и имеющимся количеством в наличии на данный момент. Количество товара автоматически уменьшается до максимально возможного. Если это происходит в момент оформления заказа, например, когда кто-то другой уже оформил заказ с этим же товаром, оформление заказа прерывается и выдаётся сообщение о том, что содержимое корзины изменилось.

Проверить, является ли инфоблок торговым каталогом.
CMarketCatalog::IsCatalog($iblockID);

$iblockID - идентификатор проверяемого инфоблока

Метод возвращает 1, если инфоблок является торговым каталогом в Киоске. В противном случае - 0.

Проверить, включен ли количественный учёт для указанного инфоблока.
CMarketCatalog::UsesQuantity($iblockID);

$iblockID - идентификатор проверяемого инфоблока

Метод возвращает 1, если в указанном инфоблоке производится количественный учёт. В противном случае - 0.

Получить список цен, доступных текущему пользователю.
CMarketPrice::GetItemPriceValues($elementID, $arPrices);

$elementID - идентификатор элемента инфоблока (товара)

$arPrices - массив с ценами, где в качестве ключей массива выступают символьные коды типов цен, которые необходимо обработать. Например, массив со списком цен может задаваться в параметрах компонента. После чего, его нужно передать в этот метод, чтобы отсеять цены, недоступные текущему пользователю. В шаблоне компонента bitrix:catalog.element сюда можно передавать массив $arResult['PRICES'], в шаблоне компонентов bitrix:catalog.section и bitrix:catalog.top - массив $arItem['PRICES'] (из цикла перебора товаров). Если второй аргумент не указать, или передать пустой массив, будут выбраны все типы цен, доступные текущему пользователю.

Метод возвращает массив с парами ("КОД_ТИПА_ЦЕНЫ" => "СТОИМОСТЬ_ТОВАРА").

Получить доступное количество для указанного товара.
CMarketCatalogProduct::GetQuantity($elementID, $iblockID);

$elementID - идентификатор элемента инфоблока (товара)

$iblockID - идентификатор инфоблока с каталогом (необязателен, но его отсутствие приводит к дополнительному запросу к базе данных).

Метод возвращает целое число с количеством товара. При возникновении ошибки (товар не найден, отсутствует свойство с количеством) метод возвращает false.

12:02:02 - 17.11.2017
12:02:02 - 17.11.2017
Обновлений нет
По вопросам установки и настройки типового решения, пожалуйста, пишите в нашу техническую поддержку: 
https://it-round.ru/support/
(необходимо зарегистрироваться) 

Режим работы: 9:00 — 17:00 по московскому времени  
Время реакции на обращение – 72 часа. 
Выходные дни: суббота и воскресение. 

При создании обращения, пожалуйста, сразу предоставьте нам: 

1. Административный доступ на сайт. 
сайт: 
логин: 
пароль: 

2. FTP аккаунт с правами на чтение/запись всех папок и файлов сайта (включая ядро). 
хост: 
логин: 
пароль: 

Если с этим пунктом проблема, то предоставьте доступ к панели управления хостинг-аккаунтом. 
панель хостера: 
логин: 
пароль: 

3. Хостинг должен удовлетворять минимальным техническим требованиям ПО 1С-Битрикс, то есть скрипт: 
http://www.1c-bitrix.ru/download/files/scripts/bitrix_server_test.php
и в административной панели: 
http://ваш_сайт.ру/bitrix/admin/site_checker.php?lang=ru 
и 
http://ваш_сайт.ру/bitrix/admin/perfmon_panel.php?lang=ru 
не должны показывать ошибок. 
Важно! Для нормальной скорости работы сайта производительность веб-сервера должна быть НЕ ниже эталонных 30! 

ТП по гарантии оказывается в течении 12 месяцев со дня приобретения типового решения. 

Через 1 год использования решения Вы можете за 50% от стоимости решения приобрести возможность получать техническую поддержку и новые версии модуля в течении еще одного года. Покупка осуществляется из панели управления Вашего сайта: 
Рабочий стол -> Marketplace -> Установленные решения. 
Скриншот: http://screencast.com/t/nyQKNuqx
Там же указываются сроки получения обновлений.