Публикация

подписчиков: 4 Подписаться
0
Avatar

Создание Заказа покупателя с Позициями в теле запроса

Здравствуйте!

Создать пустой заказ получилось. А вот заказ с Позициями никак не получается. Возвращает ошибку 404. Писал все как в документации во вкладке: "Пример запроса на создание Заказа покупателя с позициями в теле запроса."

Внутри двух нижних функциях происходит кодирование json и отправка запроса.

В чем может быть проблема?

// добавим заказ
$data = [
'name' => "$order_id" . "-test",
'organization' => [
'meta' => [
'href' => 'https://online.moysklad.ru/api/remap/1.1/entity/organization/8af62ce3-79b7-11e7-7a69-8f55000a48ae',
'type' => 'organization',
'mediaType' => 'application/json'
]
],
"agent" => [
"meta" => [
"href" => "https://online.moysklad.ru/api/remap/1.1/entity/counterparty/8b00c557-79b7-11e7-7a69-8f55000a48c7",
"type" => "counterparty",
"mediaType" => "application/json"
]
],
'positions' => [
[
"quantity" => 2,
"price" => 20000,
"assortment" => [
"meta" => [
'href' => "https://online.moysklad.ru/api/remap/1.1/entity/product/$id",
'type' => "product",
'mediaType' => "application/json"
],

]
]
]
];
$curl = $this->requestSklad($curl, 'https://online.moysklad.ru/api/remap/1.1/entity/customerorder', 'POST', $data);

$response = $this->execSklad($curl);
Борис Гузеев

Войдите в службу, чтобы оставить комментарий.

Комментариев: 7

0
Avatar

Выяснил. Я вместо ID указывал UUID для позиции товара. У каждого товара есть как UUID так и ID. И для добавления позиций заказа можно указывать только ID. Для меня не совсем понятно зачем такое усложнение - зачем еще одно свойство: UUID? Причем при выгрузке Товаров есть именно UUID, а ID нет. 

Получается чтобы создать Позиции заказа нужно найти нужные Продукты зная их UUID или Код чтобы узнать их ID и затем только формировать запрос на добавление.

Либо способ 2: Добавить в нашей программе каждому Товару поле MoySkladID и записать все айдишники чтобы не нужно было каждый раз их узнавать и получается 1 запрос чисто на добавление вместо 2х.

Не сильно ли я загоняюсь, а то может есть бестпрактисес по этой задаче?
Смысл такой, что заказы создаются в нашей программе и должны быть отправлены в МойСклад для дальнейшего учета и пробития фискального чека

Борис Гузеев 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Да, для товаров (услуг, комплектов, модификаций) фактически есть два id. Один из них можно увидеть в web-интерфейсе в строке запроса (в АПИ это uuidHref). Другой используется в АПИ (и выводится в поле id).

Это связано с внутренней реализацией.

Если сделать запрос конкретного товара, используя id из основного интерфейса, то вернется редирект на запрос товара с id, используемым в АПИ. Но для использования товаров в запросах нужно указывать id, который отдает АПИ.

Можете ли подробнее написать, что имеете в виду под выгрузкой товаров.

Dtrufanov 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Выгрузка товаров я имею ввиду - Экспорт в Эксель из бэкофиса склада. И там есть возможность выгрузить именно UUID а вот ID - нет. Я так понимаю что UUID используется для технических целей, а для интеграции оно особо не нужен. Было бы здорово если бы было можно выгружать именно ID сущности.

Например, я в своей системе добавил поле  - ID товара в МоемСкладе. Для того чтобы можно было добавлять Позиции товара в Заказе покупателя одним POST запросом. Но пришлось сделать небольшое дополнение: сначала отправляется GET запрос по поиску Товара по полю Code (который соответствует ID в нашей программе тк я импортировал все товары из нашей программы в МойСклад), чтобы узнать его ID, сохранить и затем отправить POST на добавление. Все последующие разы, естественно, будет уже просто POST, но всё же это получилось усложнение. Поэтому у меня пожелание небольшое :) 

