Пример загрузки заказа покупателя через REST API

Материал из МойСклад
Перейти к: навигация, поиск

Пример XML для создания нового заказа

<?xml version="1.0" encoding="UTF-8"?>
 
<customerOrder vatIncluded="true" applicable="true" sourceStoreId="existing-store-id" 
    payerVat="true" sourceAgentId="existing-counterparty-id" targetAgentId="existing-organization-id" 
    moment="2011-06-27T06:27:00+04:00" name="0001">
<customerOrderPosition vat="18" goodId="existing-good-id" quantity="4.0" discount="0.0">
<basePrice sumInCurrency="555000.0" sum="555000.0"/>
 
<reserve>0.0</reserve>
</customerOrderPosition>
</customerOrder>

В приведеннном XML необходимо заменить идентификаторами существующих объектов сервиса следующие строки:

строку existing-store-id на идентификатор склада
строку existing-counterparty-id на идентификатор контрагента
строку existing-organization-id на идентификатор организации
строку existing-good-id на идентификатор товара

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

Имя (атрибут name) для нового документа может быть не указано - в таком случае оно буде сгенерировано автоматически.

Дата (атрибут moment) для нового документа может быть не указана - в таком случае будет подставлен момент создания документа.

Пример XML для обновления существующего заказа

<?xml version="1.0" encoding="UTF-8"?>
 
<customerOrder vatIncluded="true" applicable="true" sourceStoreId="existing-store-id" 
    payerVat="true" sourceAgentId="existing-counterparty-id" 
    targetAgentId="existing-organization-id" moment="2011-06-27T06:27:00+04:00" name="0001">
<id>existing-customerorder-id</id>
<customerOrderPosition vat="18" goodId="existing-good-id" quantity="4.0" discount="0.0">
<id>existing-customerorder-position-id</id>
<basePrice sumInCurrency="555000.0" sum="555000.0"/>
 
<reserve>0.0</reserve>
</customerOrderPosition>
</customerOrder>

В приведеннном XML необходимо дополнительно к ранее описанным параметрам заменить идентификаторами существующих объектов сервиса следующие строки:

строку existing-customerorder-id на идентификатор заказа покупателя
строку existing-customerorder-position-id на идентификатор позиции заказа покупателя

Пример кода на PHP для загрузки заказа покупателя на сервис МойСклад

В приведенном ниже примере упоминается функция create_xml_body(). Подразумевается, что эта функция реализована и в качестве результата своей работы возвращает строку, содержащую XML для отправки на сервер.

$body = create_xml_body();
 
$sock = fsockopen("ssl://online.moysklad.ru", 443, $errno, $errstr, 30);
 
if (!$sock) die("$errstr ($errno)\n");
 
fputs($sock, "PUT /exchange/rest/ms/xml/CustomerOrder HTTP/1.1\r\n");
fputs($sock, "Host: online.moysklad.ru\r\n");
fputs($sock, "Authorization: Basic " . base64_encode("replace-it-by-username:replace-it-by-password") . "\r\n");
fputs($sock, "Content-Type: application/xml \r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "Content-Length: ".strlen($body)."\r\n");
fputs($sock, "Connection: close\r\n\r\n");
fputs($sock, "$body");
 
while ($str = trim(fgets($sock, 4096)));
 
$body = "";
 
while (!feof($sock))
    $body.= fgets($sock, 4096);
 
fclose($sock);
 
echo $body;

В приведеннном коде на PHP необходимо подставить имя и пароль пользователя, вместо которых в коде указаны строки:

строка replace-it-by-username - имя пользователя
строка replace-it-by-password - пароль пользователя
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты