Magento 2.3: Как программно установить количество для нескольких источников (инвентаризация нескольких источников)


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

Author: Jancy Abraham, 2019-01-07

3 answers

Я не знаю, получите вы, ребята, решение или нет, но вот оно.

Вот решение https://magento.stackexchange.com/a/262873/49826

 1
Author: anonymous, 2019-05-22 10:47:58

Я просто использую вызов API, чтобы создать или обновить запас. код следующий:

$access_token = '4v81lfihtkqanfdr6798zj352qyuyx1x';

$url = 'http://magento2.local/index.php/rest/V1/inventory/source-items';

$ch = curl_init($url);

$body = json_encode(['sourceItems' =>[
        ['source_code' => 'default', 'sku' => '24-MB01', 'quantity'=>555, 'status'=>1],
        ['source_code' => 'la', 'sku' => '24-MB01', 'quantity' => 222, 'status' => 1],
        ['source_code' => 'default', 'sku' => '24-MB04', 'quantity'=>444, 'status'=>1],
        ['source_code' => 'la', 'sku' => '24-MB04', 'quantity' => 111, 'status' => 1],
        ['source_code' => 'default', 'sku' => '24-MB03', 'quantity'=>333, 'status'=>1],
        ['source_code' => 'la', 'sku' => '24-MB03', 'quantity' => 111, 'status' => 1],
]]);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer ' . $access_token));

$result = curl_exec($ch);

var_dump($result);
 1
Author: Jeff Yu, 2019-02-20 23:43:25

Вы можете использовать интерфейс SourceItemsSaveInterface для следующих целей: https://github.com/magento-engcom/msi/blob/2.3-develop/app/code/Magento/InventoryApi/Api/SourceItemsSaveInterface.php

interface SourceItemsSaveInterface
{
    /**
     * Save Multiple Source item data
     *
     * @param \Magento\InventoryApi\Api\Data\SourceItemInterface[] $sourceItems
     * @return void
     * @throws \Magento\Framework\Exception\InputException
     * @throws \Magento\Framework\Validation\ValidationException
     * @throws \Magento\Framework\Exception\CouldNotSaveException
     */
    public function execute(array $sourceItems): void;
}

И передайте массив \Magento\inventoryapi\Api\Data\sourceiteminterface[] в качестве параметра, каждый элемент источника представляет инвентаризацию определенного продукта в определенном источнике.

 0
Author: Igor Minyaylo, 2019-01-07 16:25:33