catalog.product.download
Скачать файлы товара
Описание
Метод скачивает файлы товара торгового каталога по переданным параметрам.
Параметры
fields
object
обязательный
Значения полей для скачивания файлов товара
Параметр fields
fileId
integer
обязательный
Идентификатор зарегистрированного файла.
Для получения идентификаторов файлов товара необходимо использовать catalog.product.get, либо catalog.product.list
productId
catalog_product.id
обязательный
Идентификатор товара.
Для получения идентификаторов товаров необходимо использовать catalog.product.list
fieldName
string
обязательный
Имя поля (свойства или поля элемента информационного блока) в котором хранится файл.
DETAIL_PICTURE— детальная картинка, поле доступно в старой карточке товараPREVIEW_PICTURE— картинка для анонса, поле доступно в старой карточке товараPROPERTY_N— свойство, гдеN— идентификатор свойства, либо код свойства
Для получения существующих идентификаторов, либо кодов свойств товаров, необходимо использовать catalog.productProperty.list
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"fileId":6439,"productId":1243,"fieldName":"detailPicture"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/catalog.product.download
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"fileId":6439,"productId":1243,"fieldName":"detailPicture"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/catalog.product.download
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
try {
const response = await $b24.actions.v2.call.make<boolean>({
method: 'catalog.product.download',
params: {
fields: {
fileId: 6439,
productId: 1243,
fieldName: 'detailPicture',
},
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Download result:', result)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function downloadProduct() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'catalog.product.download',
params: {
fields: {
fileId: 6439,
productId: 1243,
fieldName: 'detailPicture',
},
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Download result:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', downloadProduct)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.catalog.product.download(
fields={
"fileId": 6439,
"productId": 1243,
"fieldName": "detailPicture",
},
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'catalog.product.download',
[
'fields' => [
'fileId' => 6439,
'productId' => 1243,
'fieldName' => 'detailPicture',
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
// Нужная вам логика обработки данных
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error downloading product file: ' . $e->getMessage();
}
BX24.callMethod(
'catalog.product.download',
{
fields: {
fileId: 6439,
productId: 1243,
fieldName: 'detailPicture',
}
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'catalog.product.download',
[
'fields' => [
'fileId' => 6439,
'productId' => 1243,
'fieldName' => 'detailPicture',
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "catalog.product.download", b24.Params{
"fields": b24.Params{
"fileId": 6439,
"productId": 1243,
"fieldName": "detailPicture",
},
})
if err != nil {
return fmt.Errorf("catalog.product.download: %w", err)
}
// Ответ приходит как json.RawMessage — разберите его
// в структуру под форму ответа, показанную ниже на этой странице.
fmt.Printf("%s\n", res.Result)
Обработка ошибок
HTTP-статус: 400
{
"error":0,
"error_description":"Required fields: fileId"
}
| Код | Описание | Значение |
|---|---|---|
200040300010 |
Недостаточно прав для чтения торгового каталога | |
0 |
Товар с указанным идентификатором не существует | |
0 |
Указанное свойство не существует, либо не является файловым | |
0 |
Файл с указанным идентификатором не существует | |
0 |
Не переданы обязательные поля | |
0 |
Другие ошибки (например, фатальные ошибки) |

