1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
yandex_detail.php
См. документацию.
1<?
5
10
11define("STOP_STATISTICS", true);
12define("BX_SECURITY_SHOW_MESSAGE", true);
13
14require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
15IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/catalog/export_yandex.php');
16IncludeModuleLangFile(__FILE__);
17
18if ($_SERVER['REQUEST_METHOD'] == 'GET')
19{
20 die();
21}
22
24{
25 $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
26 die();
27}
28
29$APPLICATION->SetTitle(GetMessage('YANDEX_DETAIL_TITLE'));
30
31CModule::IncludeModule('catalog');
32
33if (!AccessController::getCurrent()->check(ActionDictionary::ACTION_CATALOG_EXPORT_EDIT))
34{
35 ShowError(GetMessage('YANDEX_ERR_NO_ACCESS_EXPORT'));
36 die();
37}
38
39if ((!isset($_REQUEST['IBLOCK_ID'])) || ($_REQUEST['IBLOCK_ID'] == ''))
40{
41 ShowError(GetMessage("YANDEX_ERR_NO_IBLOCK_CHOSEN"));
42 die();
43}
44$intIBlockID = $_REQUEST['IBLOCK_ID'];
47{
48 ShowError(GetMessage("YANDEX_ERR_NO_IBLOCK_CHOSEN"));
49 die();
50}
51else
52{
54 unset($intIBlockIDCheck);
55}
56
58$rsIBlocks = CIBlock::GetByID($intIBlockID);
59if (($arIBlock = $rsIBlocks->Fetch()))
60{
61 $bBadBlock = !CIBlockRights::UserHasRightTo($intIBlockID, $intIBlockID, "iblock_admin_display");
62 if ($bBadBlock)
63 {
64 ShowError(GetMessage('YANDEX_ERR_NO_ACCESS_IBLOCK'));
65 die();
66 }
67}
68else
69{
70 ShowError(str_replace('#ID#',$intIBlockID,GetMessage("YANDEX_ERR_NO_IBLOCK_FOUND_EXT")));
71 die();
72}
73
75$arOffers = false;
80 Iblock\PropertyTable::TYPE_STRING,
81 Iblock\PropertyTable::TYPE_NUMBER,
82 Iblock\PropertyTable::TYPE_LIST,
83 Iblock\PropertyTable::TYPE_ELEMENT,
84 Iblock\PropertyTable::TYPE_SECTION
85);
90);
91
92$arOffers = CCatalogSKU::GetInfoByProductIBlock($intIBlockID);
93if (!empty($arOffers['IBLOCK_ID']))
94{
95 $intOfferIBlockID = $arOffers['IBLOCK_ID'];
96 $strPerm = 'D';
97 $rsOfferIBlocks = CIBlock::GetByID($intOfferIBlockID);
98 if ($arOfferIBlock = $rsOfferIBlocks->Fetch())
99 {
100 $bBadBlock = !CIBlockRights::UserHasRightTo($intOfferIBlockID, $intOfferIBlockID, "iblock_admin_display");
101 if ($bBadBlock)
102 {
103 ShowError(GetMessage('YANDEX_ERR_NO_ACCESS_IBLOCK_SKU'));
104 die();
105 }
106 }
107 else
108 {
109 ShowError(str_replace('#ID#',$intIBlockID,GetMessage("YANDEX_ERR_NO_IBLOCK_SKU_FOUND")));
110 die();
111 }
112 $boolOffers = true;
113
114}
116 'ZERO' => GetMessage('YANDEX_SKU_EXPORT_PROP_SELECT_ZERO'),
117 'NONZERO' => GetMessage('YANDEX_SKU_EXPORT_PROP_SELECT_NONZERO'),
118 'EQUAL' => GetMessage('YANDEX_SKU_EXPORT_PROP_SELECT_EQUAL'),
119 'NONEQUAL' => GetMessage('YANDEX_SKU_EXPORT_PROP_SELECT_NONEQUAL'),
120);
121
123 'none' => array(
124 'vendor', 'vendorCode', 'sales_notes', 'manufacturer_warranty', 'country_of_origin',
125 //'adult'
126 ),
127 'vendor.model' => array(
128 'typePrefix', 'vendor', 'vendorCode', 'model', 'sales_notes', 'manufacturer_warranty', 'country_of_origin',
129 //'adult'
130 ),
131 'book' => array(
132 'author', 'publisher', 'series', 'year', 'ISBN', 'volume', 'part', 'language', 'binding',
133 'page_extent', 'table_of_contents', 'sales_notes'
134 ),
135 'audiobook' => array(
136 'author', 'publisher', 'series', 'year', 'ISBN', 'performed_by', 'performance_type',
137 'language', 'volume', 'part', 'format', 'storage', 'recording_length', 'table_of_contents'
138 ),
139 'artist.title' => array(
140 'title', 'artist', 'director', 'starring', 'originalName', 'country', 'year', 'media', //'adult'
141 )
142
143 // a bit later
144/*
145 'tour' => array(
146 'worldRegion', 'country', 'region', 'days', 'dataTour', 'hotel_stars', 'room', 'meal', 'included', 'transport',
147 ),
148 'event-ticket' => array(
149 'place', 'hall', 'date', 'is_premiere', 'is_kids',
150 ),
151*/
152);
153
155
157 '-' => GetMessage('YANDEX_BASE_VAT_EMPTY'),
158 '0%' => '0%',
159 '10%' => '10%',
160 '18%' => '18%'
161);
162
164 'ENABLE' => 'N',
165 'BASE_VAT' => ''
166);
167
168$dbRes = CIBlockProperty::GetList(
169 array('SORT' => 'ASC'),
170 array('IBLOCK_ID' => $intIBlockID, 'ACTIVE' => 'Y')
171);
172$arIBlock['PROPERTY'] = array();
173$arIBlock['OFFERS_PROPERTY'] = array();
174while ($arRes = $dbRes->Fetch())
175{
176 $arIBlock['PROPERTY'][$arRes['ID']] = $arRes;
177}
178if ($boolOffers)
179{
180 $rsProps = CIBlockProperty::GetList(array('SORT' => 'ASC'),array('IBLOCK_ID' => $intOfferIBlockID,'ACTIVE' => 'Y'));
181 while ($arProp = $rsProps->Fetch())
182 {
183 if ($arOffers['SKU_PROPERTY_ID'] != $arProp['ID'])
184 {
185 if ($arProp['PROPERTY_TYPE'] == 'L')
186 {
187 $arProp['VALUES'] = array();
188 $rsPropEnums = CIBlockProperty::GetPropertyEnum($arProp['ID'],array('sort' => 'asc'),array('IBLOCK_ID' => $intOfferIBlockID));
189 while ($arPropEnum = $rsPropEnums->Fetch())
190 {
191 $arProp['VALUES'][$arPropEnum['ID']] = $arPropEnum['VALUE'];
192 }
193 }
194 $arIBlock['OFFERS_PROPERTY'][$arProp['ID']] = $arProp;
195 if (in_array($arProp['PROPERTY_TYPE'],$arSelectedPropTypes))
196 $arSelectOfferProps[] = $arProp['ID'];
197 }
198 }
199}
200
201
202if ($_SERVER['REQUEST_METHOD'] == 'POST')
203{
204 if (!empty($_REQUEST['save']))
205 {
206 $arErrors = array();
207 $arCurrency = array('RUB' => array('rate' => 1));
208 if (is_array($_POST['CURRENCY']) && count($_POST['CURRENCY']) > 0)
209 {
210 $arCurrency = array();
211 foreach ($_POST['CURRENCY'] as $CURRENCY)
212 {
213 $arCurrency[$CURRENCY] = array(
214 'rate' => $_POST['CURRENCY_RATE'][$CURRENCY],
215 'plus' => $_POST['CURRENCY_PLUS'][$CURRENCY]
216 );
217 }
218 }
219
220 $type = trim($_POST['type']);
221 if ($type == '' || ($type != 'none' && !isset($arTypesConfig[$type])))
222 $type = 'none';
223
224 $addParams = array(
225 'PARAMS' => array(),
226 );
227 if (isset($_POST['PARAMS_COUNT']) && intval($_POST['PARAMS_COUNT']) > 0)
228 {
229 $intCount = intval($_POST['PARAMS_COUNT']);
230 if (isset($_POST['XML_DATA']['PARAMS']) && is_array($_POST['XML_DATA']['PARAMS']))
231 {
232 $arTempo = $_POST['XML_DATA']['PARAMS'];
233 for ($i = 0; $i < $intCount; $i++)
234 {
235 if (empty($arTempo['ID_'.$i]))
236 continue;
237 $value = $arTempo['ID_'.$i];
238 if (array_key_exists($value,$arIBlock['PROPERTY']) || array_key_exists($value,$arIBlock['OFFERS_PROPERTY']))
239 {
240 $addParams['PARAMS'][] = $value;
241 }
242 }
243 }
244 }
245
246 $arTypeParams = array();
247 if (isset($_POST['XML_DATA'][$type]) && is_array($_POST['XML_DATA'][$type]))
248 {
249 $arTypeParams = $_POST['XML_DATA'][$type];
250 foreach ($arTypeParams as $key => $value)
251 {
252 if (!in_array($key,$arTypesConfig[$type]))
253 {
254 unset($arTypeParams[$key]);
255 }
256 elseif (!array_key_exists($value,$arIBlock['PROPERTY']) && !array_key_exists($value,$arIBlock['OFFERS_PROPERTY']))
257 {
258 $arTypeParams[$key] = '';
259 }
260 }
261 }
262 $XML_DATA = array_merge($arTypeParams, $addParams);
263
264 foreach ($XML_DATA as $key => $value)
265 {
266 if (!$value)
267 unset($XML_DATA[$key]);
268 }
269
270 $commonFields = [];
271 if (!empty($_POST['COMMON_FIELDS']) && is_array($_POST['COMMON_FIELDS']))
272 {
273 foreach ($_POST['COMMON_FIELDS'] as $index => $value)
274 {
275 if (empty($value))
276 continue;
277 $commonFields[$index] = $value;
278 }
279 unset($index, $value);
280 }
281
282 $arSKUExport = false;
283 if ($boolOffers)
284 {
286 'SKU_EXPORT_COND' => YANDEX_SKU_EXPORT_ALL,
287 'SKU_PROP_COND' => array(
288 'PROP_ID' => 0,
289 'COND' => '',
290 'VALUES' => array(),
291 ),
292 );
293
294 if (!empty($_POST['SKU_EXPORT_COND']) && in_array($_POST['SKU_EXPORT_COND'],$arOffersSelectKeys))
295 {
296 $arSKUExport['SKU_EXPORT_COND'] = $_POST['SKU_EXPORT_COND'];
297 }
298 else
299 {
300 $arErrors[] = GetMessage('YANDEX_SKU_EXPORT_ERR_CONDITION_ABSENT');
301 }
302 if (YANDEX_SKU_EXPORT_PROP == $arSKUExport['SKU_EXPORT_COND'])
303 {
304 $boolCheck = true;
305 $intPropID = 0;
306 $strPropCond = '';
307 $arPropValues = array();
308 if (empty($_POST['SKU_PROP_COND']) || !in_array($_POST['SKU_PROP_COND'],$arSelectOfferProps))
309 {
310 $arErrors[] = GetMessage('YANDEX_SKU_EXPORT_ERR_PROPERTY_ABSENT');
311 $boolCheck = false;
312 }
313 if ($boolCheck)
314 {
315 $intPropID = $_POST['SKU_PROP_COND'];
316 if (empty($_POST['SKU_PROP_SELECT']) || empty($arCondSelectProp[$_POST['SKU_PROP_SELECT']]))
317 {
318 $arErrors[] = GetMessage('YANDEX_SKU_EXPORT_ERR_PROPERTY_COND_ABSENT');
319 $boolCheck = false;
320 }
321 }
322 if ($boolCheck)
323 {
324 $strPropCond = $_POST['SKU_PROP_SELECT'];
325 if ($strPropCond == 'EQUAL' || $strPropCond == 'NONEQUAL')
326 {
327 if (!isset($_POST['SKU_PROP_VALUE_'.$intPropID]) || !is_array($_POST['SKU_PROP_VALUE_'.$intPropID]))
328 {
329 $arErrors[] = GetMessage('YANDEX_SKU_EXPORT_ERR_PROPERTY_VALUES_ABSENT');
330 $boolCheck = false;
331 }
332
333 if ($boolCheck)
334 {
335 foreach($_POST['SKU_PROP_VALUE_'.$intPropID] as $strValue)
336 if ($strValue <> '')
337 $arPropValues[] = $strValue;
338 }
339 if (empty($arPropValues))
340 {
341 $arErrors[] = GetMessage('YANDEX_SKU_EXPORT_ERR_PROPERTY_VALUES_ABSENT');
342 $boolCheck = false;
343 }
344 }
345 }
346 if ($boolCheck)
347 {
348 $arSKUExport['SKU_PROP_COND'] = array(
349 'PROP_ID' => $intPropID,
350 'COND' => $strPropCond,
351 'VALUES' => $arPropValues,
352 );
353 }
354 }
355 }
356
358 if (isset($_POST['USE_VAT_EXPORT']) && is_string($_POST['USE_VAT_EXPORT']))
359 {
360 if ($_POST['USE_VAT_EXPORT'] == 'Y')
361 $vatExport['ENABLE'] = 'Y';
362 if ($vatExport['ENABLE'] == 'Y')
363 {
364 if (isset($_POST['BASE_VAT']) && is_string($_POST['BASE_VAT']) && $_POST['BASE_VAT'] !== '')
365 {
366 if (isset($vatRates[$_POST['BASE_VAT']]))
367 $vatExport['BASE_VAT'] = $_POST['BASE_VAT'];
368 }
369 if ($vatExport['BASE_VAT'] === '')
370 {
371 $arErrors[] = GetMessage('YANDEX_VAT_ERR_BASE_VAT_ABSENT');
372 $boolCheck = false;
373 }
374 }
375 }
376
377 if (empty($arErrors))
378 {
379 $arXMLData = array(
380 'TYPE' => $type,
381 'XML_DATA' => $XML_DATA,
382 'CURRENCY' => $arCurrency,
383 'PRICE' => intval($_POST['PRICE']),
384 'SKU_EXPORT' => $arSKUExport,
385 'VAT_EXPORT' => $vatExport,
386 'COMMON_FIELDS' => $commonFields
387 );
388?><script>
389top.BX.closeWait();
390top.BX.WindowManager.Get().Close();
391top.setDetailData('<?=CUtil::JSEscape(base64_encode(serialize($arXMLData)));?>');
392</script>
393<?
394 die();
395 }
396 else
397 {
398 $e = new CAdminException(array(array('text' => implode("\n",$arErrors))));
399 $message = new CAdminMessage(GetMessage("YANDEX_SAVE_ERR"), $e);
400 echo $message->Show();
401 }
402 }
403 else
404 {
405 $aTabs = array(
406 array("DIV" => "yandex-settings-types", "TAB" => GetMessage('YANDEX_TAB1_TITLE'), "TITLE" => GetMessage('YANDEX_TAB1_DESC')),
407 array("DIV" => "yandex-settings-prices", "TAB" => GetMessage('YANDEX_TAB2_TITLE'), "TITLE" => GetMessage('YANDEX_TAB2_DESC')),
408 array("DIV" => "yandex-settings-vats", "TAB" => GetMessage('YANDEX_TAB_VAT_TITLE'), "TITLE" => GetMessage('YANDEX_TAB_VAT_DESC')),
409 );
410 $tabControl = new CAdminTabControl("tabControl", $aTabs, true, true);
411
412 require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
413
414 function __yand_show_selector($group, $key, $IBLOCK, $value = "")
415 {
416 ?><select name="XML_DATA[<? echo htmlspecialcharsbx($group)?>][<? echo htmlspecialcharsbx($key)?>]">
417 <option value=""<? echo ($value == "" ? ' selected' : ''); ?>><?=GetMessage('YANDEX_SKIP_PROP')?></option>
418 <?
419 if (!empty($IBLOCK['OFFERS_PROPERTY']))
420 {
421 ?><option value=""><? echo GetMessage('YANDEX_PRODUCT_PROPS')?></option><?
422 }
423 foreach ($IBLOCK['PROPERTY'] as $key => $arProp)
424 {
425 ?><option value="<?=$arProp['ID']?>"<? echo ($value == $arProp['ID'] ? ' selected' : ''); ?>>[<?=htmlspecialcharsbx($key)?>] <?=htmlspecialcharsbx($arProp['NAME'])?></option><?
426 }
427 if (!empty($IBLOCK['OFFERS_PROPERTY']))
428 {
429 ?><option value=""><? echo GetMessage('YANDEX_OFFERS_PROPS')?></option><?
430 foreach ($IBLOCK['OFFERS_PROPERTY'] as $key => $arProp)
431 {
432 ?><option value="<?=$arProp['ID']?>"<? echo ($value == $arProp['ID'] ? ' selected' : ''); ?>>[<?=htmlspecialcharsbx($key)?>] <?=htmlspecialcharsbx($arProp['NAME'])?></option><?
433 }
434 }
435 ?></select><?
436 }
437
438 function __addParamCode()
439 {
440 return '<small>(param)</small>';
441 }
442
443 function __addParamName(&$IBLOCK, $intCount, $value)
444 {
445 ob_start();
446 __yand_show_selector('PARAMS','ID_'.$intCount, $IBLOCK, $value);
447 $strResult = ob_get_contents();
448 ob_end_clean();
449 return $strResult;
450 }
451
452 function __addParamUnit(&$IBLOCK, $intCount, $value)
453 {
454 return '<input type="text" size="3" name="XML_DATA[PARAMS][UNIT_'.$intCount.']" value="'.htmlspecialcharsbx($value).'">';
455 }
456
457 function __addParamRow(&$IBLOCK, $intCount, $strParam, $strUnit)
458 {
459 return '<tr id="yandex_params_tbl_'.$intCount.'">
460 <td style="text-align: center;">'.__addParamCode().'</td>
461 <td>'.__addParamName($IBLOCK, $intCount, $strParam).'</td>
462 </tr>';
463 }
464
465/***************************************************************************
466HTML form
467****************************************************************************/
468 $type = 'none';
469 $arTypeValues = array();
470 foreach ($arTypesConfigKeys as $key)
471 {
472 $arTempo = array();
473 foreach ($arTypesConfig[$key] as $value)
474 $arTempo[$value] = '';
475 $arTypeValues[$key] = $arTempo;
476 }
477 $arAddParams = array();
478 $params = array(
479 'PARAMS' => array(),
480 );
481 $PRICE = 0;
482 $CURRENCY = array();
484 'SKU_EXPORT_COND' => 0,
485 'SKU_PROP_COND' => array(
486 'PROP_ID' => 0,
487 'COND' => '',
488 'VALUES' => array(),
489 ),
490 );
492 $commonFields = [
493 'DESCRIPTION' => 'PREVIEW_TEXT'
494 ];
495
496 $arXmlData = array();
497 if (!empty($_REQUEST['XML_DATA']))
498 {
499 $xmlData = base64_decode($_REQUEST['XML_DATA']);
500 if (CheckSerializedData($xmlData))
501 $arXmlData = unserialize($xmlData, ['allowed_classes' => false]);
502 unset($xmlData);
503 }
504
505 if (isset($arXmlData['PRICE']))
506 $PRICE = (int)$arXmlData['PRICE'];
507 if (isset($arXmlData['CURRENCY']))
508 $CURRENCY = $arXmlData['CURRENCY'];
509 if (isset($arXmlData['TYPE']))
510 $type = $arXmlData['TYPE'];
511 if ($type != 'none' && !in_array($type,$arTypesConfigKeys))
512 $type = 'none';
513 if (isset($arXmlData['COMMON_FIELDS']) && is_array($arXmlData['COMMON_FIELDS']))
514 $commonFields = array_merge($commonFields, $arXmlData['COMMON_FIELDS']);
515 if (isset($arXmlData['XML_DATA']))
516 {
517 foreach ($arXmlData['XML_DATA'] as $key => $value)
518 {
519 if ($key == 'PARAMS')
520 {
522 }
523 else
524 {
525 $arTypeValues[$type][$key] = $value;
526 }
527 }
528 }
529 if (is_array($params['PARAMS']) && !empty($params['PARAMS']))
530 {
531 foreach ($params['PARAMS'] as $strParam)
532 {
533 $arAddParams[] = array(
534 'PARAM' => $strParam,
535 );
536 }
537 }
538 if (!empty($arXmlData['SKU_EXPORT']))
539 {
540 if (!empty($arXmlData['SKU_EXPORT']['SKU_EXPORT_COND']))
541 $arSKUExport['SKU_EXPORT_COND'] = $arXmlData['SKU_EXPORT']['SKU_EXPORT_COND'];
542 if (!empty($arXmlData['SKU_EXPORT']['SKU_PROP_COND']))
543 $arSKUExport['SKU_PROP_COND'] = $arXmlData['SKU_EXPORT']['SKU_PROP_COND'];
544 }
545 if (!empty($arXmlData['VAT_EXPORT']) && is_array($arXmlData['VAT_EXPORT']))
546 {
547 $vatExport['ENABLE'] = $arXmlData['VAT_EXPORT']['ENABLE'];
548 if ($vatExport['ENABLE'] != 'Y' && $vatExport['ENABLE'] != 'N')
549 $vatExport['ENABLE'] = 'N';
550 $vatExport['BASE_VAT'] = $arXmlData['VAT_EXPORT']['BASE_VAT'];
551 if ($vatExport['BASE_VAT'] !== '' && !isset($vatRates[$vatExport['BASE_VAT']]))
552 $vatExport['BASE_VAT'] = '';
553 }
554
555 ?>
556 <script>
557 var currentSelectedType = '<? echo $type; ?>';
558
559 function switchType(type)
560 {
561 BX('config_' + currentSelectedType).style.display = 'none';
562 currentSelectedType = type;
563 BX('config_' + currentSelectedType).style.display = 'block';
564 }
565 </script>
566 <form name="yandex_form" method="POST" action="<?=$APPLICATION->GetCurPage(); ?>">
567 <input type="hidden" name="lang" value="<?=LANGUAGE_ID; ?>">
568 <input type="hidden" name="bxpublic" value="Y">
569 <input type="hidden" name="Update" value="Y" />
570 <input type="hidden" name="IBLOCK_ID" value="<? echo $intIBlockID; ?>" />
571 <? echo bitrix_sessid_post(); ?>
572<?
573 $tabControl->Begin();
574 $tabControl->BeginNextTab();
575?>
576 <tr class="heading">
577 <td colspan="2"><?=GetMessage('YANDEX_TYPE')?></td>
578 </tr>
579 <tr>
580 <td colspan="2" style="text-align: center;">
581 <select name="type" onchange="switchType(this[this.selectedIndex].value)">
582<?
583 foreach ($arTypesConfigKeys as $key)
584 {
585 if ('none' != $key)
586 {
587 ?><option value="<?=$key?>"<? echo ($type == $key ? ' selected' : ''); ?>><?=$key?></option><?
588 }
589 else
590 {
591 ?><option value="none" selected><?=GetMessage('YANDEX_TYPE_SIMPLE');?></option><?
592 }
593 }
594?>
595 </select>
596 </td>
597 </tr>
598 <tr>
599 <td colspan="2" style="text-align: center;">
600 <?echo BeginNote(), GetMessage('YANDEX_TYPE_NOTE'), EndNote();?>
601 </td>
602 </tr>
603 <tr class="heading">
604 <td colspan="2"><?=GetMessage('BX_CATALOG_EXPORT_YANDEX_COMMON_FIELDS')?></td>
605 </tr>
606 <tr>
607 <td colspan="2">
608 <div style="padding: 10px;">
609 <table width="90%" class="inner" style="text-align: center;">
610 <tr>
611 <td align="right"><?=GetMessage('BX_CATALOG_EXPORT_YANDEX_DESCRIPTION'); ?></td>
612 <td style="white-space: nowrap;"><select name="COMMON_FIELDS[DESCRIPTION]">
613 <option value="PREVIEW_TEXT"<?=($commonFields['DESCRIPTION'] == 'PREVIEW_TEXT' ? ' selected' : '');?>><?=GetMessage('BX_CATALOG_EXPORT_YANDEX_DESCRIPTION_PREVIEW_TEXT'); ?></option>
614 <option value="DETAIL_TEXT"<?=($commonFields['DESCRIPTION'] == 'DETAIL_TEXT' ? ' selected' : '');?>><?=GetMessage('BX_CATALOG_EXPORT_YANDEX_DESCRIPTION_DETAIL_TEXT'); ?></option>
615 </select></td>
616 </tr>
617 </table>
618 </div>
619 </td>
620 </tr>
621 <tr class="heading">
622 <td colspan="2"><?=GetMessage('YANDEX_PROPS_TYPE')?></td>
623 </tr>
624 <tr>
625 <td colspan="2">
626<?
627 foreach ($arTypesConfig as $key => $arConfig):
628?>
629 <div id="config_<?=htmlspecialcharsbx($key)?>" style="padding: 10px; display: <? echo ($type == $key ? 'block' : 'none'); ?>;">
630 <table width="90%" class="inner" style="text-align: center;">
631<?
632 foreach ($arConfig as $prop):
633?>
634 <tr>
635 <td align="right"><?=htmlspecialcharsbx(GetMessage('YANDEX_PROP_'.$prop))?>: </td>
636 <td style="white-space: nowrap;"><?__yand_show_selector($key, $prop, $arIBlock, (isset($arTypeValues[$key][$prop]) ? $arTypeValues[$key][$prop] : ''))?>&nbsp;<small>(<?=htmlspecialcharsbx($prop)?>)</small></td>
637 </tr>
638<?
640?>
641 </table>
642 </div>
643<?
645?>
646 </td>
647 </tr>
648 <tr class="heading">
649 <td colspan="2" valign="top"><?=GetMessage('YANDEX_PROPS_ADDITIONAL')?></td>
650 </tr>
651 <tr>
652 <td colspan="2">
653 <div id="config_param" style="padding: 10px auto; text-align: center;">
654 <table class="inner" id="yandex_params_tbl" style="text-align: center; margin: 0 auto;">
655 <thead>
656 <tr><td style="text-align: center;"> </td>
657 <td style="text-align: center;"><? echo GetMessage('YANDEX_PARAMS_TITLE'); ?></td>
658 </tr>
659 </thead>
660 <tbody>
661 <?
662 $intCount = 0;
663 foreach ($arAddParams as $arParamDetail)
664 {
665 echo __addParamRow($arIBlock, $intCount, $arParamDetail['PARAM'], '');
666 $intCount++;
667 }
668 if ($intCount == 0)
669 {
670 echo __addParamRow($arIBlock, $intCount, '', '');
671 $intCount++;
672 }
673 ?>
674 </tbody>
675 </table>
676 <input type="hidden" name="PARAMS_COUNT" id="PARAMS_COUNT" value="<? echo $intCount; ?>">
677 <div style="width: 100%; text-align: center;"><input type="button" onclick="__addYP(); return false;" name="yandex_params_add" value="<? echo GetMessage('YANDEX_PROPS_ADDITIONAL_MORE'); ?>"></div>
678 </div>
679<script>
680function changeVatExport()
681{
682 var vatRates = BX('tr_BASE_VAT');
683
684 if (!BX.type.isElementNode(vatRates))
685 return;
686 BX.style(vatRates, 'display', (this.checked ? 'table-row' : 'none'));
687}
688
689BX.ready(function(){
690 var vatRates = BX('tr_BASE_VAT'),
691 vatEnable = BX('USE_VAT_EXPORT');
692
693 if (BX.type.isElementNode(vatRates) && BX.type.isElementNode(vatEnable))
694 BX.bind(vatEnable, 'click', changeVatExport);
695
696 setTimeout(function(){
697 window.oParamSet = {
698 pTypeTbl: BX("yandex_params_tbl"),
699 curCount: <? echo ($intCount); ?>,
700 intCounter: BX("PARAMS_COUNT")
701 };
702 },50);
703});
704
705function __addYP()
706{
707 var id = window.oParamSet.curCount++,
708 newRow,
709 oCell,
710 strContent;
711 id = id.toString();
712 window.oParamSet.intCounter.value = window.oParamSet.curCount;
713 newRow = window.oParamSet.pTypeTbl.insertRow(window.oParamSet.pTypeTbl.rows.length);
714 newRow.id = 'yandex_params_tbl_'+id;
715
716 oCell = newRow.insertCell(-1);
717 oCell.style.textAlign = 'center';
718 strContent = '<? echo CUtil::JSEscape(__addParamCode()); ?>';
719 strContent = strContent.replace(/tmp_xxx/ig, id);
720 oCell.innerHTML = strContent;
721 oCell = newRow.insertCell(-1);
722 strContent = '<? echo CUtil::JSEscape(__addParamName($arIBlock, 'tmp_xxx', '')); ?>';
723 strContent = strContent.replace(/tmp_xxx/ig, id);
724 oCell.innerHTML = strContent;
725}
726</script>
727 </td>
728 </tr>
729<?
730 if ($boolOffers)
731 {
732?>
733 <tr class="heading">
734 <td colspan="2"><? echo GetMessage('YANDEX_SKU_SETTINGS');?></td>
735 </tr>
736 <tr>
737 <td valign="top"><? echo GetMessage('YANDEX_OFFERS_SELECT') ?></td><td><?
738 $arOffersSelect = array(
739 0 => '--- '.mb_strtolower(GetMessage('YANDEX_OFFERS_SELECT')).' ---',
740 YANDEX_SKU_EXPORT_ALL => GetMessage('YANDEX_SKU_EXPORT_ALL_TITLE'),
741 YANDEX_SKU_EXPORT_MIN_PRICE => GetMessage('YANDEX_SKU_EXPORT_MIN_PRICE_TITLE'),
742 );
743 if (!empty($arSelectOfferProps))
744 {
745 $arOffersSelect[YANDEX_SKU_EXPORT_PROP] = GetMessage('YANDEX_SKU_EXPORT_PROP_TITLE');
746 }
747 ?><select name="SKU_EXPORT_COND" id="SKU_EXPORT_COND"><?
748 foreach ($arOffersSelect as $key => $value)
749 {
750 ?><option value="<? echo htmlspecialcharsbx($key);?>" <? echo ($key == $arSKUExport['SKU_EXPORT_COND'] ? 'selected' : '');?>><? echo htmlspecialcharsEx($value); ?></option><?
751 }
752 ?></select><?
753 if (!empty($arSelectOfferProps))
754 {
755 ?><div id="PROP_COND_CONT" style="display: <? echo (YANDEX_SKU_EXPORT_PROP == $arSKUExport['SKU_EXPORT_COND'] ? 'block' : 'none'); ?>;"><?
756 ?><table class="internal"><tbody>
757 <tr class="heading">
758 <td><? echo GetMessage('YANDEX_SKU_EXPORT_PROP_ID'); ?></td>
759 <td><? echo GetMessage('YANDEX_SKU_EXPORT_PROP_COND'); ?></td>
760 <td><? echo GetMessage('YANDEX_SKU_EXPORT_PROP_VALUE'); ?></td>
761 </tr>
762 <tr>
763 <td valign="top"><select name="SKU_PROP_COND" id="SKU_PROP_COND">
764 <option value="0" <? echo (empty($arSKUExport['SKU_PROP_COND']) ? 'selected' : ''); ?>><? echo GetMessage('YANDEX_SKU_EXPORT_PROP_EMPTY') ?></option>
765 <?
766 foreach ($arSelectOfferProps as $intPropID)
767 {
768 $strSelected = '';
769 if (!empty($arSKUExport['SKU_PROP_COND']['PROP_ID']) && ($intPropID == $arSKUExport['SKU_PROP_COND']['PROP_ID']))
770 {
771 $strSelected = 'selected';
772 }
773 ?><option value="<?=$intPropID; ?>" <? echo $strSelected; ?>><? echo htmlspecialcharsEx($arIBlock['OFFERS_PROPERTY'][$intPropID]['NAME']);?></option><?
774 }
775 ?></select></td>
776 <td valign="top"><select name="SKU_PROP_SELECT" id="SKU_PROP_SELECT"><option value="">--- <? echo mb_strtolower(GetMessage('YANDEX_SKU_EXPORT_PROP_COND')); ?> ---</option><?
777 foreach ($arCondSelectProp as $key => $value)
778 {
779 ?><option value="<? echo htmlspecialcharsbx($key);?>" <? echo ($key == $arSKUExport['SKU_PROP_COND']['COND'] ? 'selected' : ''); ?>><? echo htmlspecialcharsEx($value); ?></option><?
780 }
781 ?></select></td>
782 <td><div id="SKU_PROP_VALUE_DV"><?
783 foreach ($arSelectOfferProps as $intPropID)
784 {
785 $arProp = $arIBlock['OFFERS_PROPERTY'][$intPropID];
786 ?><div id="SKU_PROP_VALUE_DV_<? echo $arProp['ID']?>" style="display: <? echo ($intPropID == $arSKUExport['SKU_PROP_COND']['PROP_ID'] ? 'block' : 'none'); ?>;"><?
787 if (!empty($arProp['VALUES']))
788 {
789 ?><select name="SKU_PROP_VALUE_<? echo $arProp['ID']?>[]" multiple><?
790 foreach ($arProp['VALUES'] as $intValueID => $strValue)
791 {
792 ?><option value="<? echo htmlspecialcharsbx($intValueID); ?>" <? echo (!empty($arSKUExport['SKU_PROP_COND']['VALUES']) && in_array($intValueID,$arSKUExport['SKU_PROP_COND']['VALUES']) ? 'selected' : ''); ?>><? echo htmlspecialcharsEx($strValue); ?></option><?
793 }
794 ?></select><?
795 }
796 else
797 {
798 if (!empty($arSKUExport['SKU_PROP_COND']['VALUES']))
799 {
800 foreach ($arSKUExport['SKU_PROP_COND']['VALUES'] as $strValue)
801 {
802 ?><input type="text" name="SKU_PROP_VALUE_<? echo $arProp['ID']?>[]" value="<? echo htmlspecialcharsbx($strValue);?>"><br><?
803 }
804 }
805 ?><input type="text" name="SKU_PROP_VALUE_<? echo $arProp['ID']?>[]" value=""><br>
806 <input type="text" name="SKU_PROP_VALUE_<? echo $arProp['ID']?>[]" value=""><br>
807 <input type="text" name="SKU_PROP_VALUE_<? echo $arProp['ID']?>[]" value=""><br>
808 <input type="text" name="SKU_PROP_VALUE_<? echo $arProp['ID']?>[]" value=""><br>
809 <input type="text" name="SKU_PROP_VALUE_<? echo $arProp['ID']?>[]" value=""><br>
810 <?
811 }
812 ?></div><?
813 }
814 ?></div></td>
815 </tr>
816 </tbody></table><?
817 ?><script>
818 var obExportConds = null,
819 obPropCondCont = null,
820 obSelectProps = null,
821 arPropLayers = [];
822 <?
823 $intCount = 0;
824 foreach ($arSelectOfferProps as $intPropID)
825 {
826 ?> arPropLayers[<? echo $intCount; ?>] = {'ID': <? echo $intPropID; ?>, 'OBJ': null};
827 <?
828 $intCount++;
829 }
830 ?>
831
832 function changeValueDiv()
833 {
834 if (obSelectProps)
835 {
836 var intCurPropID = obSelectProps.options[obSelectProps.selectedIndex].value;
837 for (i = 0; i < arPropLayers.length; i++)
838 if (arPropLayers[i].OBJ)
839 BX.style(arPropLayers[i].OBJ, 'display', (intCurPropID == arPropLayers[i].ID ? 'block' : 'none'));
840 }
841 }
842
843 function changePropCondCont()
844 {
845 if (obExportConds && obPropCondCont)
846 {
847 var intTypeCond = obExportConds.options[obExportConds.selectedIndex].value;
848 BX.style(obPropCondCont, 'display', (intTypeCond == <? echo YANDEX_SKU_EXPORT_PROP; ?> ? 'block' : 'none'));
849 }
850 }
851
852 BX.ready(function(){
853 for (i = 0; i < arPropLayers.length; i++)
854 {
855 arPropLayers[i].OBJ = BX('SKU_PROP_VALUE_DV_'+arPropLayers[i].ID);
856 }
857
858 obSelectProps = BX('SKU_PROP_COND');
859 if (obSelectProps)
860 BX.bind(obSelectProps, 'change', changeValueDiv);
861 obExportConds = BX('SKU_EXPORT_COND');
862 obPropCondCont = BX('PROP_COND_CONT');
863 if (obExportConds && obPropCondCont)
864 {
865 BX.bind(obExportConds, 'change', changePropCondCont);
866 }
867 });
868 </script><?
869 ?></div><?
870 }
871 ?></td>
872 </tr>
873<?
874 }
875
876 $tabControl->BeginNextTab();
877
878 $arGroups = array();
879 $dbRes = CCatalogGroup::GetGroupsList(array("GROUP_ID"=>2));
880 while ($arRes = $dbRes->Fetch())
881 {
882 if ($arRes['BUY'] == 'Y')
883 $arGroups[] = $arRes['CATALOG_GROUP_ID'];
884 }
885?>
886 <tr class="heading">
887 <td colspan="2"><?=GetMessage('YANDEX_PRICES')?></td>
888 </tr>
889
890 <tr>
891 <td><?=GetMessage('YANDEX_PRICE_TYPE');?>: </td>
892 <td><br /><select name="PRICE">
893 <option value=""<? echo ($PRICE == "" || $PRICE == 0 ? ' selected' : '');?>><?=GetMessage('YANDEX_PRICE_TYPE_NONE');?></option>
894<?
895 if (!empty($arGroups))
896 {
898 array('SORT' => 'ASC'),
899 array('ID' => $arGroups),
900 false,
901 false,
902 array('ID', 'NAME', 'BASE')
903 );
904 while ($arRes = $dbRes->Fetch())
905 {
906 ?>
907 <option value="<?= $arRes['ID'] ?>"<? echo($PRICE == $arRes['ID'] ? ' selected' : ''); ?>><?= '[' . $arRes['ID'] . '] ' . htmlspecialcharsEx($arRes['NAME']); ?></option><?
908 }
909 }
910?>
911 </select><br /><br /></td>
912 </tr>
913 <tr class="heading">
914 <td colspan="2"><?=GetMessage('YANDEX_CURRENCIES')?></td>
915 </tr>
916
917 <tr>
918 <td colspan="2"><br />
919<?
920 $arCurrencyList = array();
921 $arCurrencyAllowed = array(
922 'RUR' => true,
923 'RUB' => true,
924 'USD' => true,
925 'EUR' => true,
926 'UAH' => true,
927 'BYR' => true,
928 'BYN' => true,
929 'KZT' => true
930 );
931 $existCurrrencies = Currency\CurrencyManager::getCurrencyList();
932 $arCurrencyList = array_intersect_key(Currency\CurrencyManager::getCurrencyList(), $arCurrencyAllowed);
933
935 'SITE' => GetMessage('YANDEX_CURRENCY_RATE_SITE'),
936 'CBRF' => GetMessage('YANDEX_CURRENCY_RATE_CBRF'),
937 'NBU' => GetMessage('YANDEX_CURRENCY_RATE_NBU'),
938 'NBK' => GetMessage('YANDEX_CURRENCY_RATE_NBK'),
939 'CB' => GetMessage('YANDEX_CURRENCY_RATE_CB')
940 );
941?>
942<table cellpadding="2" cellspacing="0" border="0" class="internal" style="text-align: center;">
943<thead>
944 <tr class="heading">
945 <td colspan="2"><?=GetMessage('YANDEX_CURRENCY')?></td>
946 <td><?=GetMessage('YANDEX_CURRENCY_RATE')?></td>
947 <td><?=GetMessage('YANDEX_CURRENCY_PLUS')?></td>
948 </tr>
949</thead>
950<tbody>
951<?
952 foreach ($arCurrencyList as $strCurrency => $strCurrencyName)
953 {
954?>
955 <tr>
956 <td><input type="checkbox" name="CURRENCY[]" id="CURRENCY_<?=$strCurrency?>" value="<?=$strCurrency?>"<? echo (empty($CURRENCY) || isset($CURRENCY[$strCurrency]) ? ' checked="checked"' : ''); ?> /></td>
957 <td><label for="CURRENCY_<?=$strCurrency?>" class="text"><?=$strCurrencyName?></label></td>
958 <td><select name="CURRENCY_RATE[<?=$strCurrency?>]" onchange="BX('CURRENCY_PLUS_<?=$strCurrency?>').disabled = this[this.selectedIndex].value == 'SITE'">
959<?
960 $strRate = 'SITE';
961 if (isset($CURRENCY[$strCurrency]) && isset($CURRENCY[$strCurrency]['rate']))
962 $strRate = $CURRENCY[$strCurrency]['rate'];
963 if (!array_key_exists($strRate,$arValues))
964 $strRate = 'SITE';
965 foreach ($arValues as $key => $title)
966 {
967?>
968 <option value="<?=htmlspecialcharsbx($key)?>"<? echo ($strRate == $key ? ' selected' : ''); ?>>(<?=htmlspecialcharsEx($key)?>) <?=htmlspecialcharsEx($title)?></option>
969<?
970 }
971?>
972 </select></td>
973 <?
974 $strPlus = '';
975 if (isset($CURRENCY[$strCurrency]) && isset($CURRENCY[$strCurrency]['plus']))
976 $strPlus = $CURRENCY[$strCurrency]['plus'];
977 ?>
978 <td>+<input type="text" size="3" id="CURRENCY_PLUS_<?=$strCurrency?>" name="CURRENCY_PLUS[<?=$strCurrency?>]"<? echo ($strRate == 'SITE' ? ' disabled="disabled"' : ''); ?> value="<? echo htmlspecialcharsbx($strPlus); ?>">%</td>
979 </tr>
980<?
981 }
982?>
983</tbody>
984</table>
985
986 </td>
987 </tr>
988<?
989 $tabControl->BeginNextTab();
990?>
991 <tr class="heading">
992 <td colspan="2"><? echo GetMessage('YANDEX_VAT_SETTINGS');?></td>
993 </tr>
994 <tr>
995 <td colspan="2" style="text-align: center;">
996 <?echo BeginNote(), GetMessage('YANDEX_VAT_ATTENTION'), EndNote();?>
997 </td>
998 </tr>
999 <tr>
1000 <td width="40%"><?=GetMessage('YANDEX_USE_VAT_EXPORT'); ?></td>
1001 <td>
1002 <input type="hidden" name="USE_VAT_EXPORT" value="N">
1003 <input type="checkbox" name="USE_VAT_EXPORT" value="Y" id="USE_VAT_EXPORT"<?=($vatExport['ENABLE'] == 'Y' ? ' checked' : '');?>>
1004 </td>
1005 </tr>
1006 <tr id="tr_BASE_VAT" style="display: <?=($vatExport['ENABLE'] == 'Y' ? 'table-row' : 'none');?>;">
1007 <td><?=GetMessage('YANDEX_BASE_VAT') ?></td>
1008 <td><select name="BASE_VAT">
1009 <option value=""<?=($vatExport['BASE_VAT'] === '' ? ' selected' : '');?>><?=GetMessage('YANDEX_BASE_VAT_ABSENT'); ?></option>
1010 <?
1011 foreach ($vatRates as $value => $title)
1012 {
1013 ?><option value="<?=htmlspecialcharsbx($value); ?>"<?=($vatExport['BASE_VAT'] === $value ? ' selected' : '');?>><?=htmlspecialcharsbx($title);?></option><?
1014 }
1015 unset($value, $title);
1016 ?>
1017 </select></td>
1018 </tr>
1019 <?
1020 $tabControl->EndTab();
1021 $tabControl->Buttons(array());
1022 $tabControl->End();
1023
1024 require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
1025 }
1026}
return select
Определения access_edit.php:440
<?=$taskID?> selected
Определения access_edit.php:348
$type
Определения options.php:106
const YANDEX_SKU_EXPORT_PROP
Определения include.php:21
const YANDEX_SKU_EXPORT_ALL
Определения include.php:19
global $APPLICATION
Определения include.php:80
const YANDEX_SKU_EXPORT_MIN_PRICE
Определения include.php:20
Определения admin_lib.php:2166
static GetPropertyEnum($PROP_ID, $arOrder=array("SORT"=>"asc"), $arFilter=array())
Определения iblockproperty.php:1065
static GetList($arOrder=Array(), $arFilter=Array())
Определения iblockproperty.php:14
static GetGroupsList($arFilter=array())
Определения cataloggroup.php:461
static GetListEx($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения cataloggroup.php:360
static IncludeModule($module_name)
Определения module.php:151
$arValues
Определения component_props.php:25
& nbsp
Определения epilog_main_admin.php:38
bx popup label bx width30 PAGE_NEW_MENU_NAME text width
Определения file_new.php:677
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
bx_acc_lim_group_list limitGroupList[] multiple<?=$group[ 'ID']?> ID selected margin top
Определения file_new.php:657
$arGroups
Определения options.php:1766
EndNote()
Определения filter_tools.php:601
BeginNote($sParams='', $sMessParams='')
Определения filter_tools.php:589
$_REQUEST["admin_mnu_menu_id"]
Определения get_menu.php:8
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
$tabControl
Определения csv_new_setup.php:244
$aTabs
Определения csv_new_setup.php:238
CheckSerializedData($str, $max_depth=200)
Определения tools.php:4949
bitrix_sessid_post($varname='sessid', $returnInvocations=false)
Определения tools.php:4700
check_bitrix_sessid($varname='sessid')
Определения tools.php:4686
ShowError($strError, $cls="errortext")
Определения tools.php:4499
htmlspecialcharsEx($str)
Определения tools.php:2685
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$value
Определения Param.php:39
$message
Определения payment.php:8
global_menu_<?echo $menu["menu_id"]?> adm main menu item icon adm main menu item text text adm main menu hover adm submenu menucontainer menu_id menu_id items_id items_id desktop menu_id block none adm global submenu<?=($subMenuDisplay=="block" ? " adm-global-submenu-active" :"")?> global_submenu_<?echo $menu["menu_id"]?> text MAIN_PR_ADMIN_FAV items adm submenu items wrap adm submenu items stretch wrap BX adminMenu itemsStretchScroll()"> <table class if (!empty( $menu["items"])) elseif ( $menu[ 'menu_id']=='desktop') if ( $menu[ 'menu_id']=='desktop') endforeach
Определения prolog_main_admin.php:255
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
die
Определения quickway.php:367
$i
Определения factura.php:643
font style
Определения invoice.php:442
font size
Определения invoice.php:442
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799
text align
Определения template.php:556
$title
Определения pdf.php:123
$CURRENCY
Определения result.php:6
$arRes
Определения options.php:104
$arOfferIBlock
Определения yandex_detail.php:76
$arOffersSelectKeys
Определения yandex_detail.php:86
if(!empty($arOffers['IBLOCK_ID'])) $arCondSelectProp
Определения yandex_detail.php:115
$rsIBlocks
Определения yandex_detail.php:58
$intOfferIBlockID
Определения yandex_detail.php:77
$defaultVatExport
Определения yandex_detail.php:163
$intIBlockIDCheck
Определения yandex_detail.php:45
$arTypesConfig
Определения yandex_detail.php:122
if(!AccessController::getCurrent() ->check(ActionDictionary::ACTION_CATALOG_EXPORT_EDIT)) if((!isset($_REQUEST['IBLOCK_ID']))||($_REQUEST['IBLOCK_ID']=='')) $intIBlockID
Определения yandex_detail.php:44
$arSelectOfferProps
Определения yandex_detail.php:78
$arOffers
Определения yandex_detail.php:75
$arTypesConfigKeys
Определения yandex_detail.php:154
$dbRes
Определения yandex_detail.php:168
$vatRates
Определения yandex_detail.php:156
$boolOffers
Определения yandex_detail.php:74
$arSelectedPropTypes
Определения yandex_detail.php:79
$arIBlock['PROPERTY']
Определения yandex_detail.php:172
$strPerm
Определения yandex_detail.php:57
$rsProps
Определения yandex_run.php:584
$arSKUExport
Определения yandex_run.php:672
if( $fieldsExist) if($parametricFieldsExist) $commonFields
Определения yandex_run.php:551
$vatExport
Определения yandex_run.php:920