crm.item.productrow.getAvailableForPayment
Получить неоплаченные товарные позиции объекта CRM
Описание
Метод получает товарные позиции объекта CRM, по которым клиенту еще не была выставлена оплата.
Параметры
ownerId
integer
обязательный
Идентификатор объекта CRM
ownerType
string
обязательный
Идентификатор типа объекта CRM. Передавайте Краткий символьный код типа
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ownerType":"D","ownerId":13144}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.productrow.getAvailableForPayment
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ownerType":"D","ownerId":13144,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.item.productrow.getAvailableForPayment
// 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
// Shape of the payload returned in result (match the "response handling" section of the page)
type GetAvailableForPaymentResult = {
productRows: {
id: number
ownerId: number
ownerType: string
productId: number
productName: string
price: number
priceAccount: number
priceExclusive: number
priceNetto: number
priceBrutto: number
quantity: number
discountTypeId: number
discountRate: number
discountSum: number
taxRate: number | null
taxIncluded: string
customized: string
measureCode: number
measureName: string
sort: number
xmlId: string
type: number
}[]
}
try {
const response = await $b24.actions.v2.call.make<GetAvailableForPaymentResult>({
method: 'crm.item.productrow.getAvailableForPayment',
params: {
ownerType: 'D',
ownerId: 13144,
},
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(result.productRows)
}
} 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 getAvailableForPayment() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'crm.item.productrow.getAvailableForPayment',
params: {
ownerType: 'D',
ownerId: 13144,
},
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(result.productRows)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getAvailableForPayment)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.crm.item.productrow.get_available_for_payment(
owner_type="D",
owner_id=13144,
).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(
'crm.item.productrow.getAvailableForPayment',
[
'ownerType' => 'D',
'ownerId' => 13144,
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error getting available product rows for payment: ' . $e->getMessage();
}
BX24.callMethod(
'crm.item.productrow.getAvailableForPayment', {
ownerType: 'D',
ownerId: 13144,
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'crm.item.productrow.getAvailableForPayment',
[
'ownerType' => 'D',
'ownerId' => 13144
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "crm.item.productrow.getAvailableForPayment", b24.Params{
"ownerType": "D",
"ownerId": 13144,
})
if err != nil {
return fmt.Errorf("crm.item.productrow.getAvailableForPayment: %w", err)
}
// Метод заворачивает ответ в объект с ключом "productRows".
raw, ok := b24.Unwrap(res.Result, "productRows")
if !ok {
return fmt.Errorf("в ответе нет ключа productRows")
}
var items []struct {
ID b24.ID `json:"id"`
OwnerID b24.ID `json:"ownerId"`
OwnerType string `json:"ownerType"`
ProductID b24.ID `json:"productId"`
ProductName string `json:"productName"`
Price int `json:"price"`
}
if err := json.Unmarshal(raw, &items); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
for _, it := range items {
fmt.Println(it.ID)
}
Ответ
HTTP-статус: 200
{
"result":{
"productRows":[
{
"id":17657,
"ownerId":13144,
"ownerType":"D",
"productId":9621,
"productName":"iphone 14",
"price":79999,
"priceAccount":79999,
"priceExclusive":79999,
"priceNetto":79999,
"priceBrutto":79999,
"quantity":3,
"discountTypeId":2,
"discountRate":0,
"discountSum":0,
"taxRate":null,
"taxIncluded":"Y",
"customized":"Y",
"measureCode":796,
"measureName":"шт",
"sort":10,
"xmlId":"sale_basket_8149",
"type":4
},
{
"id":17658,
"ownerId":13144,
"ownerType":"D",
"productId":9623,
"productName":"iphone 10xs",
"price":5550,
"priceAccount":5550,
"priceExclusive":5550,
"priceNetto":5550,
"priceBrutto":5550,
"quantity":3,
"discountTypeId":2,
"discountRate":0,
"discountSum":0,
"taxRate":null,
"taxIncluded":"Y",
"customized":"Y",
"measureCode":796,
"measureName":"шт",
"sort":20,
"xmlId":"sale_basket_8150",
"type":4
}
]
},
"time":{
"start":1716966560.3205,
"finish":1716966560.742781,
"duration":0.42228102684020996,
"processing":0.17676782608032227,
"date_start":"2024-05-29T10:09:20+03:00",
"date_finish":"2024-05-29T10:09:20+03:00"
}
}
Возвращаемые данные
result
object
Корневой элемент ответа
productRows
crm_item_product_row[]
Массив объектов, содержащий информацию о всех товарных позициях объекта CRM, по которым клиенту еще не была выставлена оплата
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":"ACCESS_DENIED",
"error_description":"Доступ запрещен"
}
| Код | Описание | Значение |
|---|---|---|
ACCESS_DENIED |
Доступ запрещен | |
100 |
Не переданы обязательные параметры | |
0 |
Другие ошибки (например, фатальные ошибки) |

