Как добавить товар со значениями пользовательских полей
Пример заполнения различных свойств при добавлении товара.
Для работы примера создайте папку /pictures рядом с исполняемым файлом примера и заполнитее её картинками с названиями "1.jpg" - "6.jpg". Также в начале примера необходимо исправить значения из примера на ваши:
- $propertyIDSelect - ID не множественного списочного свойства.
- $propertySelectValueID - ID значения не множественного списочного свойства.
- $propertyIDMultiSelect - ID множественного списочного свойства.
- $propertyMultiSelectValueID - ID значений множественного списочного свойства.
- $propertyIDFile - ID не множественного свойства типа файл.
- $propertyIDMultiFile - ID множественного свойства типа файл.
Внимание! Для использования примера настройте работу класса CRest и подключите файл crest.php в файлах, где используется данный класс. Подробнее.
<? $propertyIDSelect = 106; $propertySelectValueID = 85; $propertyIDMultiSelect = 105; $propertyMultiSelectValueID = [79,80,82]; $propertyIDFile = 107; $propertyFilePathToPicture = 'pictures/1.jpg';//relative or full path on server $propertyIDMultiFile = 108; $propertyMultiFilePathToPicture = [//relative or full path on server 'pictures/2.jpg', 'pictures/3.jpg', 'pictures/4.jpg', ]; $standardPreviewPicturePath = 'pictures/5.jpg';//relative or full path on server $standardDetailPicturePath = 'pictures/6.jpg';//relative or full path on server $arFields = [ 'NAME' => 'Example product 2', 'CURRENCY_ID' => 'USD', 'PRICE' => 4900, 'SORT' => 500 ]; if($propertyIDSelect > 0 && $propertySelectValueID > 0) { $arFields[ 'PROPERTY_' . $propertyIDSelect ] = $propertySelectValueID; } if($propertyIDMultiSelect > 0 && is_array($propertyMultiSelectValueID) && count($propertyMultiSelectValueID) > 0) { $arFields[ 'PROPERTY_' . $propertyIDMultiSelect ] = $propertyMultiSelectValueID; } if($propertyIDFile > 0 && !empty($propertyFilePathToPicture) && file_exists($propertyFilePathToPicture)) { $fileName = end(explode('/', $propertyFilePathToPicture)); $arFields[ 'PROPERTY_' . $propertyIDFile ] = [ "fileData" => [ $fileName, base64_encode(file_get_contents($propertyFilePathToPicture)) ] ]; } if($propertyIDMultiFile > 0 && is_array($propertyMultiFilePathToPicture) && count($propertyMultiFilePathToPicture) > 0) { foreach($propertyMultiFilePathToPicture as $path){ if(file_exists($path)) { $fileName = end(explode('/', $path)); $arFields[ 'PROPERTY_' . $propertyIDMultiFile ][] = [ "fileData" => [ $fileName, base64_encode(file_get_contents($path)) ] ]; } } } if(!empty($standardPreviewPicturePath) && file_exists($standardPreviewPicturePath)) { $fileName = end(explode('/', $standardPreviewPicturePath)); $arFields[ 'PREVIEW_PICTURE' ] = [ "fileData" => [ $fileName, base64_encode(file_get_contents($standardPreviewPicturePath)) ] ]; } if(!empty($standardDetailPicturePath) && file_exists($standardDetailPicturePath)) { $fileName = end(explode('/', $standardDetailPicturePath)); $arFields[ 'DETAIL_PICTURE' ] = [ "fileData" => [ $fileName, base64_encode(file_get_contents($standardDetailPicturePath)) ] ]; } $result = CRest ::call( 'crm.product.add', [ 'fields' => $arFields ] ); ?>
© «Битрикс», 2001-2024, «1С-Битрикс», 2024