Как разместить заказ с помощью Magento2 API?

Я ищу полный «счастливый путь» для размещения заказа с использованием REST API Magento2. Пока это все шаги, которые я выполнил. Что еще мне не хватает?

  1. Создайте пользователя: [POST] /rest/V1/customers

  2. Войти (создать токен): [POST] /rest/V1/integration/customer/token

  3. Получить категории продуктов для навигации: [GET] /rest/V1/categories

  4. Получить продукты:

    4.1 Получить продукты категории: [GET] /rest/V1/categories/{category_id}/products

    4.2 Или найдите продукт: [GET] /rest/V1/products

  5. Создать корзину: [POST] /rest/V1/carts/mine

  6. Добавьте товары в корзину: [POST] /rest/V1/carts/mine/items

  7. Получить информацию об оплате корзины [GET] /rest/V1/carts/mine/payment-information

  8. ...

Что еще мне нужно сделать, чтобы разместить заказ?


person awavi    schedule 18.11.2015    source источник
comment
Вы сделали еще один шаг и создали отгрузку для заказа? Я не могу понять, как отправить правильные параметры для создания отправки. Я могу редактировать существующие, но не могу создавать новые. Интересно, разобрались ли вы.   -  person Tim Trampedach    schedule 07.04.2016
comment
Извините, что я этого не сделал. Я продаю только виртуальные продукты.   -  person awavi    schedule 09.04.2016


Ответы (2)


  1. создать пустой URL корзины: http://www.xxxxxx.com/rest/V1/carts/mine вызов: ответ на сообщение: cartID, например: 4290

  2. Добавьте товар в корзину URL: http://www.xxxxxx.com/rest/V1/carts/mine/items тело:

    {"cartItem":{
      "sku":"JFCO00017","qty":1,"name":"Devil May Cry III 3 Dante           Cosplay           Costume","price":81.55,"product_type":"simple","quote_id":"4290","product_option":{"extension_attributes":{"custom_options":[{"option_id":"thumbnail","option_value":"\/d\/e\/devilmaycryiii3dantecosplay_1_.jpg"},{"option_id":"color_2","option_value":"Red"},{"option_id":"google_size","option_value":"xxs"}]}}}
    }
    
  3. Добавьте URL-адрес платежной информации: http://www.xxxxxx.com/rest/V1/carts/mine/billing-address тело:

    {
    "address": {
    "city": "noida",
    "company": "iprag",
    "countryId": "IN",
    "email": "[email protected]",
    "firstname": "Manish",
    "lastname": "Kumar",
    "postcode": "201301",
    "region": "UP",
    "saveInAddressBook": 1,
    "street": ["D-84"],
    "telephone": "8802xxxx90"
    },
    "useForShipping": true
    }
    
  4. получить URL-адрес методов доставки: http://www.xxxxxx.com/rest/V1/carts/mine/shipping-methods

    {
    "carrier_code": "flatrate",
    "method_code": "flatrate",
    "carrier_title": "Flat Rate",
    "method_title": "Fixed",
    "amount": 10,
    "base_amount": 10,
    "available": true,
    "error_message": "",
    "price_excl_tax": 10,
    "price_incl_tax": 10
    

    }

  5. добавить URL-адрес информации о доставке: http://www.xxxxxx.com/rest/V1/carts/mine/shipping-information тело:

    {
     "addressInformation": {
     "billingAddress": {
        "city": "noida",
        "company": "iprag",
        "email": "[email protected]",
        "firstname": "Manish",
        "lastname": "Kumar",
        "postcode": "335001",
        "region": "UP",
        "street": ["D-84"],
        "telephone": "9413433217"
    },
    "shippingAddress": {
        "city": "noida",
        "company": "iprag",
        "email": "[email protected]",
        "firstname": "Manish",
        "lastname": "Kumar",
        "postcode": "335001",
        "region": "UP",
        "street": ["D-84"],
        "telephone": "9413433217"
      },
       "shippingCarrierCode": "flatrate",
      "shippingMethodCode": "flatrate"
    }
    }
    