Либо чтобы запросы на изменение и добавление работали с UUID 

Или чтобы при Экспорте выгружался именно ID так как нужен именно он для манипуляции с объектами сущности

Борис Гузеев 0 проголосовали
Действия с комментариями Постоянная ссылка
1
Avatar

Добрый день!

 

По поводу того, чтобы запросы на изменение и добавление работали с UUID - такого изменения в АПИ не планируется.

Чтобы при Экспорте выгружался именно ID - рассмотрим такую возможность, в виде дополнительного поля при экспорте

Екатерина Евтухова 1 голос
Действия с комментариями Постоянная ссылка
0
Avatar

Добрый день!

 

К сожалению после анализа подобной возможности пришли к выводу, что она требуется только единичным пользователям, и было решено ее не реализовывать.

 

Предлагаю вам пользоваться получением ID товара в web-интерфейсе с помощью поля uuidHref в АПИ, как уже было описано выше, и соотносить товары по нему.

Екатерина Евтухова 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Такая же проблема, но указываю всё правильно. Но как можем видеть, id указан верно.

 [json] => Array
        (
            [0] => stdClass Object
                (
                    [meta] => stdClass Object
                        (
                            [href] => https://online.moysklad.ru/api/remap/1.1/entity/product/9d9ab032-cd38-11e8-9109-f8fc000919c0
                            [metadataHref] => https://online.moysklad.ru/api/remap/1.1/entity/product/metadata
                            [type] => product
                            [mediaType] => application/json
                            [uuidHref] => https://online.moysklad.ru/app/#good/edit?id=9d9a9b52-cd38-11e8-9109-f8fc000919be
                        )
                    [id] => 9d9ab032-cd38-11e8-9109-f8fc000919c0
                    [accountId] => 56d51b9b-cc5a-11e8-9109-f8fc00000c9b
                    [owner] => stdClass Object
                        (
                            [meta] => stdClass Object
                                (
                                    [href] => https://online.moysklad.ru/api/remap/1.1/entity/employee/56eef2ab-cc5a-11e8-9ff4-34e800020624
                                    [metadataHref] => https://online.moysklad.ru/api/remap/1.1/entity/employee/metadata
                                    [type] => employee
                                    [mediaType] => application/json
                                    [uuidHref] => https://online.moysklad.ru/app/#employee/edit?id=56eef2ab-cc5a-11e8-9ff4-34e800020624
                                )
                        )
                    [shared] => 1
                    [group] => stdClass Object
                        (
                            [meta] => stdClass Object
                                (
                                    [href] => https://online.moysklad.ru/api/remap/1.1/entity/group/56d57df0-cc5a-11e8-9109-f8fc00000c9c
                                    [metadataHref] => https://online.moysklad.ru/api/remap/1.1/entity/group/metadata
                                    [type] => group
                                    [mediaType] => application/json
                                )
                        )
                    [version] => 0
                    [updated] => 2018-10-11 12:32:47
                    [name] => Установочная коробка СП D68х45мм, без саморезов, синяя, IP20,  инд. штрихкод, TDM
                    [description] => Описание
                    [code] => 00001
                    [externalCode] => LbcAiEigjNsqawBkzK6-H2
                    [archived] =>
                    [pathName] =>
                    [syncId] => 4ebd0a93-2135-4701-9dea-23cb9ea0b8d7
                    [image] => stdClass Object
                        (
                            [meta] => stdClass Object
                                (
                                    [href] => https://online.moysklad.ru/api/remap/1.1/download/617dcf37-540c-4f8e-8b0b-2d55481a4352
                                    [mediaType] => application/octet-stream
                                )
                            [title] => 4ebd0a93-2135-4701-9dea-23cb9ea0b8d7
                            [filename] => 4ebd0a93-2135-4701-9dea-23cb9ea0b8d7.jpg
                            [size] => 60528
                            [updated] => 2018-10-11 12:32:48
                            [miniature] => stdClass Object
                                (
                                    [href] => https://online.moysklad.ru/api/remap/1.1/download/617dcf37-540c-4f8e-8b0b-2d55481a4352?miniature=true
                                    [mediaType] => image/png
                                )
                            [tiny] => stdClass Object
                                (
                                    [href] => https://online.moysklad.ru/static/tinyimage/56d51b9b-cc5a-11e8-9109-f8fc00000c9b/tinyimage/54c7ca75-b25d-404b-be7c-7079b1581bb7/t.png
                                    [mediaType] => image/png
                                )
                        )
                    [minPrice] => 0
                    [salePrices] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [value] => 609
                                    [currency] => stdClass Object
                                        (
                                            [meta] => stdClass Object
                                                (
                                                    [href] => https://online.moysklad.ru/api/remap/1.1/entity/currency/571105e0-cc5a-11e8-9ff4-34e800020653
                                                    [metadataHref] => https://online.moysklad.ru/api/remap/1.1/entity/currency/metadata
                                                    [type] => currency
                                                    [mediaType] => application/json
                                                    [uuidHref] => https://online.moysklad.ru/app/#currency/edit?id=571105e0-cc5a-11e8-9ff4-34e800020653
                                                )
                                        )
                                    [priceType] => Цена продажи
                                )
                        )
                    [buyPrice] => stdClass Object
                        (
                            [value] => 0
                            [currency] => stdClass Object
                                (
                                    [meta] => stdClass Object
                                        (
                                            [href] => https://online.moysklad.ru/api/remap/1.1/entity/currency/571105e0-cc5a-11e8-9ff4-34e800020653
                                            [metadataHref] => https://online.moysklad.ru/api/remap/1.1/entity/currency/metadata
                                            [type] => currency
                                            [mediaType] => application/json
                                            [uuidHref] => https://online.moysklad.ru/app/#currency/edit?id=571105e0-cc5a-11e8-9ff4-34e800020653
                                        )
                                )
                        )
                    [article] => SQ1402-0932
                    [weight] => 0
                    [volume] => 0
                    [barcodes] => Array
                        (
                            [0] => 2000000000145
                        )
                    [modificationsCount] => 0
                    [isSerialTrackable] =>
                )
        )
    [code] => 200
)
</pre><pre>Array
(
    [name] => 5
    [moment] => 2018-10-11 12:32:48
    [applicable] =>
    [vatEnabled] =>
    [agent] => Array
        (
            [meta] => Array
                (
                    [href] => https://online.moysklad.ru/api/remap/1.1/entity/counterparty/a917f1fc-cc71-11e8-9ff4-34e80002d893
                    [type] => counterparty
                    [mediaType] => application/json
                )
        )
    [organization] => Array
        (
            [meta] => Array
                (
                    [href] => https://online.moysklad.ru/api/remap/1.1/entity/organization/570f5435-cc5a-11e8-9ff4-34e80002064c
                    [type] => organization
                    [mediaType] => application/json
                )
        )
    [state] => Array
        (
            [meta] => Array
                (
                    [href] => https://online.moysklad.ru/api/remap/1.1/entity/customerorder/metadata/states/bdcde93a-ccc6-11e8-9107-5048000643c9
                    [type] => state
                    [mediaType] => application/json
                )
        )
    [positions] => Array
        (
            [0] => Array
                (
                    [quantity] => 1
                    [price] => 500
                    [assortment] => Array
                        (
                            [meta] => Array
                                (
                                    [href] => https://online.moysklad.ru/api/remap/1.1/entity/product/9d9ab032-cd38-11e8-9109-f8fc000919c0
                                    [type] => product
                                    [mediaType] => application/json
                                )
                        )
                    [reserve] => 1
                )
        )
)

 

Константин 0 проголосовали
Действия с комментариями Постоянная ссылка