• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/v2/Barcode/BarcodeRepository.php
  • Класс: BitrixCatalogv2BarcodeBarcodeRepository
  • Вызов: BarcodeRepository::save
public function save(BaseEntity ...$entities): Result
{
	$result = new Result();

	/** @var Barcode $entity */
	foreach ($entities as $entity)
	{
		if (!$entity->getProductId())
		{
			$productId = $this->getProductId($entity);

			if ($productId)
			{
				$entity->setProductId($productId);
			}
			else
			{
				$result->addError(new Error('Wrong product id'));
				continue;
			}
		}

		if ($entityId = $entity->getId())
		{
			$res = $this->updateInternal($entityId, $entity->getChangedFields());

			if (!$res->isSuccess())
			{
				$result->addErrors($res->getErrors());
			}
		}
		else
		{
			$res = $this->addInternal($entity->getFields());

			if ($res->isSuccess())
			{
				$entity->setId($res->getData()['ID']);
			}
			else
			{
				$result->addErrors($res->getErrors());
			}
		}
	}

	return $result;
}