3require_once(
$_SERVER[
"DOCUMENT_ROOT"].
"/bitrix/modules/catalog/general/store_product.php");
11 foreach(
GetModuleEvents(
"catalog",
"OnBeforeStoreProductAdd",
true) as $arEvent)
19 if (!static::CheckFields(
'ADD',
$arFields))
24 $arInsert =
$DB->PrepareInsert(
"b_catalog_store_product",
$arFields);
25 $strSql =
"INSERT INTO b_catalog_store_product (".$arInsert[0].
") VALUES(".$arInsert[1].
")";
27 $res =
$DB->Query($strSql,
true);
35 foreach(
GetModuleEvents(
"catalog",
"OnStoreProductAdd",
true) as $arEvent)
55 "ID" =>
array(
"FIELD" =>
"CP.ID",
"TYPE" =>
"int"),
56 "PRODUCT_ID" =>
array(
"FIELD" =>
"CP.PRODUCT_ID",
"TYPE" =>
"int"),
57 "STORE_ID" =>
array(
"FIELD" =>
"CP.STORE_ID",
"TYPE" =>
"int"),
58 "AMOUNT" =>
array(
"FIELD" =>
"CP.AMOUNT",
"TYPE" =>
"double"),
59 "QUANTITY_RESERVED" => [
"FIELD" =>
"CP.QUANTITY_RESERVED",
"TYPE" =>
"double"],
60 "STORE_NAME" =>
array(
"FIELD" =>
"CS.TITLE",
"TYPE" =>
"string",
"FROM" =>
"RIGHT JOIN b_catalog_store CS ON (CS.ID = CP.STORE_ID)"),
61 "STORE_ADDR" =>
array(
"FIELD" =>
"CS.ADDRESS",
"TYPE" =>
"string",
"FROM" =>
"RIGHT JOIN b_catalog_store CS ON (CS.ID = CP.STORE_ID)"),
62 "STORE_DESCR" =>
array(
"FIELD" =>
"CS.DESCRIPTION",
"TYPE" =>
"string",
"FROM" =>
"RIGHT JOIN b_catalog_store CS ON (CS.ID = CP.STORE_ID)"),
63 "STORE_GPS_N" =>
array(
"FIELD" =>
"CS.GPS_N",
"TYPE" =>
"string",
"FROM" =>
"RIGHT JOIN b_catalog_store CS ON (CS.ID = CP.STORE_ID)"),
64 "STORE_GPS_S" =>
array(
"FIELD" =>
"CS.GPS_S",
"TYPE" =>
"string",
"FROM" =>
"RIGHT JOIN b_catalog_store CS ON (CS.ID = CP.STORE_ID)"),
65 "STORE_IMAGE" =>
array(
"FIELD" =>
"CS.IMAGE_ID",
"TYPE" =>
"int",
"FROM" =>
"RIGHT JOIN b_catalog_store CS ON (CS.ID = CP.STORE_ID)"),
66 "STORE_LOCATION" =>
array(
"FIELD" =>
"CS.LOCATION_ID",
"TYPE" =>
"int",
"FROM" =>
"RIGHT JOIN b_catalog_store CS ON (CS.ID = CP.STORE_ID)"),
67 "STORE_PHONE" =>
array(
"FIELD" =>
"CS.PHONE",
"TYPE" =>
"string",
"FROM" =>
"RIGHT JOIN b_catalog_store CS ON (CS.ID = CP.STORE_ID)")
70 $arSqls[
"SELECT"] = str_replace(
"%%_DISTINCT_%%",
"", $arSqls[
"SELECT"]);
72 if (empty($arGroupBy) && is_array($arGroupBy))
74 $strSql =
"SELECT ".$arSqls[
"SELECT"].
" FROM b_catalog_store_product CP ".$arSqls[
"FROM"];
75 if (!empty($arSqls[
"WHERE"]))
76 $strSql .=
" WHERE ".$arSqls[
"WHERE"];
77 if (!empty($arSqls[
"GROUPBY"]))
78 $strSql .=
" GROUP BY ".$arSqls[
"GROUPBY"];
86 $strSql =
"SELECT ".$arSqls[
"SELECT"].
" FROM b_catalog_store_product CP ".$arSqls[
"FROM"];
87 if (!empty($arSqls[
"WHERE"]))
88 $strSql .=
" WHERE ".$arSqls[
"WHERE"];
89 if (!empty($arSqls[
"GROUPBY"]))
90 $strSql .=
" GROUP BY ".$arSqls[
"GROUPBY"];
91 if (!empty($arSqls[
"ORDERBY"]))
92 $strSql .=
" ORDER BY ".$arSqls[
"ORDERBY"];
95 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
96 if ($boolNavStartParams && array_key_exists(
'nTopCount', $arNavStartParams))
98 $intTopCount = intval($arNavStartParams[
"nTopCount"]);
100 if ($boolNavStartParams && 0 >= $intTopCount)
102 $strSql_tmp =
"SELECT COUNT('x') as CNT FROM b_catalog_store_product CP ".$arSqls[
"FROM"];
103 if (!empty($arSqls[
"WHERE"]))
104 $strSql_tmp .=
" WHERE ".$arSqls[
"WHERE"];
105 if (!empty($arSqls[
"GROUPBY"]))
106 $strSql_tmp .=
" GROUP BY ".$arSqls[
"GROUPBY"];
110 if (empty($arSqls[
"GROUPBY"]))
117 $cnt =
$dbRes->SelectedRowsCount();
122 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
126 if ($boolNavStartParams && 0 < $intTopCount)
128 $strSql .=
" LIMIT ".$intTopCount;
static PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
ExecuteModuleEventEx($arEvent, $arParams=[])
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)