• Как сделать ссылку для каждого SKU в Bitrix?

    @EvgeniyRava Автор вопроса
    no_one_safe: Да. К сожалению не нашел где вызывается комплексно в папке компонента. Но нашел еще файл .parameters.php там есть код связанный с sku возможно он как-то связан
    <?
    if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

    use Bitrix\Main\Loader;
    use Bitrix\Main\ModuleManager;

    if (!Loader::includeModule('iblock'))
    return;
    $boolCatalog = Loader::includeModule('catalog');

    $arSKU = false;
    $boolSKU = false;
    if ($boolCatalog && (isset($arCurrentValues['IBLOCK_ID']) && (int)$arCurrentValues['IBLOCK_ID']) > 0)
    {
    $arSKU = CCatalogSKU::GetInfoByProductIBlock($arCurrentValues['IBLOCK_ID']);
    $boolSKU = !empty($arSKU) && is_array($arSKU);
    }

    $arTemplateParameters = array(
    );

    if (isset($arCurrentValues['IBLOCK_ID']) && (int)$arCurrentValues['IBLOCK_ID'] > 0)
    {
    $arAllPropList = array();
    $arFilePropList = array(
    '-' => GetMessage('CP_BC_TPL_PROP_EMPTY')
    );
    $arListPropList = array(
    '-' => GetMessage('CP_BC_TPL_PROP_EMPTY')
    );
    $arHighloadPropList = array(
    '-' => GetMessage('CP_BC_TPL_PROP_EMPTY')
    );
    $rsProps = CIBlockProperty::GetList(
    array('SORT' => 'ASC', 'ID' => 'ASC'),
    array('IBLOCK_ID' => $arCurrentValues['IBLOCK_ID'], 'ACTIVE' => 'Y')
    );
    while ($arProp = $rsProps->Fetch())
    {
    $strPropName = '['.$arProp['ID'].']'.('' != $arProp['CODE'] ? '['.$arProp['CODE'].']' : '').' '.$arProp['NAME'];
    if ('' == $arProp['CODE'])
    $arProp['CODE'] = $arProp['ID'];
    $arAllPropList[$arProp['CODE']] = $strPropName;
    if ('F' == $arProp['PROPERTY_TYPE'])
    $arFilePropList[$arProp['CODE']] = $strPropName;
    if ('L' == $arProp['PROPERTY_TYPE'])
    $arListPropList[$arProp['CODE']] = $strPropName;
    if ('S' == $arProp['PROPERTY_TYPE'] && 'directory' == $arProp['USER_TYPE'] && CIBlockPriceTools::checkPropDirectory($arProp))
    $arHighloadPropList[$arProp['CODE']] = $strPropName;
    }

    if ($boolSKU)
    {
    $arDisplayModeList = array(
    'N' => GetMessage('CP_BC_TPL_DML_SIMPLE'),
    'Y' => GetMessage('CP_BC_TPL_DML_EXT')
    );

    $arAllOfferPropList = array();
    $arFileOfferPropList = array(
    '-' => GetMessage('CP_BC_TPL_PROP_EMPTY')
    );
    $arTreeOfferPropList = array(
    '-' => GetMessage('CP_BC_TPL_PROP_EMPTY')
    );
    $rsProps = CIBlockProperty::GetList(
    array('SORT' => 'ASC', 'ID' => 'ASC'),
    array('IBLOCK_ID' => $arSKU['IBLOCK_ID'], 'ACTIVE' => 'Y')
    );
    while ($arProp = $rsProps->Fetch())
    {
    if ($arProp['ID'] == $arSKU['SKU_PROPERTY_ID'])
    continue;
    $arProp['USER_TYPE'] = (string)$arProp['USER_TYPE'];
    $strPropName = '['.$arProp['ID'].']'.('' != $arProp['CODE'] ? '['.$arProp['CODE'].']' : '').' '.$arProp['NAME'];
    if ('' == $arProp['CODE'])
    $arProp['CODE'] = $arProp['ID'];
    $arAllOfferPropList[$arProp['CODE']] = $strPropName;
    if ('F' == $arProp['PROPERTY_TYPE'])
    $arFileOfferPropList[$arProp['CODE']] = $strPropName;
    if ('N' != $arProp['MULTIPLE'])
    continue;
    if (
    'L' == $arProp['PROPERTY_TYPE']
    || 'E' == $arProp['PROPERTY_TYPE']
    || ('S' == $arProp['PROPERTY_TYPE'] && 'directory' == $arProp['USER_TYPE'] && CIBlockPriceTools::checkPropDirectory($arProp))
    )
    $arTreeOfferPropList[$arProp['CODE']] = $strPropName;
    }
    $arTemplateParameters['OFFER_ADD_PICT_PROP'] = array(
    'PARENT' => 'VISUAL',
    'NAME' => GetMessage('CP_BC_TPL_OFFER_ADD_PICT_PROP'),
    'TYPE' => 'LIST',
    'MULTIPLE' => 'N',
    'ADDITIONAL_VALUES' => 'N',
    'REFRESH' => 'N',
    'DEFAULT' => '-',
    'VALUES' => $arFileOfferPropList
    );
    $arTemplateParameters['OFFER_TREE_PROPS'] = array(
    'PARENT' => 'VISUAL',
    'NAME' => GetMessage('CP_BC_TPL_OFFER_TREE_PROPS'),
    'TYPE' => 'LIST',
    'MULTIPLE' => 'Y',
    'ADDITIONAL_VALUES' => 'N',
    'REFRESH' => 'N',
    'DEFAULT' => '-',
    'VALUES' => $arTreeOfferPropList
    );
    }
    }

    if ($boolCatalog)
    {
    $arTemplateParameters['USE_COMMON_SETTINGS_BASKET_POPUP'] = array(
    'PARENT' => 'BASKET',
    'NAME' => GetMessage('CP_BC_TPL_USE_COMMON_SETTINGS_BASKET_POPUP'),
    'TYPE' => 'CHECKBOX',
    'DEFAULT' => 'N',
    'REFRESH' => 'Y'
    );
    $useCommonSettingsBasketPopup = (
    isset($arCurrentValues['USE_COMMON_SETTINGS_BASKET_POPUP'])
    && $arCurrentValues['USE_COMMON_SETTINGS_BASKET_POPUP'] == 'Y'
    );
    $addToBasketActions = array(
    'BUY' => GetMessage('ADD_TO_BASKET_ACTION_BUY'),
    'ADD' => GetMessage('ADD_TO_BASKET_ACTION_ADD')
    );
    $arTemplateParameters['COMMON_ADD_TO_BASKET_ACTION'] = array(
    'PARENT' => 'BASKET',
    'NAME' => GetMessage('CP_BC_TPL_COMMON_ADD_TO_BASKET_ACTION'),
    'TYPE' => 'LIST',
    'VALUES' => $addToBasketActions,
    'DEFAULT' => 'ADD',
    'REFRESH' => 'N',
    'HIDDEN' => ($useCommonSettingsBasketPopup ? 'N' : 'Y')
    );
    $arTemplateParameters['COMMON_SHOW_CLOSE_POPUP'] = array(
    'PARENT' => 'VISUAL',
    'NAME' => GetMessage('CP_BC_TPL_COMMON_SHOW_CLOSE_POPUP'),
    'TYPE' => 'CHECKBOX',
    'DEFAULT' => 'N',
    );
    $arTemplateParameters['TOP_ADD_TO_BASKET_ACTION'] = array(
    'PARENT' => 'BASKET',
    'NAME' => GetMessage('CP_BC_TPL_TOP_ADD_TO_BASKET_ACTION'),
    'TYPE' => 'LIST',
    'VALUES' => $addToBasketActions,
    'DEFAULT' => 'ADD',
    'REFRESH' => 'N',
    'HIDDEN' => (!$useCommonSettingsBasketPopup ? 'N' : 'Y')
    );
    $arTemplateParameters['SECTION_ADD_TO_BASKET_ACTION'] = array(
    'PARENT' => 'BASKET',
    'NAME' => GetMessage('CP_BC_TPL_SECTION_ADD_TO_BASKET_ACTION'),
    'TYPE' => 'LIST',
    'VALUES' => $addToBasketActions,
    'DEFAULT' => 'ADD',
    'REFRESH' => 'N',
    'HIDDEN' => (!$useCommonSettingsBasketPopup ? 'N' : 'Y')
    );
    $arTemplateParameters['DETAIL_ADD_TO_BASKET_ACTION'] = array(
    'PARENT' => 'BASKET',
    'NAME' => GetMessage('CP_BC_TPL_DETAIL_ADD_TO_BASKET_ACTION'),
    'TYPE' => 'LIST',
    'VALUES' => $addToBasketActions,
    'DEFAULT' => 'BUY',
    'REFRESH' => 'N',
    'MULTIPLE' => 'Y',
    'HIDDEN' => (!$useCommonSettingsBasketPopup ? 'N' : 'Y')
    );
    /* $arTemplateParameters['PRODUCT_SUBSCRIPTION'] = array(
    'PARENT' => 'VISUAL',
    'NAME' => GetMessage('CP_BC_TPL_PRODUCT_SUBSCRIPTION'),
    'TYPE' => 'CHECKBOX',
    'DEFAULT' => 'N',
    ); */
    $arTemplateParameters['SHOW_DISCOUNT_PERCENT'] = array(
    'PARENT' => 'VISUAL',
    'NAME' => GetMessage('CP_BC_TPL_SHOW_DISCOUNT_PERCENT'),
    'TYPE' => 'CHECKBOX',
    'DEFAULT' => 'N',
    'REFRESH' => 'Y',
    );
    $arTemplateParameters['SHOW_OLD_PRICE'] = array(
    'PARENT' => 'VISUAL',
    'NAME' => GetMessage('CP_BC_TPL_SHOW_OLD_PRICE'),
    'TYPE' => 'CHECKBOX',
    'DEFAULT' => 'N',
    );
    $arTemplateParameters['DETAIL_SHOW_MAX_QUANTITY'] = array(
    'PARENT' => 'VISUAL',
    'NAME' => GetMessage('CP_BC_TPL_DETAIL_SHOW_MAX_QUANTITY'),
    'TYPE' => 'CHECKBOX',
    'DEFAULT' => 'N',
    );
    if (isset($arCurrentValues['USE_PRODUCT_QUANTITY']) && $arCurrentValues['USE_PRODUCT_QUANTITY'] === 'Y')
    {
    $arTemplateParameters['DETAIL_SHOW_BASIS_PRICE'] = array(
    "PARENT" => "BASKET",
    "NAME" => GetMessage("CP_BC_TPL_DETAIL_SHOW_BASIS_PRICE"),
    "TYPE" => "CHECKBOX",
    "DEFAULT" => "Y",
    "REFRESH" => "N",
    );
    }
    }

    if (ModuleManager::isModuleInstalled("highloadblock"))
    {
    $arTemplateParameters['DETAIL_BRAND_USE'] = array(
    'PARENT' => 'VISUAL',
    'NAME' => GetMessage('CP_BC_TPL_DETAIL_BRAND_USE'),
    'TYPE' => 'CHECKBOX',
    'DEFAULT' => 'N',
    'REFRESH' => 'Y'
    );

    if (isset($arCurrentValues['DETAIL_BRAND_USE']) && 'Y' == $arCurrentValues['DETAIL_BRAND_USE'])
    {
    $arTemplateParameters['DETAIL_BRAND_PROP_CODE'] = array(
    'PARENT' => 'VISUAL',
    "NAME" => GetMessage("CP_BC_TPL_DETAIL_PROP_CODE"),
    "TYPE" => "LIST",
    "VALUES" => $arHighloadPropList,
    "MULTIPLE" => "Y",
    "ADDITIONAL_VALUES" => "Y"
    );
    }
    }

    if (ModuleManager::isModuleInstalled("sale"))
    {
    $arTemplateParameters['USE_SALE_BESTSELLERS'] = array(
    'NAME' => GetMessage('CP_BC_TPL_USE_SALE_BESTSELLERS'),
    'TYPE' => 'CHECKBOX',
    'DEFAULT' => 'Y'
    );

    $arTemplateParameters['USE_BIG_DATA'] = array(
    'PARENT' => 'BIG_DATA_SETTINGS',
    'NAME' => GetMessage('CP_BC_TPL_USE_BIG_DATA'),
    'TYPE' => 'CHECKBOX',
    'DEFAULT' => 'Y',
    'REFRESH' => 'Y'
    );
    if (!isset($arCurrentValues['USE_BIG_DATA']) || $arCurrentValues['USE_BIG_DATA'] == 'Y')
    {
    $rcmTypeList = array(
    'bestsell' => GetMessage('CP_BC_TPL_RCM_BESTSELLERS'),
    'personal' => GetMessage('CP_BC_TPL_RCM_PERSONAL'),
    'similar_sell' => GetMessage('CP_BC_TPL_RCM_SOLD_WITH'),
    'similar_view' => GetMessage('CP_BC_TPL_RCM_VIEWED_WITH'),
    'similar' => GetMessage('CP_BC_TPL_RCM_SIMILAR'),
    'any_similar' => GetMessage('CP_BC_TPL_RCM_SIMILAR_ANY'),
    'any_personal' => GetMessage('CP_BC_TPL_RCM_PERSONAL_WBEST'),
    'any' => GetMessage('CP_BC_TPL_RCM_RAND')
    );
    $arTemplateParameters['BIG_DATA_RCM_TYPE'] = array(
    'PARENT' => 'BIG_DATA_SETTINGS',
    'NAME' => GetMessage('CP_BC_TPL_BIG_DATA_RCM_TYPE'),
    'TYPE' => 'LIST',
    'VALUES' => $rcmTypeList
    );
    unset($rcmTypeList);
    }
    }

    if (isset($arCurrentValues['SHOW_TOP_ELEMENTS']) && 'Y' == $arCurrentValues['SHOW_TOP_ELEMENTS'])
    {
    $arTopViewModeList = array(
    'BANNER' => GetMessage('CPT_BC_TPL_VIEW_MODE_BANNER'),
    'SLIDER' => GetMessage('CPT_BC_TPL_VIEW_MODE_SLIDER'),
    'SECTION' => GetMessage('CPT_BC_TPL_VIEW_MODE_SECTION')
    );
    $arTemplateParameters['TOP_VIEW_MODE'] = array(
    'PARENT' => 'TOP_SETTINGS',
    'NAME' => GetMessage('CPT_BC_TPL_TOP_VIEW_MODE'),
    'TYPE' => 'LIST',
    'VALUES' => $arTopViewModeList,
    'MULTIPLE' => 'N',
    'DEFAULT' => 'SECTION',
    'REFRESH' => 'Y'
    );
    if (isset($arCurrentValues['TOP_VIEW_MODE']) && ('SLIDER' == $arCurrentValues['TOP_VIEW_MODE'] || 'BANNER' == $arCurrentValues['TOP_VIEW_MODE']))
    {
    $arTemplateParameters['TOP_ROTATE_TIMER'] = array(
    'PARENT' => 'TOP_SETTINGS',
    'NAME' => GetMessage('CPT_BC_TPL_TOP_ROTATE_TIMER'),
    'TYPE' => 'STRING',
    'DEFAULT' => '30'
    );
    }
    }

    $arTemplateParameters['SEF_MODE'] = array(
    'brand' => array(
    'NAME' => 'Бренд',
    'DEFAULT' => '',
    "VARIABLES" => array(),
    ),
    "sections" => array(
    "NAME" => 'Список разделов',
    "DEFAULT" => "",
    "VARIABLES" => array(
    ),
    ),
    "section" => array(
    "NAME" => 'Раздел',
    "DEFAULT" => "#SECTION_ID#/",
    "VARIABLES" => array(
    "SECTION_ID",
    "SECTION_CODE",
    "SECTION_CODE_PATH",
    ),
    ),
    "element" => array(
    "NAME" => 'Детальная информация',
    "DEFAULT" => "#SECTION_ID#/#ELEMENT_ID#/",
    "VARIABLES" => array(
    "ELEMENT_ID",
    "ELEMENT_CODE",
    "SECTION_ID",
    "SECTION_CODE",
    "SECTION_CODE_PATH",
    ),
    ),
    "compare" => array(
    "NAME" => 'Таблица сравнения',
    "DEFAULT" => "compare.php?action=#ACTION_CODE#",
    "VARIABLES" => array(
    "action",
    ),
    ),
    "smart_filter" => array(
    "NAME" => 'Url раздела для умного фильтра',
    "DEFAULT" => '',
    "VARIABLES" => array(
    "SECTION_ID",
    "SECTION_CODE",
    "SECTION_CODE_PATH",
    "SMART_FILTER_PATH",
    ),
    )
    );

    ?>
  • Как сделать ссылку для каждого SKU в Bitrix?

    @EvgeniyRava Автор вопроса
    Пока сделал все по пунктам кроме 1, т.к. не нашел подключение компонента каталог. В общем пока что результатов нет, буду пробовать дальше.
  • Как сделать ссылку для каждого SKU в Bitrix?

    @EvgeniyRava Автор вопроса
    Спасибо за подробный ответ, но столкнулся с проблемой что я не нашел в коде вызова компонента каталог для того чтобы создавать кеш для каждого торгового предложения. При редактировании компонента вот код который есть
    <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
    /** var array $arParams */
    /** var array $arResult */
    /** @global CMain $APPLICATION */
    /** @global CUser $USER */
    /** @global CDatabase $DB */
    /** var CBitrixComponentTemplate $this */
    /** var string $templateName */
    /** var string $templateFile */
    /** var string $templateFolder */
    /** var string $componentPath */
    /** var CBitrixComponent $component */
    use Bitrix\Main\Loader;
    use Bitrix\Main\ModuleManager;

    $this->setFrameMode(true);
    ?>

    <? $APPLICATION->IncludeComponent(
    "likee:catalog.breadcrumb",
    "",
    array(
    "IBLOCK_ID" => $arParams["IBLOCK_ID"],
    "SEF_FOLDER" => $arResult["FOLDER"],
    "SEF_URL_TEMPLATES" => array(
    "section" => $arResult["URL_TEMPLATES"]["section"],
    "element" => $arResult["URL_TEMPLATES"]["element"],
    ),
    ),
    false
    ); ?>

    <?= $APPLICATION->ShowTitle('h1_title'); ?>

    <? // b-layout ?>

    <?
    if (isset($arParams['USE_COMMON_SETTINGS_BASKET_POPUP']) && $arParams['USE_COMMON_SETTINGS_BASKET_POPUP'] == 'Y') {
    $basketAction = (isset($arParams['COMMON_ADD_TO_BASKET_ACTION']) ? array($arParams['COMMON_ADD_TO_BASKET_ACTION']) : array());
    } else {
    $basketAction = (isset($arParams['DETAIL_ADD_TO_BASKET_ACTION']) ? $arParams['DETAIL_ADD_TO_BASKET_ACTION'] : array());
    }
    ?>

    <?
    $sElementTemplate = \Bitrix\Main\Config\Option::get('likee.estore', 'catalog_element_template');
    ?>

    <?$ElementID = $APPLICATION->IncludeComponent(
    "bitrix:catalog.element",
    $sElementTemplate,
    array(
    "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
    "IBLOCK_ID" => $arParams["IBLOCK_ID"],
    "PROPERTY_CODE" => $arParams["DETAIL_PROPERTY_CODE"],
    "META_KEYWORDS" => $arParams["DETAIL_META_KEYWORDS"],
    "META_DESCRIPTION" => $arParams["DETAIL_META_DESCRIPTION"],
    "BROWSER_TITLE" => $arParams["DETAIL_BROWSER_TITLE"],
    "BASKET_URL" => $arParams["BASKET_URL"],
    "ACTION_VARIABLE" => $arParams["ACTION_VARIABLE"],
    "PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"],
    "SECTION_ID_VARIABLE" => $arParams["SECTION_ID_VARIABLE"],
    "CHECK_SECTION_ID_VARIABLE" => (isset($arParams["DETAIL_CHECK_SECTION_ID_VARIABLE"]) ? $arParams["DETAIL_CHECK_SECTION_ID_VARIABLE"] : ''),
    "PRODUCT_QUANTITY_VARIABLE" => $arParams["PRODUCT_QUANTITY_VARIABLE"],
    "PRODUCT_PROPS_VARIABLE" => $arParams["PRODUCT_PROPS_VARIABLE"],
    "CACHE_TYPE" => $arParams["CACHE_TYPE"],
    "CACHE_TIME" => $arParams["CACHE_TIME"],
    "CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
    "SET_TITLE" => $arParams["SET_TITLE"],
    "SET_STATUS_404" => $arParams["SET_STATUS_404"],
    "PRICE_CODE" => $arParams["PRICE_CODE"],
    "USE_PRICE_COUNT" => $arParams["USE_PRICE_COUNT"],
    "SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"],
    "PRICE_VAT_INCLUDE" => $arParams["PRICE_VAT_INCLUDE"],
    "PRICE_VAT_SHOW_VALUE" => $arParams["PRICE_VAT_SHOW_VALUE"],
    "USE_PRODUCT_QUANTITY" => $arParams['USE_PRODUCT_QUANTITY'],
    "PRODUCT_PROPERTIES" => $arParams["PRODUCT_PROPERTIES"],
    "ADD_PROPERTIES_TO_BASKET" => (isset($arParams["ADD_PROPERTIES_TO_BASKET"]) ? $arParams["ADD_PROPERTIES_TO_BASKET"] : ''),
    "PARTIAL_PRODUCT_PROPERTIES" => (isset($arParams["PARTIAL_PRODUCT_PROPERTIES"]) ? $arParams["PARTIAL_PRODUCT_PROPERTIES"] : ''),
    "LINK_IBLOCK_TYPE" => $arParams["LINK_IBLOCK_TYPE"],
    "LINK_IBLOCK_ID" => $arParams["LINK_IBLOCK_ID"],
    "LINK_PROPERTY_SID" => $arParams["LINK_PROPERTY_SID"],
    "LINK_ELEMENTS_URL" => $arParams["LINK_ELEMENTS_URL"],

    "OFFERS_CART_PROPERTIES" => $arParams["OFFERS_CART_PROPERTIES"],
    "OFFERS_FIELD_CODE" => $arParams["DETAIL_OFFERS_FIELD_CODE"],
    "OFFERS_PROPERTY_CODE" => $arParams["DETAIL_OFFERS_PROPERTY_CODE"],
    "OFFERS_SORT_FIELD" => $arParams["OFFERS_SORT_FIELD"],
    "OFFERS_SORT_ORDER" => $arParams["OFFERS_SORT_ORDER"],
    "OFFERS_SORT_FIELD2" => $arParams["OFFERS_SORT_FIELD2"],
    "OFFERS_SORT_ORDER2" => $arParams["OFFERS_SORT_ORDER2"],

    "ELEMENT_ID" => $arResult["VARIABLES"]["ELEMENT_ID"],
    "ELEMENT_CODE" => $arResult["VARIABLES"]["ELEMENT_CODE"],
    "SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],
    "SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
    "SECTION_URL" => $arResult["FOLDER"] . $arResult["URL_TEMPLATES"]["section"],
    "DETAIL_URL" => $arResult["FOLDER"] . $arResult["URL_TEMPLATES"]["element"],
    'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'],
    'CURRENCY_ID' => $arParams['CURRENCY_ID'],
    'HIDE_NOT_AVAILABLE' => $arParams["HIDE_NOT_AVAILABLE"],
    'USE_ELEMENT_COUNTER' => $arParams['USE_ELEMENT_COUNTER'],

    'ADD_PICT_PROP' => $arParams['ADD_PICT_PROP'],
    'LABEL_PROP' => $arParams['LABEL_PROP'],
    'OFFER_ADD_PICT_PROP' => $arParams['OFFER_ADD_PICT_PROP'],
    'OFFER_TREE_PROPS' => $arParams['OFFER_TREE_PROPS'],
    'PRODUCT_SUBSCRIPTION' => $arParams['PRODUCT_SUBSCRIPTION'],
    'SHOW_DISCOUNT_PERCENT' => $arParams['SHOW_DISCOUNT_PERCENT'],
    'SHOW_OLD_PRICE' => $arParams['SHOW_OLD_PRICE'],
    'SHOW_MAX_QUANTITY' => $arParams['DETAIL_SHOW_MAX_QUANTITY'],
    'MESS_BTN_BUY' => $arParams['MESS_BTN_BUY'],
    'MESS_BTN_ADD_TO_BASKET' => $arParams['MESS_BTN_ADD_TO_BASKET'],
    'MESS_BTN_SUBSCRIBE' => $arParams['MESS_BTN_SUBSCRIBE'],
    'MESS_BTN_COMPARE' => $arParams['MESS_BTN_COMPARE'],
    'MESS_NOT_AVAILABLE' => $arParams['MESS_NOT_AVAILABLE'],
    'USE_VOTE_RATING' => $arParams['DETAIL_USE_VOTE_RATING'],
    'VOTE_DISPLAY_AS_RATING' => (isset($arParams['DETAIL_VOTE_DISPLAY_AS_RATING']) ? $arParams['DETAIL_VOTE_DISPLAY_AS_RATING'] : ''),
    'USE_COMMENTS' => $arParams['DETAIL_USE_COMMENTS'],
    'BLOG_USE' => (isset($arParams['DETAIL_BLOG_USE']) ? $arParams['DETAIL_BLOG_USE'] : ''),
    'BLOG_URL' => (isset($arParams['DETAIL_BLOG_URL']) ? $arParams['DETAIL_BLOG_URL'] : ''),
    'BLOG_EMAIL_NOTIFY' => (isset($arParams['DETAIL_BLOG_EMAIL_NOTIFY']) ? $arParams['DETAIL_BLOG_EMAIL_NOTIFY'] : ''),
    'VK_USE' => (isset($arParams['DETAIL_VK_USE']) ? $arParams['DETAIL_VK_USE'] : ''),
    'VK_API_ID' => (isset($arParams['DETAIL_VK_API_ID']) ? $arParams['DETAIL_VK_API_ID'] : 'API_ID'),
    'FB_USE' => (isset($arParams['DETAIL_FB_USE']) ? $arParams['DETAIL_FB_USE'] : ''),
    'FB_APP_ID' => (isset($arParams['DETAIL_FB_APP_ID']) ? $arParams['DETAIL_FB_APP_ID'] : ''),
    'BRAND_USE' => (isset($arParams['DETAIL_BRAND_USE']) ? $arParams['DETAIL_BRAND_USE'] : 'N'),
    'BRAND_PROP_CODE' => (isset($arParams['DETAIL_BRAND_PROP_CODE']) ? $arParams['DETAIL_BRAND_PROP_CODE'] : ''),
    'DISPLAY_NAME' => (isset($arParams['DETAIL_DISPLAY_NAME']) ? $arParams['DETAIL_DISPLAY_NAME'] : ''),
    'ADD_DETAIL_TO_SLIDER' => (isset($arParams['DETAIL_ADD_DETAIL_TO_SLIDER']) ? $arParams['DETAIL_ADD_DETAIL_TO_SLIDER'] : ''),
    'TEMPLATE_THEME' => (isset($arParams['TEMPLATE_THEME']) ? $arParams['TEMPLATE_THEME'] : ''),
    "ADD_SECTIONS_CHAIN" => (isset($arParams["ADD_SECTIONS_CHAIN"]) ? $arParams["ADD_SECTIONS_CHAIN"] : ''),
    "ADD_ELEMENT_CHAIN" => (isset($arParams["ADD_ELEMENT_CHAIN"]) ? $arParams["ADD_ELEMENT_CHAIN"] : ''),
    "DISPLAY_PREVIEW_TEXT_MODE" => (isset($arParams['DETAIL_DISPLAY_PREVIEW_TEXT_MODE']) ? $arParams['DETAIL_DISPLAY_PREVIEW_TEXT_MODE'] : ''),
    "DETAIL_PICTURE_MODE" => (isset($arParams['DETAIL_DETAIL_PICTURE_MODE']) ? $arParams['DETAIL_DETAIL_PICTURE_MODE'] : ''),
    'ADD_TO_BASKET_ACTION' => $basketAction,
    'SHOW_CLOSE_POPUP' => isset($arParams['COMMON_SHOW_CLOSE_POPUP']) ? $arParams['COMMON_SHOW_CLOSE_POPUP'] : '',
    'DISPLAY_COMPARE' => (isset($arParams['USE_COMPARE']) ? $arParams['USE_COMPARE'] : ''),
    'COMPARE_PATH' => $arResult['FOLDER'] . $arResult['URL_TEMPLATES']['compare'],
    'SHOW_BASIS_PRICE' => (isset($arParams['DETAIL_SHOW_BASIS_PRICE']) ? $arParams['DETAIL_SHOW_BASIS_PRICE'] : 'Y'),
    'USE_STORE' => $arParams['USE_STORE'],
    'STORE_PATH' => $arParams['STORE_PATH'],
    'MAIN_TITLE' => $arParams['MAIN_TITLE'],
    'USE_MIN_AMOUNT' => $arParams['USE_MIN_AMOUNT'],
    'MIN_AMOUNT' => $arParams['MIN_AMOUNT'],
    'STORES' => $arParams['STORES'],
    'SHOW_EMPTY_STORE' => $arParams['SHOW_EMPTY_STORE'],
    'SHOW_GENERAL_STORE_INFORMATION' => $arParams['SHOW_GENERAL_STORE_INFORMATION'],
    'USER_FIELDS' => $arParams['USER_FIELDS'],
    'FIELDS' => $arParams['FIELDS'],
    ),
    $component
    );?>

    <?
    $GLOBALS["CATALOG_CURRENT_ELEMENT_ID"] = $ElementID;
    unset($basketAction);
    if ($ElementID > 0) {
    ?>
    <?

    $arRecomData = array();
    $recomCacheID = array('IBLOCK_ID' => $arParams['IBLOCK_ID']);
    $obCache = new CPHPCache();
    if ($obCache->InitCache(36000, serialize($recomCacheID), "/catalog/recommended")) {
    $arRecomData = $obCache->GetVars();
    } elseif ($obCache->StartDataCache()) {
    if (Loader::includeModule("catalog")) {
    $arSKU = CCatalogSKU::GetInfoByProductIBlock($arParams['IBLOCK_ID']);
    $arRecomData['OFFER_IBLOCK_ID'] = (!empty($arSKU) ? $arSKU['IBLOCK_ID'] : 0);
    $arRecomData['IBLOCK_LINK'] = '';
    $arRecomData['ALL_LINK'] = '';
    $rsProps = CIBlockProperty::GetList(
    array('SORT' => 'ASC', 'ID' => 'ASC'),
    array('IBLOCK_ID' => $arParams['IBLOCK_ID'], 'PROPERTY_TYPE' => 'E', 'ACTIVE' => 'Y')
    );
    $found = false;
    while ($arProp = $rsProps->Fetch()) {
    if ($found) {
    break;
    }
    if ($arProp['CODE'] == '') {
    $arProp['CODE'] = $arProp['ID'];
    }
    $arProp['LINK_IBLOCK_ID'] = intval($arProp['LINK_IBLOCK_ID']);
    if ($arProp['LINK_IBLOCK_ID'] != 0 && $arProp['LINK_IBLOCK_ID'] != $arParams['IBLOCK_ID']) {
    continue;
    }
    if ($arProp['LINK_IBLOCK_ID'] > 0) {
    if ($arRecomData['IBLOCK_LINK'] == '') {
    $arRecomData['IBLOCK_LINK'] = $arProp['CODE'];
    $found = true;
    }
    } else {
    if ($arRecomData['ALL_LINK'] == '') {
    $arRecomData['ALL_LINK'] = $arProp['CODE'];
    }
    }
    }
    if ($found) {
    if (defined("BX_COMP_MANAGED_CACHE")) {
    global $CACHE_MANAGER;
    $CACHE_MANAGER->StartTagCache("/catalog/recommended");
    $CACHE_MANAGER->RegisterTag("iblock_id_" . $arParams["IBLOCK_ID"]);
    $CACHE_MANAGER->EndTagCache();
    }
    }
    }
    $obCache->EndDataCache($arRecomData);
    }
    if (!empty($arRecomData) && ($arRecomData['IBLOCK_LINK'] != '' || $arRecomData['ALL_LINK'] != '')) {
    if (ModuleManager::isModuleInstalled("sale") && (!isset($arParams['USE_BIG_DATA']) || $arParams['USE_BIG_DATA'] != 'N')) {
    ?><?$APPLICATION->IncludeComponent("bitrix:catalog.bigdata.products", "", array(
    "LINE_ELEMENT_COUNT" => 5,
    "TEMPLATE_THEME" => (isset($arParams['TEMPLATE_THEME']) ? $arParams['TEMPLATE_THEME'] : ''),
    "DETAIL_URL" => $arResult["FOLDER"] . $arResult["URL_TEMPLATES"]["element"],
    "BASKET_URL" => $arParams["BASKET_URL"],
    "ACTION_VARIABLE" => (!empty($arParams["ACTION_VARIABLE"]) ? $arParams["ACTION_VARIABLE"] : "action") . "_cbdp",
    "PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"],
    "PRODUCT_QUANTITY_VARIABLE" => $arParams["PRODUCT_QUANTITY_VARIABLE"],
    "ADD_PROPERTIES_TO_BASKET" => (isset($arParams["ADD_PROPERTIES_TO_BASKET"]) ? $arParams["ADD_PROPERTIES_TO_BASKET"] : ''),
    "PRODUCT_PROPS_VARIABLE" => $arParams["PRODUCT_PROPS_VARIABLE"],
    "PARTIAL_PRODUCT_PROPERTIES" => (isset($arParams["PARTIAL_PRODUCT_PROPERTIES"]) ? $arParams["PARTIAL_PRODUCT_PROPERTIES"] : ''),
    "SHOW_OLD_PRICE" => $arParams['SHOW_OLD_PRICE'],
    "SHOW_DISCOUNT_PERCENT" => $arParams['SHOW_DISCOUNT_PERCENT'],
    "PRICE_CODE" => $arParams["PRICE_CODE"],
    "SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"],
    "PRODUCT_SUBSCRIPTION" => $arParams['PRODUCT_SUBSCRIPTION'],
    "PRICE_VAT_INCLUDE" => $arParams["PRICE_VAT_INCLUDE"],
    "USE_PRODUCT_QUANTITY" => $arParams['USE_PRODUCT_QUANTITY'],
    "SHOW_NAME" => "Y",
    "SHOW_IMAGE" => "Y",
    "MESS_BTN_BUY" => $arParams['MESS_BTN_BUY'],
    "MESS_BTN_DETAIL" => $arParams['MESS_BTN_DETAIL'],
    "MESS_BTN_SUBSCRIBE" => $arParams['MESS_BTN_SUBSCRIBE'],
    "MESS_NOT_AVAILABLE" => $arParams['MESS_NOT_AVAILABLE'],
    "PAGE_ELEMENT_COUNT" => 5,
    "SHOW_FROM_SECTION" => "N",
    "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
    "IBLOCK_ID" => $arParams["IBLOCK_ID"],
    "DEPTH" => "2",
    "CACHE_TYPE" => $arParams["CACHE_TYPE"],
    "CACHE_TIME" => $arParams["CACHE_TIME"],
    "CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
    "SHOW_PRODUCTS_" . $arParams["IBLOCK_ID"] => "Y",
    "ADDITIONAL_PICT_PROP_" . $arParams["IBLOCK_ID"] => $arParams['ADD_PICT_PROP'],
    "LABEL_PROP_" . $arParams["IBLOCK_ID"] => "-",
    "HIDE_NOT_AVAILABLE" => $arParams["HIDE_NOT_AVAILABLE"],
    "CONVERT_CURRENCY" => $arParams["CONVERT_CURRENCY"],
    "CURRENCY_ID" => $arParams["CURRENCY_ID"],
    "SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],
    "SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
    "SECTION_ELEMENT_ID" => $arResult["VARIABLES"]["SECTION_ID"],
    "SECTION_ELEMENT_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
    "ID" => $ElementID,
    "PROPERTY_CODE_" . $arParams["IBLOCK_ID"] => $arParams["LIST_PROPERTY_CODE"],
    "CART_PROPERTIES_" . $arParams["IBLOCK_ID"] => $arParams["PRODUCT_PROPERTIES"],
    "RCM_TYPE" => (isset($arParams['BIG_DATA_RCM_TYPE']) ? $arParams['BIG_DATA_RCM_TYPE'] : ''),
    "OFFER_TREE_PROPS_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams["OFFER_TREE_PROPS"],
    "ADDITIONAL_PICT_PROP_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams['OFFER_ADD_PICT_PROP']
    ),
    $component,
    array("HIDE_ICONS" => "Y")
    );
    }
    ?>

    <?
    $APPLICATION->IncludeComponent(
    "bitrix:catalog.recommended.products",
    "",
    array(
    "LINE_ELEMENT_COUNT" => $arParams["ALSO_BUY_ELEMENT_COUNT"],
    "TEMPLATE_THEME" => (isset($arParams['TEMPLATE_THEME']) ? $arParams['TEMPLATE_THEME'] : ''),
    "ID" => $ElementID,
    "PROPERTY_LINK" => ($arRecomData['IBLOCK_LINK'] != '' ? $arRecomData['IBLOCK_LINK'] : $arRecomData['ALL_LINK']),
    "CACHE_TYPE" => $arParams["CACHE_TYPE"],
    "CACHE_TIME" => $arParams["CACHE_TIME"],
    "BASKET_URL" => $arParams["BASKET_URL"],
    "ACTION_VARIABLE" => $arParams["ACTION_VARIABLE"],
    "PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"],
    "PRODUCT_QUANTITY_VARIABLE" => $arParams["PRODUCT_QUANTITY_VARIABLE"],
    "ADD_PROPERTIES_TO_BASKET" => (isset($arParams["ADD_PROPERTIES_TO_BASKET"]) ? $arParams["ADD_PROPERTIES_TO_BASKET"] : ''),
    "PRODUCT_PROPS_VARIABLE" => $arParams["PRODUCT_PROPS_VARIABLE"],
    "PARTIAL_PRODUCT_PROPERTIES" => (isset($arParams["PARTIAL_PRODUCT_PROPERTIES"]) ? $arParams["PARTIAL_PRODUCT_PROPERTIES"] : ''),
    "PAGE_ELEMENT_COUNT" => $arParams["ALSO_BUY_ELEMENT_COUNT"],
    "SHOW_OLD_PRICE" => $arParams['SHOW_OLD_PRICE'],
    "SHOW_DISCOUNT_PERCENT" => $arParams['SHOW_DISCOUNT_PERCENT'],
    "PRICE_CODE" => $arParams["PRICE_CODE"],
    "SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"],
    "PRODUCT_SUBSCRIPTION" => 'N',
    "PRICE_VAT_INCLUDE" => $arParams["PRICE_VAT_INCLUDE"],
    "USE_PRODUCT_QUANTITY" => $arParams['USE_PRODUCT_QUANTITY'],
    "SHOW_NAME" => "Y",
    "SHOW_IMAGE" => "Y",
    "MESS_BTN_BUY" => $arParams['MESS_BTN_BUY'],
    "MESS_BTN_DETAIL" => $arParams["MESS_BTN_DETAIL"],
    "MESS_NOT_AVAILABLE" => $arParams['MESS_NOT_AVAILABLE'],
    "MESS_BTN_SUBSCRIBE" => $arParams['MESS_BTN_SUBSCRIBE'],
    "SHOW_PRODUCTS_" . $arParams["IBLOCK_ID"] => "Y",
    "HIDE_NOT_AVAILABLE" => $arParams["HIDE_NOT_AVAILABLE"],
    "OFFER_TREE_PROPS_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams["OFFER_TREE_PROPS"],
    "OFFER_TREE_PROPS_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams["OFFER_TREE_PROPS"],
    "ADDITIONAL_PICT_PROP_" . $arParams['IBLOCK_ID'] => $arParams['ADD_PICT_PROP'],
    "ADDITIONAL_PICT_PROP_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams['OFFER_ADD_PICT_PROP'],
    "PROPERTY_CODE_" . $arRecomData['OFFER_IBLOCK_ID'] => array(),
    "CONVERT_CURRENCY" => $arParams["CONVERT_CURRENCY"],
    "CURRENCY_ID" => $arParams["CURRENCY_ID"]
    ),
    $component,
    array("HIDE_ICONS" => "Y")
    );
    ?>

    <?
    }

    if ($arParams["USE_ALSO_BUY"] == "Y" && ModuleManager::isModuleInstalled("sale") && !empty($arRecomData)) {
    ?><?$APPLICATION->IncludeComponent("bitrix:sale.recommended.products", ".default", array(
    "ID" => $ElementID,
    "TEMPLATE_THEME" => (isset($arParams['TEMPLATE_THEME']) ? $arParams['TEMPLATE_THEME'] : ''),
    "MIN_BUYES" => $arParams["ALSO_BUY_MIN_BUYES"],
    "ELEMENT_COUNT" => $arParams["ALSO_BUY_ELEMENT_COUNT"],
    "LINE_ELEMENT_COUNT" => $arParams["ALSO_BUY_ELEMENT_COUNT"],
    "DETAIL_URL" => $arParams["DETAIL_URL"],
    "BASKET_URL" => $arParams["BASKET_URL"],
    "ACTION_VARIABLE" => $arParams["ACTION_VARIABLE"],
    "PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"],
    "SECTION_ID_VARIABLE" => $arParams["SECTION_ID_VARIABLE"],
    "PAGE_ELEMENT_COUNT" => $arParams["ALSO_BUY_ELEMENT_COUNT"],
    "CACHE_TYPE" => $arParams["CACHE_TYPE"],
    "CACHE_TIME" => $arParams["CACHE_TIME"],
    "PRICE_CODE" => $arParams["PRICE_CODE"],
    "USE_PRICE_COUNT" => $arParams["USE_PRICE_COUNT"],
    "SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"],
    "PRICE_VAT_INCLUDE" => $arParams["PRICE_VAT_INCLUDE"],
    'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'],
    'CURRENCY_ID' => $arParams['CURRENCY_ID'],
    'HIDE_NOT_AVAILABLE' => $arParams["HIDE_NOT_AVAILABLE"],
    "SHOW_PRODUCTS_" . $arParams["IBLOCK_ID"] => "Y",
    "PROPERTY_CODE_" . $arRecomData['OFFER_IBLOCK_ID'] => array(),
    "OFFER_TREE_PROPS_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams["OFFER_TREE_PROPS"],
    "OFFER_TREE_PROPS_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams["OFFER_TREE_PROPS"],
    "ADDITIONAL_PICT_PROP_" . $arParams['IBLOCK_ID'] => $arParams['ADD_PICT_PROP'],
    "ADDITIONAL_PICT_PROP_" . $arRecomData['OFFER_IBLOCK_ID'] => $arParams['OFFER_ADD_PICT_PROP']
    ),
    $component,
    array("HIDE_ICONS" => "Y")
    );
    ?><?
    }

    $APPLICATION->IncludeComponent(
    "bitrix:catalog.viewed.products",
    "",
    Array(
    "COMPONENT_TEMPLATE" => ".default",
    "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
    "IBLOCK_ID" => $arParams["IBLOCK_ID"],
    "SHOW_FROM_SECTION" => "N",
    "SECTION_ID" => "",
    "SECTION_CODE" => "",
    "SECTION_ELEMENT_ID" => "",
    "SECTION_ELEMENT_CODE" => "",
    "DEPTH" => "",
    "HIDE_NOT_AVAILABLE" => "N",
    "SHOW_DISCOUNT_PERCENT" => "Y",
    "PRODUCT_SUBSCRIPTION" => "N",
    "SHOW_NAME" => "Y",
    "SHOW_IMAGE" => "Y",
    "MESS_BTN_BUY" => GetMessage("LIKEE_ESTORE_KUPITQ"),
    "MESS_BTN_DETAIL" => GetMessage("LIKEE_ESTORE_PODROBNEE"),
    "MESS_BTN_SUBSCRIBE" => GetMessage("LIKEE_ESTORE_PODPISATQSA"),
    "PAGE_ELEMENT_COUNT" => "5",
    "LINE_ELEMENT_COUNT" => "3",
    "TEMPLATE_THEME" => "blue",
    "DETAIL_URL" => "",
    "CACHE_TYPE" => "A",
    "CACHE_TIME" => "36000000",
    "CACHE_GROUPS" => "Y",
    "SHOW_OLD_PRICE" => "N",
    "PRICE_CODE" => $arParams["PRICE_CODE"],
    "SHOW_PRICE_COUNT" => "1",
    "PRICE_VAT_INCLUDE" => "Y",
    "CONVERT_CURRENCY" => "N",
    "BASKET_URL" => $arParams["BASKET_URL"],
    "ACTION_VARIABLE" => "action",
    "PRODUCT_ID_VARIABLE" => "id",
    "PRODUCT_QUANTITY_VARIABLE" => "",
    "ADD_PROPERTIES_TO_BASKET" => "Y",
    "PRODUCT_PROPS_VARIABLE" => "prop",
    "PARTIAL_PRODUCT_PROPERTIES" => "N",
    "USE_PRODUCT_QUANTITY" => "N",
    )
    );
    }
    ?>

  • Как реализовать задержку в CSS?

    @EvgeniyRava Автор вопроса
    Спасибо:)
  • Как лучше сделать имитацию клика по ссылке?

    @EvgeniyRava Автор вопроса
    Не плохое решение, но не для меня. Я вывожу на принт через специальные запросы на мобильные принтер посредством iPad. Получиться как по мне все очень сложно...
  • Как лучше сделать имитацию клика по ссылке?

    @EvgeniyRava Автор вопроса
    Спасибо, сейчас буду разбираться как мне указать нужные ссылки.
  • Что требуется сделать в задании?

    @EvgeniyRava Автор вопроса
    Александр: Спасибо большое
  • Что требуется сделать в задании?

    @EvgeniyRava Автор вопроса
    Александр: Александр, подскажите пожалуйста как в Xcode можно проверить скорость выполнения? Мне просто для себя интересно сравнить два метода по скорости.
  • Что требуется сделать в задании?

    @EvgeniyRava Автор вопроса
    Александр: получается cases можно не добавлять в условие, а выходить из цикла просто когда значение равняется 0
  • Что требуется сделать в задании?

    @EvgeniyRava Автор вопроса
    Александр: но мы же командой break выходим из цикла когда значение 0 все же верно?
  • Что требуется сделать в задании?

    @EvgeniyRava Автор вопроса
    Александр: Спасибо большое
  • Что требуется сделать в задании?

    @EvgeniyRava Автор вопроса
    Александр: а как добавить case в условие чтобы если он уже нашел делить то выходил из цикла а не все возможные проверял? Или это не нужно?Так тогда логичнее с 1 начинать т.к. один является простым числом верно же?
  • Что требуется сделать в задании?

    @EvgeniyRava Автор вопроса
    Александр: Можно описать пожалуйста для чего конкретно мы это делаем? Все простые числа заканчиваются на 1-3-7-9 это я заметил. Если сделать d=3 и каждый жат прибавлять +2 получается 3-5-7-9-1-3-5-7-9 и тд., но все же 5 является не простым числом, его пропускать не получится? По поводу p=1 и p=+2 зачем это? Ведь нам нужно cases добавить в условие
  • Что требуется сделать в данном задании?

    @EvgeniyRava Автор вопроса
    Оказалось все довольно просто, спасибо
  • Как связать беспроводной сканер штрихкода с сайтом?

    @EvgeniyRava Автор вопроса
    А нужно сделать так чтобы сканер мог отправлять запрос на сервер
  • Как связать беспроводной сканер штрихкода с сайтом?

    @EvgeniyRava Автор вопроса
    Но у сканера же тоже должен быть API насколько я понимаю чтобы знать в каком видео он запрос посылает и тд, или я ошибаюсь? А если это будет не сканер а терминал со сканером который будет иметь доступ в интернет, это упростит работу или нет? Например напрямую с терминала отправлять данные на сервер.
  • Как связать беспроводной сканер штрихкода с сайтом?

    @EvgeniyRava Автор вопроса
    Нужно искать программиста который пропишет это все в самом сайте или нужно писать дополнительную программу которая будет являться посредником между сайтом и сканером?