ответ: способ оплаты и информация о корзине

  1. URL места заказа: http://www.xxxxxx.com/rest/V1/carts/mine/order body :

    {
     "paymentMethod":{"method":"checkmo"},
     "shippingMethod":
        {
          "method_code":"flatrate",
    
          "carrier_code":"flatrate",
          "additionalProperties":{}
    
        }
    
    }
    

ответ: порядковый номер

person Manish    schedule 02.12.2016
comment
Не могли бы вы ответить на этот вопрос? stackoverflow.com/questions/41158020/ - person Muhsin Keloth; 16.12.2016
comment
конечно, у меня такая же проблема. - person Manish; 16.12.2016
comment
Шаг № 4: получить методы доставки. При выполнении запроса GET, как указано в документах magento 2 rest API (quoteShippingMethodManagementV1: /V1/carts/mine/shipping-methods), его предоставление {message:%fieldName является обязательным полем., параметры: {fieldName:cartId}} в качестве отклик. В документации не указан обязательный параметр. Пожалуйста помоги!! - person Abdul Moiz; 19.07.2017
comment
Нужно ли мне передавать 'cartId' вместо 'mine' в каждом URL-адресе?? - person Abdul Moiz; 19.07.2017
comment
И когда я выполняю последний шаг, где мы размещаем заказ на /V1/carts/mine/order (/V1/carts/{cartId}/order, я заменил «мой» на cartId, иначе он говорит, что cartId является обязательным полем) это отвечает "{message:Пожалуйста, введите адрес электронной почты клиента.}" - person Abdul Moiz; 19.07.2017
comment
Перед получением вызова метода доставки убедитесь, что на веб-сайте внешнего интерфейса создана корзина клиента. - person Manish; 20.07.2017
comment
Когда я добавляю адреса для выставления счетов, то в ответ на методы доставки выдается ошибка, что адрес доставки не установлен. - person MOHD TAHIR; 29.09.2017
comment
не могли бы вы поделиться кодом, который вы использовали для всех вышеперечисленных операций. БОЛЬШАЯ помощь - person Ajith; 21.03.2018
comment
Я хочу разместить заказ на виртуальные продукты. Я получаю сообщение об ошибке в способе доставки. Кто-нибудь может помочь? - person Ahsan Horani; 10.03.2020

Хорошо, я наконец понял это правильно.

  1. Сохраните платежную информацию и создайте заказ [POST] /rest/V1/carts/mine/payment-information
person awavi    schedule 19.11.2015
comment
Можете ли вы предоставить больше информации о полезной нагрузке здесь? Например, как вы устанавливаете адрес доставки? - person Martin Wickman; 18.04.2016
comment
как установить адрес доставки для цитирования с помощью API? - person Sunil Patel; 06.05.2016
comment
Я считаю, что есть предыдущий шаг (до 8.), но я еще не пробовал, потому что я продаю только виртуальные продукты. Пожалуйста, исправьте мой ответ, когда найдете его, чтобы он мог помочь другим. - person awavi; 06.05.2016
comment
да, есть два способа разместить заказ через rest API 1. [POST] /rest/V1/carts/mine/payment-information 2. [POST] /rest/V1/carts/mine/order - person Manish; 16.12.2016
comment
Если я опубликую это, то мне нужно предварительно установить платежную информацию? - person awavi; 16.12.2016
comment
Ссылаясь на пункт 7. вы упомянули в своем вопросе, когда я выполняю [GET] для /rest/V1/carts/mine/payment-information, поэтому magento отвечает мне {message:%fieldName является обязательным полем., параметры :{имя поля:cartId}}. Нужно ли мне передавать cartId вместо моего в URL-адресе?? Пожалуйста помоги!! - person Abdul Moiz; 19.07.2017