Блог Горошко Андрея 1C-Битрикс,Bitrix24 Создать позицию с товаром, которого не существует на сайте (2 шт по цене 900 …

Создать позицию с товаром, которого не существует на сайте (2 шт по цене 900 …

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Создать позицию с товаром, которого не существует на сайте (2 шт по цене 900 …», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.

Создать позицию с товаром, которого не существует на сайте (2 шт по цене 900 руб)

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"orderId":5147,"productId":0,"name":"Пробный товар","quantity":2,"basePrice":1000,"price":900,"discountPrice":100,"customPrice":"Y","canBuy":"Y","weight":40,"measureCode":"768","measureName":"шт","sort":400,"xmlId":"BasketPositionId","dimensions":"a:3:{s:5:\"WIDTH\";i:244;s:6:\"HEIGHT\";i:100;s:6:\"LENGTH\";i:31;}","vatRate":10,"vatIncluded":"Y","productXmlId":"ProductKey","currency":"RUB"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/sale.basketitem.add
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"orderId":5147,"productId":0,"name":"Пробный товар","quantity":2,"basePrice":1000,"price":900,"discountPrice":100,"customPrice":"Y","canBuy":"Y","weight":40,"measureCode":"768","measureName":"шт","sort":400,"xmlId":"BasketPositionId","dimensions":"a:3:{s:5:\"WIDTH\";i:244;s:6:\"HEIGHT\";i:100;s:6:\"LENGTH\";i:31;}","vatRate":10,"vatIncluded":"Y","productXmlId":"ProductKey","currency":"RUB"},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/sale.basketitem.add
  • JS
    BX24.callMethod(
        "sale.basketitem.add",
        {
            fields: { // заполнены все поля
                orderId: 5147,
                productId: 0,
                name: 'Пробный товар',
                quantity: 2,
                basePrice: 1000,
                price: 900,
                discountPrice: 100,
                customPrice: 'Y',
                canBuy: 'Y',
                weight: 40,
                measureCode: '768',
                measureName: 'шт',
                sort: 400,
                xmlId: 'BasketPositionId',
                dimensions: 'a:3:{s:5:"WIDTH";i:244;s:6:"HEIGHT";i:100;s:6:"LENGTH";i:31;}', // сериализованный массив
                vatRate: 10,
                vatIncluded: 'Y',
                productXmlId: 'ProductKey',
                currency: 'RUB',
            }
        },
    )
        .then(
            function(result)
            {
                if (result.error())
                {
                    console.error(result.error());
                }
                else
                {
                    console.log(result.data());
                }
            },
            function(error)
            {
                console.info(error);
            }
        );
  • PHP
    require_once('crest.php');

    $result = CRest::call(
        'sale.basketitem.add',
        [
            'fields' =>
            [
                'orderId' => 5147,
                'productId' => 0,
                'name' => 'Пробный товар',
                'quantity' => 2,
                'basePrice' => 1000,
                'price' => 900,
                'discountPrice' => 100,
                'customPrice' => 'Y',
                'canBuy' => 'Y',
                'weight' => 40,
                'measureCode' => '768',
                'measureName' => 'шт',
                'sort' => 400,
                'xmlId' => 'BasketPositionId',
                'dimensions' => 'a:3:{s:5:"WIDTH";i:244;s:6:"HEIGHT";i:100;s:6:"LENGTH";i:31;}',
                'vatRate' => 10,
                'vatIncluded' => 'Y',
                'productXmlId' => 'ProductKey',
                'currency' => 'RUB',
            ]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Результат

{
    "result": {
        "basketItem": {
            "basePrice": 1000,
            "canBuy": "Y",
            "currency": "RUB",
            "customPrice": "Y",
            "dateInsert": "2024-04-23T18:51:28+02:00",
            "dateUpdate": "2024-04-23T18:51:28+02:00",
            "dimensions": "a:3:{s:5:\"WIDTH\";i:244;s:6:\"HEIGHT\";i:100;s:6:\"LENGTH\";i:31;}",
            "discountPrice": 100,
            "id": 6791,
            "measureCode": "768",
            "measureName": "шт",
            "name": "Пробный товар",
            "orderId": 5147,
            "price": 900,
            "productId": 0,
            "productXmlId": "ProductKey",
            "properties": [],
            "quantity": 2,
            "reservations": [],
            "sort": 400,
            "vatIncluded": "Y",
            "vatRate": 10,
            "weight": 40,
            "xmlId": "BasketPositionId"
        }
    },
    "total": 1,
    "time": {
        "start": 1713891087.689427,
        "finish": 1713891089.165652,
        "duration": 1.4762251377105713,
        "processing": 0.8683149814605713,
        "date_start": "2024-04-23T18:51:27+02:00",
        "date_finish": "2024-04-23T18:51:29+02:00",
        "operating": 0
    }
}

💡 Экспертное мнение и рекомендации

Ключевые выводы по теме «Создать позицию с товаром, которого не существует на сайте (2 шт по цене 900 …»:

Использование современных стандартов D7 при работе с создать позицию позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Получить список пользовательских полей сделок crm.deal.userfield.listПолучить список пользовательских полей сделок crm.deal.userfield.list

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Получить список пользовательских полей сделок crm.deal.userfield.list». Мы подготовили подробный разбор принципов работы и развернутые примеры

Как использовать метод SDK voximplant.line.outgoing.set в Битрикс24Как использовать метод SDK voximplant.line.outgoing.set в Битрикс24

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Как использовать метод SDK voximplant.line.outgoing.set в Битрикс24». Вы узнаете экспертные методики работы с

Удалить задачу из Избранного task.item.deletefromfavoriteУдалить задачу из Избранного task.item.deletefromfavorite

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Удалить задачу из Избранного task.item.deletefromfavorite», разберем архитектурные особенности