3namespace Bitrix\Catalog\Grid\Row;
5use Bitrix\Catalog\Grid\Row\Assembler\Factory\PriceFieldAssemblerFactory;
6use Bitrix\Catalog\Grid\Row\Assembler\MeasureFieldAssembler;
7use Bitrix\Catalog\Grid\Row\Assembler\MorePhotoAssembler;
8use Bitrix\Catalog\Grid\Row\Assembler\ProductSelectorFieldAssembler;
9use Bitrix\Catalog\Grid\Row\Assembler\ProductTypeFieldAssembler;
10use Bitrix\Catalog\Grid\Row\Assembler\LockedFieldAssembler;
11use Bitrix\Catalog\Grid\Row\Assembler\ProductNameFieldAssembler;
12use Bitrix\Catalog\Grid\Row\Assembler\PurchasingPriceFieldAssembler;
13use Bitrix\Catalog\Grid\Row\Assembler\VatFieldAssembler;
14use Bitrix\Catalog\Grid\Settings\ProductSettings;
15use Bitrix\Catalog\ProductTable;
16use Bitrix\Iblock\Grid\Row\Assembler\SectionNameFieldAssembler;
17use Bitrix\Iblock\Grid\Row\ElementRowAssembler;
18use Bitrix\Main\Grid\Row\Assembler\Field\StringFieldAssembler;
19use Bitrix\Main\Loader;
21Loader::requireModule(
'iblock');
28 private bool $isUseCatalogTab =
false;
29 private bool $isUseSkuSelector =
false;
33 $this->isUseCatalogTab = $value;
38 $this->isUseSkuSelector = $value;
43 $result = parent::prepareFieldAssemblers();
45 if ($this->isUseSkuSelector)
48 'PRODUCT', $this->settings
55 $this->settings->getUrlBuilder()
61 $this->settings->getUrlBuilder()
86 private function getClearedProductFields():
array
90 $baseClearSkuFields = [
96 'PURCHASING_CURRENCY',
106 if (!$this->isUseSkuSelector && !$this->isUseCatalogTab)
111 if (!$this->isUseCatalogTab)
134 private function clearProductFields(
array $rowsList):
array
136 $clearedFields = $this->getClearedProductFields();
138 foreach ($rowsList as $index => $rowItem)
140 $productType = (int)(
$rowList[$index][
'data'][
'TYPE'] ?? 0);
141 if (isset($clearedFields[$productType]))
143 foreach ($clearedFields[$productType] as $fieldName)
145 if (isset(
$rowList[$index][
'data'][$fieldName]))
147 $rowList[$index][
'data'][$fieldName] =
'';
158 $rowsList = $this->clearProductFields($rowsList);
160 return parent::prepareRows($rowsList);
prepareRows(array $rowsList)
setUseCatalogTab(bool $value=true)
setUseSkuSelector(bool $value=true)
static getProductTypes($descr=false)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)