catalog.product.offer.get
Получить значения полей вариации товара
Описание
Метод возвращает значения полей вариации товара по идентификатору.
Параметры
id
catalog_product_offer.id
обязательный
Идентификатор вариации товара.
Для получения идентификаторов вариаций товара необходимо использовать catalog.product.offer.list
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":1286}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/catalog.product.offer.get
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":1286,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/catalog.product.offer.get
// 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, ISODate } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type OfferResult = {
offer: {
id: number
name: string
active: string
available: string
bundle: string
canBuyZero: string
code: string
createdBy: number
dateActiveFrom: ISODate | null
dateActiveTo: ISODate | null
dateCreate: ISODate | null
detailPicture: { id: string; url: string; urlMachine: string } | null
detailText: string | null
detailTextType: string
height: number
iblockId: number
iblockSectionId: number | null
length: number
measure: number
modifiedBy: number
parentId: { value: string; valueId: string }
previewPicture: { id: string; url: string; urlMachine: string } | null
previewText: string | null
previewTextType: string
purchasingCurrency: string
purchasingPrice: string
quantity: number
quantityReserved: number
quantityTrace: string
sort: number
subscribe: string
timestampX: ISODate | null
type: number
vatId: number
vatIncluded: string
weight: number
width: number
xmlId: string
}
}
try {
const response = await $b24.actions.v2.call.make<OfferResult>({
method: 'catalog.product.offer.get',
params: {
id: 1286,
},
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('Product offer:', result.offer.id, result.offer.name, result.offer.active)
}
} 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 getProductOffer() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'catalog.product.offer.get',
params: {
id: 1286,
},
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('Product offer:', result.offer.id, result.offer.name, result.offer.active)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getProductOffer)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.catalog.product.offer.get(
bitrix_id=1286,
).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.offer.get',
[
'id' => 1286
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
// Нужная вам логика обработки данных
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error getting product offer: ' . $e->getMessage();
}
BX24.callMethod(
'catalog.product.offer.get', {
'id': 1286
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'catalog.product.offer.get',
[
'id' => 1286
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "catalog.product.offer.get", b24.Params{
"id": 1286,
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("catalog.product.offer.get: %w", err)
}
// Метод заворачивает ответ в объект с ключом "offer".
raw, ok := b24.Unwrap(res.Result, "offer")
if !ok {
return fmt.Errorf("в ответе нет ключа offer")
}
var item struct {
Active string `json:"active"`
Available string `json:"available"`
Bundle string `json:"bundle"`
CanBuyZero string `json:"canBuyZero"`
Code string `json:"code"`
CreatedBy int `json:"createdBy"`
}
if err := json.Unmarshal(raw, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.Active, item.Available)
Ответ
HTTP-статус: 200
{
"result": {
"offer": {
"active": "Y",
"available": "Y",
"bundle": "N",
"canBuyZero": "Y",
"code": "Tovar",
"createdBy": 1,
"dateActiveFrom": "2024-05-28T10:00:00+03:00",
"dateActiveTo": "2024-05-29T10:00:00+03:00",
"dateCreate": "2024-05-27T10:00:00+03:00",
"detailPicture": {
"id": "6538",
"url": "\/rest\/catalog.product.download?fields%5BfieldName%5D=detailPicture\u0026fields%5BfileId%5D=6538\u0026fields%5BproductId%5D=1286",
"urlMachine": "\/rest\/catalog.product.download?fields%5BfieldName%5D=detailPicture\u0026fields%5BfileId%5D=6538\u0026fields%5BproductId%5D=1286"
},
"detailText": null,
"detailTextType": "text",
"height": 100,
"iblockId": 24,
"iblockSectionId": null,
"id": 1286,
"length": 100,
"measure": 5,
"modifiedBy": 1,
"name": "Вариация товара",
"parentId": {
"value": "1275",
"valueId": "9867"
},
"previewPicture": {
"id": "6537",
"url": "\/rest\/catalog.product.download?fields%5BfieldName%5D=previewPicture\u0026fields%5BfileId%5D=6537\u0026fields%5BproductId%5D=1286",
"urlMachine": "\/rest\/catalog.product.download?fields%5BfieldName%5D=previewPicture\u0026fields%5BfileId%5D=6537\u0026fields%5BproductId%5D=1286"
},
"previewText": null,
"previewTextType": "text",
"property261": {
"value": "test",
"valueId": "9868"
},
"property262": [
{
"value": "test1",
"valueId": "9869"
},
{
"value": "test2",
"valueId": "9870"
}
],
"purchasingCurrency": "RUB",
"purchasingPrice": "1000.000000",
"quantity": 10,
"quantityReserved": 1,
"quantityTrace": "Y",
"sort": 100,
"subscribe": "Y",
"timestampX": "2024-06-17T12:29:59+03:00",
"type": 4,
"vatId": 1,
"vatIncluded": "Y",
"weight": 100,
"width": 100,
"xmlId": "1286"
}
},
"time": {
"start": 1718623874.271071,
"finish": 1718623874.871713,
"duration": 0.6006419658660889,
"processing": 0.1868131160736084,
"date_start": "2024-06-17T14:31:14+03:00",
"date_finish": "2024-06-17T14:31:14+03:00"
}
}
Возвращаемые данные
result
object
Корневой элемент ответа
offer
catalog_product_offer
Объект с информацией о вариации товара
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":200040300010,
"error_description":"Access Denied"
}
| Код | Описание | Значение |
|---|---|---|
200040300000 |
Информационный блок с указанным идентификатором не существует | |
200040300040 |
Недостаточно прав для чтения элемента информационного блока | |
200040300010 |
Недостаточно прав для чтения торгового каталога | |
100 |
Не указан параметр id |
|
0 |
Вариация товара не существует | |
0 |
Другие ошибки (например, фатальные ошибки) |

