sale.shipmentitem.update
Изменить элемент в табличной части отгрузки
Описание
Метод sale.shipmentitem.update обновляет элемент коллекции табличной части отгрузки.
Параметры
id
sale_order_shipment_item.id
обязательный
Идентификатор элемента табличной части отгрузки
fields
object
обязательный
Значения полей для обновления элемента табличной части отгрузки
Параметр fields
quantity
double
обязательный
Количество товара
xmlId
string
необязательный
Внешний идентификатор.
Можно использовать для синхронизации текущей товарной позиции доставки с аналогичной позицией во внешней системе
Примеры запроса
-X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":7,"fields":{"quantity":5,"xmlId":"myNewXmlId"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.shipmentitem.update
-X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":7,"fields":{"quantity":5,"xmlId":"myNewXmlId"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/sale.shipmentitem.update
// 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 ShipmentItemUpdateResult = {
shipmentItem: {
basketId: number
dateInsert: ISODate
id: number
orderDeliveryId: number
quantity: number
reservedQuantity: number
xmlId: string
}
}
try {
const response = await $b24.actions.v2.call.make<ShipmentItemUpdateResult>({
method: 'sale.shipmentitem.update',
params: {
id: 7,
fields: {
quantity: 5,
xmlId: 'myNewXmlId',
},
},
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.shipmentItem)
}
} 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 updateShipmentItem() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'sale.shipmentitem.update',
params: {
id: 7,
fields: {
quantity: 5,
xmlId: 'myNewXmlId',
},
},
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.shipmentItem)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', updateShipmentItem)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
fields = {
"quantity": 5,
"xmlId": "myNewXmlId",
}
try:
bitrix_response = client.sale.shipmentitem.update(
bitrix_id=7,
fields=fields,
).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(
'sale.shipmentitem.update',
[
'id' => 7,
'fields' => [
'quantity' => 5,
'xmlId' => 'myNewXmlId',
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
// Нужная вам логика обработки данных
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error updating shipment item: ' . $e->getMessage();
}
BX24.callMethod(
'sale.shipmentitem.update', {
id: 7,
fields: {
quantity: 5,
xmlId: 'myNewXmlId',
}
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'sale.shipmentitem.update',
[
'id' => 7,
'fields' => [
'quantity' => 5,
'xmlId' => 'myNewXmlId',
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "sale.shipmentitem.update", b24.Params{
"id": 7,
"fields": b24.Params{
"quantity": 5,
"xmlId": "myNewXmlId",
},
})
if err != nil {
return fmt.Errorf("sale.shipmentitem.update: %w", err)
}
// Метод заворачивает ответ в объект с ключом "shipmentItem".
raw, ok := b24.Unwrap(res.Result, "shipmentItem")
if !ok {
return fmt.Errorf("в ответе нет ключа shipmentItem")
}
var item struct {
BasketID b24.ID `json:"basketId"`
DateInsert string `json:"dateInsert"`
ID b24.ID `json:"id"`
OrderDeliveryID b24.ID `json:"orderDeliveryId"`
Quantity int `json:"quantity"`
ReservedQuantity int `json:"reservedQuantity"`
}
if err := json.Unmarshal(raw, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.BasketID, item.DateInsert)
Ответ
HTTP-статус: 200
{
"result":{
"shipmentItem":{
"basketId":2716,
"dateInsert":"2024-04-11T09:10:34+03:00",
"id":7,
"orderDeliveryId":2431,
"quantity":5,
"reservedQuantity":0,
"xmlId":"myNewXmlId"
}
},
"time":{
"start":1712819636.302217,
"finish":1712819637.183715,
"duration":0.8814980983734131,
"processing":0.6984810829162598,
"date_start":"2024-04-11T10:13:56+03:00",
"date_finish":"2024-04-11T10:13:57+03:00"
}
}
Возвращаемые данные
result
object
Корневой элемент ответа
shipmentItem
sale_order_shipment_item
Объект с информацией об обновленном элементе табличной части отгрузки
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":0,
"error_description":"Required fields: name"
}
| Код | Описание | Значение |
|---|---|---|
201240400001 |
Обновляемый элемент табличной части отгрузки не найден | |
200040300020 |
Недостаточно прав для обновления элемента табличной части отгрузки | |
100 |
Не указан параметр id |
|
100 |
Не указан или пустой параметр fields |
|
0 |
Не переданы обязательные поля структуры fields |
|
0 |
Другие ошибки (например, фатальные ошибки) |

