1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
product.php
См. документацию.
1<?php
2
7
9
11{
13
14 public static function GetProductSkuProps($ID, $IBLOCK_ID = '', $getExt = false)
15 {
16 $getExt = ($getExt === true);
17 $arSkuProps = array();
18 $ID = (int)$ID;
20 if ($ID > 0 && \Bitrix\Main\Loader::includeModule('catalog'))
21 {
22 $filter = array('ID' => $ID, 'ACTIVE' => 'Y');
23 if ($IBLOCK_ID > 0)
24 $filter['IBLOCK_ID'] = $IBLOCK_ID;
25 $res = CIBlockElement::GetList(
26 array(),
27 $filter,
28 false,
29 false,
30 array("ID", "IBLOCK_ID")
31 );
32 $arElement = $res->Fetch();
33 if ($arElement)
34 {
35 $arElement['ID'] = (int)$arElement['ID'];
36 $arParent = CCatalogSku::GetProductInfo($ID, $arElement["IBLOCK_ID"]);
37 if ($arParent)
38 {
39 $arElement['PROPERTIES'] = array();
40 $arElementLink = array(
41 $arElement['ID'] => &$arElement
42 );
43 $arFilter = array('ID' => $arElement['ID'], 'IBLOCK_ID' => $arElement["IBLOCK_ID"]);
44 CIBlockElement::GetPropertyValuesArray($arElementLink, $arElement["IBLOCK_ID"], $arFilter);
45 if (!empty($arElement['PROPERTIES']))
46 {
47 foreach ($arElement['PROPERTIES'] as &$prop)
48 {
49 if ($prop['XML_ID'] == 'CML2_LINK' || $prop['PROPERTY_TYPE'] == 'F')
50 {
51 continue;
52 }
53 $boolArr = is_array($prop["VALUE"]);
54 if(
55 ($boolArr && !empty($prop["VALUE"]))
56 || (!$boolArr && $prop["VALUE"] <> '')
57 )
58 {
59 $displayProperty = CIBlockFormatProperties::GetDisplayValue($arElement, $prop, '');
60 $mxValues = '';
61 if ('E' == $prop['PROPERTY_TYPE'])
62 {
63 if (!empty($displayProperty['LINK_ELEMENT_VALUE']))
64 {
65 $mxValues = array();
66 foreach ($displayProperty['LINK_ELEMENT_VALUE'] as $arTempo)
67 $mxValues[] = $arTempo['NAME'].' ['.$arTempo['ID'].']';
68 }
69 }
70 elseif ('G' == $prop['PROPERTY_TYPE'])
71 {
72 if (!empty($displayProperty['LINK_SECTION_VALUE']))
73 {
74 $mxValues = array();
75 foreach ($displayProperty['LINK_SECTION_VALUE'] as $arTempo)
76 $mxValues[] = $arTempo['NAME'].' ['.$arTempo['ID'].']';
77 }
78 }
79 if (empty($mxValues))
80 {
81 $mxValues = $displayProperty["DISPLAY_VALUE"];
82 }
83 if ($getExt)
84 {
85 $arSkuProps[$prop["ID"]] = array(
86 'ID' => $prop["ID"],
87 'CODE' => $prop['CODE'],
88 'NAME' => $prop["NAME"],
89 'VALUE' => strip_tags(is_array($mxValues) ? implode("/ ", $mxValues) : $mxValues)
90 );
91 }
92 else
93 {
94 $arSkuProps[$prop["NAME"]] = strip_tags(is_array($mxValues) ? implode("/ ", $mxValues) : $mxValues);
95 }
96 }
97 }
98 unset($prop);
99 }
100 }
101 }
102 }
103 return $arSkuProps;
104 }
105
117 public static function GetProductSku($USER_ID, $LID, $PRODUCT_ID, $PRODUCT_NAME = '', $CURRENCY = '', $arProduct = array())
118 {
119 $USER_ID = (int)$USER_ID;
120
121 $PRODUCT_ID = (int)$PRODUCT_ID;
122 if ($PRODUCT_ID <= 0)
123 return false;
124
125 $LID = trim($LID);
126 if ($LID == '')
127 return false;
128
129 $PRODUCT_NAME = trim($PRODUCT_NAME);
130 $arResult = array();
131 $arOffers = array();
132
133 static $arCacheGroups = array();
134
135 if (!is_set($arCacheGroups[$USER_ID]))
136 $arCacheGroups[$USER_ID] = CUser::GetUserGroup($USER_ID);
137 $arGroups = $arCacheGroups[$USER_ID];
138
139 if (empty($arProduct))
140 $arProduct = CSaleProduct::GetProductListIblockInfo(array($PRODUCT_ID));
141
142 static $arOffersIblock = array();
143 if (!is_set($arOffersIblock[$arProduct["IBLOCK_ID"]]))
144 {
145 $mxResult = CCatalogSKU::GetInfoByProductIBlock($arProduct["IBLOCK_ID"]);
146 if (is_array($mxResult))
147 $arOffersIblock[$arProduct["IBLOCK_ID"]] = $mxResult["IBLOCK_ID"];
148 }
149
150 if ($arOffersIblock[$arProduct["IBLOCK_ID"]] > 0)
151 {
152
153 static $arCacheOfferProperties = array();
154 if (!is_set($arCacheOfferProperties[$arOffersIblock[$arProduct["IBLOCK_ID"]]]))
155 {
156 $dbOfferProperties = CIBlock::GetProperties($arOffersIblock[$arProduct["IBLOCK_ID"]], array(), array("!XML_ID" => "CML2_LINK"));
157 while($arOfferProperties = $dbOfferProperties->Fetch())
158 $arCacheOfferProperties[$arOffersIblock[$arProduct["IBLOCK_ID"]]][] = $arOfferProperties;
159 }
160 $arOfferProperties = $arCacheOfferProperties[$arOffersIblock[$arProduct["IBLOCK_ID"]]];
161
162
163 $arIblockOfferProps = array();
164 $arIblockOfferPropsFilter = array();
165 if (is_array($arOfferProperties))
166 {
167 foreach ($arOfferProperties as $val)
168 {
169 $arIblockOfferProps[] = array("CODE" => $val["CODE"], "NAME" => $val["NAME"]);
170 $arIblockOfferPropsFilter[] = $val["CODE"];
171 }
172 }
173
175 $arProduct["IBLOCK_ID"],
176 $PRODUCT_ID,
177 array("ID" => "DESC"),
178 array("NAME"),
179 $arIblockOfferPropsFilter,
180 0,
181 array(),
182 1,
183 array(),
184 $USER_ID,
185 $LID
186 );
187 $arSku = array();
188 $minItemPrice = 0;
189 $minItemPriceFormat = "";
190
191 $arSkuId = array();
192 $arImgSku = array();
193 foreach($arOffers as $arOffer)
194 $arSkuId[] = $arOffer['ID'];
195
196 if (!empty($arSkuId))
197 {
198 $res = CIBlockElement::GetList(array(), array("ID" => $arSkuId), false, false, array("ID", "IBLOCK_ID", "NAME", "PREVIEW_PICTURE", "DETAIL_PICTURE", "DETAIL_PAGE_URL"));
199 while($arOfferImg = $res->GetNext())
200 $arImgSku[$arOfferImg["ID"]] = $arOfferImg;
201 }
202
203 foreach($arOffers as $arOffer)
204 {
205 $arPrice = CCatalogProduct::GetOptimalPrice($arOffer['ID'], 1, $arGroups, "N", array(), $LID);
206 if (empty($arPrice))
207 {
208 break;
209 }
211 {
212 $arPrice["PRICE"]["PRICE"] = CCurrencyRates::ConvertCurrency($arPrice["PRICE"]["PRICE"], $arPrice["PRICE"]["CURRENCY"], $CURRENCY);
213 if ($arPrice["DISCOUNT_PRICE"] > 0)
214 $arPrice["DISCOUNT_PRICE"] = CCurrencyRates::ConvertCurrency($arPrice["DISCOUNT_PRICE"], $arPrice["PRICE"]["CURRENCY"], $CURRENCY);
215
216 $arPrice["PRICE"]["CURRENCY"] = $CURRENCY;
217 }
218 $arSkuTmp = array();
219
220 $arOffer["CAN_BUY"] = "N";
221 $arCatalogProduct = CCatalogProduct::GetByID($arOffer['ID']);
222 if (!empty($arCatalogProduct))
223 {
224 if ($arCatalogProduct["CAN_BUY_ZERO"]!="Y" && ($arCatalogProduct["QUANTITY_TRACE"]=="Y" && doubleval($arCatalogProduct["QUANTITY"])<=0))
225 $arOffer["CAN_BUY"] = "N";
226 else
227 $arOffer["CAN_BUY"] = "Y";
228 }
229
230 $arSkuTmp["ImageUrl"] = '';
231 if ($arOffer["CAN_BUY"] == "Y")
232 {
233 $productImg = "";
234 if (isset($arImgSku[$arOffer['ID']]) && !empty($arImgSku[$arOffer['ID']]))
235 {
236 if ('' == $PRODUCT_NAME)
237 $PRODUCT_NAME = $arImgSku[$arOffer['ID']]["~NAME"];
238
239 if($arImgSku[$arOffer['ID']]["PREVIEW_PICTURE"] != "")
240 $productImg = $arImgSku[$arOffer['ID']]["PREVIEW_PICTURE"];
241 elseif($arImgSku[$arOffer['ID']]["DETAIL_PICTURE"] != "")
242 $productImg = $arImgSku[$arOffer['ID']]["DETAIL_PICTURE"];
243
244 if ($productImg == "")
245 {
246 if($arProduct["PREVIEW_PICTURE"] != "")
247 $productImg = $arProduct["PREVIEW_PICTURE"];
248 elseif($arProduct["DETAIL_PICTURE"] != "")
249 $productImg = $arProduct["DETAIL_PICTURE"];
250 }
251
252 if ($productImg != "")
253 {
254 $arFile = CFile::GetFileArray($productImg);
255 $productImg = CFile::ResizeImageGet($arFile, array('width'=>80, 'height'=>80), BX_RESIZE_IMAGE_PROPORTIONAL, false, false);
256 $arSkuTmp["ImageUrl"] = $productImg["src"];
257 }
258 }
259 }
260
261 if (($minItemPrice === 0) || ($arPrice["DISCOUNT_PRICE"] < $minItemPrice))
262 {
263 $minItemPrice = $arPrice["DISCOUNT_PRICE"];
264 $minItemPriceFormat = SaleFormatCurrency($arPrice["DISCOUNT_PRICE"], $arPrice["PRICE"]["CURRENCY"]);
265 }
266
267 foreach($arIblockOfferProps as $arCode)
268 {
269 if (array_key_exists($arCode["CODE"], $arOffer["PROPERTIES"]))
270 {
271 if (is_array($arOffer["PROPERTIES"][$arCode["CODE"]]["VALUE"]))
272 $arSkuTmp[] = implode("/", $arOffer["PROPERTIES"][$arCode["CODE"]]["VALUE"]);
273 else
274 $arSkuTmp[] = $arOffer["PROPERTIES"][$arCode["CODE"]]["VALUE"];
275 }
276 }
277
278 if (!empty($arCatalogProduct))
279 {
280 $arSkuTmp["BALANCE"] = $arCatalogProduct["QUANTITY"];
281 $arSkuTmp["WEIGHT"] = $arCatalogProduct["WEIGHT"];
282 $arSkuTmp["BARCODE_MULTI"] = $arCatalogProduct["BARCODE_MULTI"];
283 }
284 else
285 {
286 $arSkuTmp["BALANCE"] = 0;
287 $arSkuTmp["WEIGHT"] = 0;
288 $arSkuTmp["BARCODE_MULTI"] = 'N';
289 }
290 $urlEdit = CIBlock::GetAdminElementEditLink(
291 $arOffer["IBLOCK_ID"],
292 $arOffer['ID'],
293 array(
294 'find_section_section' => 0,
295 'WF' => 'Y',
296 )
297 );
298 $discountPercent = 0;
299 $arSkuTmp["USER_ID"] = $USER_ID;
300 $arSkuTmp["ID"] = $arOffer["ID"];
301 $arSkuTmp["NAME"] = CUtil::JSEscape($arOffer["NAME"]);
302 $arSkuTmp["PRODUCT_NAME"] = CUtil::JSEscape($PRODUCT_NAME);
303 $arSkuTmp["PRODUCT_ID"] = $PRODUCT_ID;
304 $arSkuTmp["LID"] = CUtil::JSEscape($LID);
305 $arSkuTmp["MIN_PRICE"] = $minItemPriceFormat;
306 $arSkuTmp["URL_EDIT"] = $urlEdit;
307 $arSkuTmp["DISCOUNT_PRICE"] = '';
308 $arSkuTmp["DISCOUNT_PRICE_FORMATED"] = '';
309 $arSkuTmp["PRICE"] = $arPrice["PRICE"]["PRICE"];
310 $arSkuTmp["PRICE_FORMATED"] = CCurrencyLang::CurrencyFormat($arPrice["PRICE"]["PRICE"], $arPrice["PRICE"]["CURRENCY"], false);
311
312 $arPriceType = GetCatalogGroup($arPrice["PRICE"]["CATALOG_GROUP_ID"]);
313 $arSkuTmp["PRICE_TYPE"] = $arPriceType["NAME_LANG"];
314 $arSkuTmp["VAT_RATE"] = $arPrice["PRICE"]["VAT_RATE"];
315
316 if (count($arPrice["DISCOUNT"]) > 0)
317 {
318 $discountPercent = intval($arPrice["DISCOUNT"]["VALUE"]);
319
320 $arSkuTmp["DISCOUNT_PRICE"] = $arPrice["DISCOUNT_PRICE"];
321 $arSkuTmp["DISCOUNT_PRICE_FORMATED"] = CCurrencyLang::CurrencyFormat($arPrice["DISCOUNT_PRICE"], $arPrice["PRICE"]["CURRENCY"], false);
322 }
323
324 $arCurFormat = CCurrencyLang::GetCurrencyFormat($arPrice["PRICE"]["CURRENCY"]);
325 $arSkuTmp["VALUTA_FORMAT"] = str_replace("#", '', $arCurFormat["FORMAT_STRING"]);
326 $arSkuTmp["DISCOUNT_PERCENT"] = $discountPercent;
327 $arSkuTmp["CURRENCY"] = $arPrice["PRICE"]["CURRENCY"];
328 $arSkuTmp["CAN_BUY"] = $arOffer["CAN_BUY"];
329
330 $arSku[] = $arSkuTmp;
331 }
332 if ((!is_array($arIblockOfferProps) || empty($arIblockOfferProps)) && is_array($arSku) && !empty($arSku))
333 {
334 $arIblockOfferProps[0] = array("CODE" => "TITLE", "NAME" => GetMessage("SKU_TITLE"));
335 foreach ($arSku as $key => $val)
336 $arSku[$key][0] = $val["NAME"];
337 }
338
339 $arResult["SKU_ELEMENTS"] = $arSku;
340 $arResult["SKU_PROPERTIES"] = $arIblockOfferProps;
341 $arResult["OFFERS_IBLOCK_ID"] = $arOffersIblock[$arProduct["IBLOCK_ID"]];
342 }//if OFFERS_IBLOCK_ID > 0
343
344 return $arResult;
345 }
346
355 public static function GetProductListIblockInfo($arProductId)
356 {
357 if (!CModule::IncludeModule('iblock'))
358 return false;
359 $arNewProductId = array();
360 $arResult = array();
361
362 if (!is_array($arProductId))
363 $arProductId = array($arProductId);
364
365 foreach ($arProductId as $productId)
366 {
367 $productId = (int)$productId;
368 if ($productId <= 0)
369 return false;
370
371 if (!isset(self::$arProductIblockInfoCache[$productId]))
372 $arNewProductId[$productId] = $productId;
373 }
374
375 if (!empty($arNewProductId))
376 {
377 $dbProduct = CIBlockElement::GetList(
378 array(),
379 array("ID" => $arNewProductId),
380 false,
381 false,
382 array('ID', 'IBLOCK_ID', 'IBLOCK_SECTION_ID', 'PREVIEW_PICTURE', 'DETAIL_PICTURE')
383 );
384 while ($arProduct = $dbProduct->Fetch())
385 self::$arProductIblockInfoCache[$arProduct["ID"]] = $arProduct;
386 }
387
388 foreach ($arProductId as $productId)
389 {
390 if (isset(self::$arProductIblockInfoCache[$productId]))
391 $arResult[$productId] = self::$arProductIblockInfoCache[$productId];
392 }
393
394 return $arResult;
395 }
396
398 public static function RefreshProductList()
399 {
400 $liveTime = (int)Main\Config\Option::get('sale', 'p2p_del_exp');
401 \Bitrix\Sale\Product2ProductTable::refreshProductStatistic($liveTime);
402
403 return "CSaleProduct::RefreshProductList();";
404 }
405
416 public static function GetRecommendetProduct($USER_ID, $LID, $arFilterRecomendet = array(), $recomMore = 'N', $cntProductDefault = 2)
417 {
418 $arRecomendetResult = array();
419
420 if (CModule::IncludeModule('catalog') && !empty($arFilterRecomendet))
421 {
422 $arRecomendet = array();
423 if (!is_array($arFilterRecomendet))
424 $arFilterRecomendet = array($arFilterRecomendet);
426 if (empty($arFilterRecomendet))
427 return $arRecomendetResult;
428
429 $iblockRecommended = array();
430 $productIterator = Iblock\ElementTable::getList(array(
431 'select' => array('ID', 'IBLOCK_ID'),
432 'filter' => array('@ID' => $arFilterRecomendet, '=ACTIVE' => 'Y')
433 ));
434 while ($product = $productIterator->fetch())
435 {
436 $product['ID'] = (int)$product['ID'];
437 $product['IBLOCK_ID'] = (int)$product['IBLOCK_ID'];
438 if (!isset($iblockRecommended[$product['IBLOCK_ID']]))
439 $iblockRecommended[$product['IBLOCK_ID']] = array();
440 $iblockRecommended[$product['IBLOCK_ID']][] = $product['ID'];
441 }
442 unset($product, $productIterator);
443 if (empty($iblockRecommended))
444 return $arRecomendetResult;
445
446 $propertyList = array();
447 $propertyIterator = Iblock\PropertyTable::getList(array(
448 'select' => array('ID', 'IBLOCK_ID'),
449 'filter' => array('@IBLOCK_ID' => array_keys($iblockRecommended), '=CODE' => 'RECOMMEND', '=PROPERTY_TYPE' => Iblock\PropertyTable::TYPE_ELEMENT)
450 ));
451 while ($property = $propertyIterator->fetch())
452 {
453 $property['ID'] = (int)$property['ID'];
454 $property['IBLOCK_ID'] = (int)$property['IBLOCK_ID'];
455 $propertyList[$property['IBLOCK_ID']] = $property['ID'];
456 }
457 unset($property, $propertyIterator);
458 if (empty($propertyList))
459 return $arRecomendetResult;
460
461 foreach ($propertyList as $iblockID => $propertyID)
462 {
463 $propertyValue = 'PROPERTY_'.$propertyID;
464 $filter = array('ID' => $iblockRecommended[$iblockID], 'IBLOCK_ID' => $iblockID);
465 $select = array('ID', 'IBLOCK_ID', $propertyValue);
466 $propertyValue .= '_VALUE';
467 $elementIterator = CIBlockElement::GetList(array(), $filter, false, false, $select);
468 while ($element = $elementIterator->Fetch())
469 {
470 if (empty($element[$propertyValue]))
471 continue;
472 if (is_array($element[$propertyValue]))
473 {
474 foreach ($element[$propertyValue] as &$recId)
475 {
476 $recId = (int)$recId;
477 if ($recId > 0)
478 $arRecomendet[$recId] = true;
479 }
480 unset($recId);
481 }
482 else
483 {
484 $recId = (int)$element[$propertyValue];
485 if ($recId > 0)
486 $arRecomendet[$recId] = true;
487 }
488 }
489 }
490 unset($element, $elementIterator, $select, $filter, $propertyValue, $propertyID, $iblockID, $propertyList);
491
492 if (!empty($arRecomendet))
493 {
494 $arRecomendet = array_keys($arRecomendet);
495 $arBuyerGroups = CUser::GetUserGroup($USER_ID);
496
497 $arFilter = array("ID" => $arRecomendet, "ACTIVE"=>"Y");
498 $rsElement = CIBlockElement::GetList(
499 array(),
500 $arFilter,
501 false,
502 false,
503 array("NAME", "ID", "LID", 'IBLOCK_ID', 'IBLOCK_SECTION_ID', "DETAIL_PICTURE", "PREVIEW_PICTURE", "DETAIL_PAGE_URL")
504 );
505
509 'PRECISION' => (int)Main\Config\Option::get('sale', 'value_precision'),
510 'USE_DISCOUNTS' => true,
511 'RESULT_WITH_VAT' => true
512 ));
513
514 $i = 0;
515 while ($arElement = $rsElement->GetNext())
516 {
517 if (in_array($arElement["ID"], $arFilterRecomendet))
518 continue;
519 if (($recomMore == "N" && $i < $cntProductDefault) || $recomMore == "Y")
520 {
521 $arElement["MODULE"] = "catalog";
522 $arElement["PRODUCT_PROVIDER_CLASS"] = "CCatalogProductProvider";
523 $arElement["PRODUCT_ID"] = $arElement["ID"];
524
525 $arPrice = CCatalogProduct::GetOptimalPrice($arElement["ID"], 1, $arBuyerGroups, "N", array(), $LID, array());
526
527 $currentPrice = $arPrice['RESULT_PRICE']['DISCOUNT_PRICE'];
528 $arElement["PRICE"] = $currentPrice;
529 $arElement["CURRENCY"] = $arPrice["RESULT_PRICE"]["CURRENCY"];
530 $arElement["DISCOUNT_PRICE"] = $arPrice['RESULT_PRICE']['DISCOUNT'];
531
532 if ($arElement["IBLOCK_ID"] > 0 && $arElement["IBLOCK_SECTION_ID"] > 0)
533 {
534 $arElement["EDIT_PAGE_URL"] = CIBlock::GetAdminElementEditLink($arElement["IBLOCK_ID"], $arElement["PRODUCT_ID"], array(
535 "find_section_section" => $arElement["IBLOCK_SECTION_ID"],
536 'WF' => 'Y',
537 ));
538 }
539
540 $arRecomendetResult[] = $arElement;
541 $i++;
542 }
543 }
544
546 }
547 }
548 return $arRecomendetResult;
549 }
550}
551
553{
561 public static function Update($ID, $arFields)
562 {
563 global $DB;
564
565 foreach(GetModuleEvents("sale", "OnBeforeViewedUpdate", true) as $arEvent)
566 if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields))===false)
567 return false;
568
569 if (isset($arFields["ID"]))
570 unset($arFields["ID"]);
571
572 $strUpdateSql = "";
573 if (!empty($arFields["~DATE_VISIT"]))
574 {
575 $strUpdateSql .= ", DATE_VISIT = ".$DB->ForSql($arFields["~DATE_VISIT"])." ";
576 unset($arFields["DATE_VISIT"]);
577 unset($arFields["~DATE_VISIT"]);
578 }
579 else
580 {
581 $strUpdateSql .= ", DATE_VISIT = ".$DB->GetNowFunction()." ";
582 }
583
584 $ID = intval($ID);
585 $strUpdate = $DB->PrepareUpdate("b_sale_viewed_product", $arFields);
586
587 $strSql = "UPDATE b_sale_viewed_product SET ".
588 " ".$strUpdate.$strUpdateSql.
589 " WHERE ID = ".$ID." ";
590 $DB->Query($strSql);
591
592 foreach(GetModuleEvents("sale", "OnViewedUpdate", true) as $arEvent)
594
595 return $ID;
596 }
597
604 public static function ClearViewed()
605 {
607
608 return "CSaleViewedProduct::ClearViewed();";
609 }
610}
GetCatalogGroup($CATALOG_GROUP_ID)
Определения include.php:182
$arResult
Определения generate_coupon.php:16
static setConfig(array $config)
Определения calculation.php:46
const TYPE_ELEMENT
Определения propertytable.php:68
static get($moduleId, $name, $default="", $siteId=false)
Определения option.php:30
static includeModule($moduleName)
Определения loader.php:67
static getList(array $parameters=array())
Определения datamanager.php:431
static normalizeArrayValuesByInt(&$map, $sorted=true)
Определения collection.php:150
static getSiteCurrency($siteId)
Определения sitecurrency.php:96
Определения product.php:11
static $arProductIblockInfoCache
Определения product.php:12
static GetRecommendetProduct($USER_ID, $LID, $arFilterRecomendet=array(), $recomMore='N', $cntProductDefault=2)
Определения product.php:416
static RefreshProductList()
Определения product.php:398
static GetProductSku($USER_ID, $LID, $PRODUCT_ID, $PRODUCT_NAME='', $CURRENCY='', $arProduct=array())
Определения product.php:117
static GetProductSkuProps($ID, $IBLOCK_ID='', $getExt=false)
Определения product.php:14
static GetProductListIblockInfo($arProductId)
Определения product.php:355
static GetByID($ID)
Определения product.php:625
static GetOptimalPrice($intProductID, $quantity=1, $arUserGroups=array(), $renewal="N", $priceList=array(), $siteID=false, $arDiscountCoupons=false)
Определения product.php:973
static ConvertCurrency($valSum, $curFrom, $curTo, $valDate="")
Определения currency_rate.php:393
static ClearViewed()
Определения product.php:604
static Update($ID, $arFields)
Определения product.php:561
static GetOffersArray($arFilter, $arElementID, $arOrder, $arSelectFields, $arSelectProperties, $limit, $arPrices, $vat_include, $arCurrencyParams=array(), $USER_ID=0, $LID=SITE_ID)
Определения comp_pricetools.php:1348
static _ClearViewed()
Определения product.php:699
$arFields
Определения dblapprove.php:5
</td ></tr ></table ></td ></tr ><?endif?><? $propertyIndex=0;foreach( $arGlobalProperties as $propertyCode=> $propertyValue
Определения file_new.php:729
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$arGroups
Определения options.php:1766
$res
Определения filter_act.php:7
if($ajaxMode) $ID
Определения get_user.php:27
$select
Определения iblock_catalog_list.php:194
$filter
Определения iblock_catalog_list.php:54
global $DB
Определения cron_frame.php:29
$arSku
Определения csv_new_run.php:183
$IBLOCK_ID
Определения csv_new_run.php:168
const BX_RESIZE_IMAGE_PROPORTIONAL
Определения constants.php:11
ExecuteModuleEventEx($arEvent, $arParams=[])
Определения tools.php:5214
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
Определения tools.php:5177
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
is_set($a, $k=false)
Определения tools.php:2133
GetMessage($name, $aReplace=null)
Определения tools.php:3397
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
$i
Определения factura.php:643
</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
$arCurFormat
Определения template.php:265
SaleFormatCurrency($fSum, $strCurrency, $OnlyValue=false, $withoutFormat=false)
Определения include.php:142
$val
Определения options.php:1793
$CURRENCY
Определения result.php:6
$arFilter
Определения user_search.php:106
$arOffers
Определения yandex_detail.php:75