.NET WooCommerce Rest API: добавление товаров (товаров) на заказ - PullRequest
0 голосов
/ 03 декабря 2018

Я довольно новичок в программировании, но я создаю POS для своего веб-сайта WooCommerce с помощью оболочки .net.Пока все, что я хочу сделать, идет хорошо, кроме одной вещи.

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

  public static async Task Transaction(int[] productId)
    {
        try
        {
            //TODO: Check if product is in stock

            Dictionary<string,string> parameters = new Dictionary<string, string>();
            parameters["payment_method"] = "cash";
            parameters["set_paid"] = "true";
            parameters["line_items"] = ??

            await wc.Order.Add(new Order(), new Dictionary<string, string>(parameters));
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
            return;
        }
    }

Я не уверен, как добавить массив к этому параметру ["line_items"] или даже если бы я мог / должен сделать это.

В PHP этовыглядит так:

$data = [  
    'payment_method' => 'cash', 
    'set_paid' => true, 
    'line_items' => [
        [
           'product_id' => 93,
           'quantity' => 2
        ]
    ]
];
$woocommerce->post('orders', $data)

Я был бы очень признателен, если бы кто-нибудь здесь мог указать мне правильное направление.Спасибо.

1 Ответ

0 голосов
/ 03 декабря 2018

Вместо того, чтобы передавать словарь в качестве параметров, кажется, что у объекта Order есть свойство "line_items", принадлежащее объекту "List"

Так что попробуйте что-то вроде этого:

public static async Task Transaction(int[] productId)
    {
        try
        {
            //TODO: Check if product is in stock

            Dictionary<string,string> parameters = new Dictionary<string, string>();
            parameters["payment_method"] = "cash";
            parameters["set_paid"] = "true";
            parameters["line_items"] = ??
            var lineItems = new List<OrderLineItem>();
            lineItems.Add(new OrderLineItem());
            await wc.Order.Add(new Order(){ line_items = lineItems }, parameters);
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
            return;
        }
    }

IntelliSense должен быть в состоянии помочь вам оттуда:)

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