Magento 2 - Створення замовлення за допомогою REST API


24

Мені потрібно використовувати API Magento REST для створення замовлення від мобільного клієнта. У моєму випадку мобільна сторона здійснюватиме оплату безпосередньо за допомогою SDK PayPal. Що мені потрібно зробити, це створити замовлення, встановивши спосіб оплати до грошового переказу та здійснивши замовлення гостей. Які API (API) я повинен використовувати для досягнення цього?

Відповіді:


27

Нарешті я зрозумів це. Ось що я роблю.

Отримайте єдиний товар

curl -g -X GET "$base_url/index.php/rest/V1/products/24-MB05/" \
-H "Authorization: Bearer $token" 

Створити кошик

curl -g -X POST "$base_url/index.php/rest/V1/guest-carts/" \
-H "Authorization: Bearer $token" 

Отримати кошик

curl -g -X GET "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5" \
-H "Authorization: Bearer $token" 

Додати товар у кошик

curl -g -X POST "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5/items" \
-H "Authorization: Bearer $token" \
-H "Content-Type:application/json" \
 -d '{ "cartItem": { "quote_id": "56241bf6bc084cd7589426c8754fc9c5", "sku": "24-MB05", "qty": 1 } }'

Додайте інформацію про доставку

curl -g -X POST "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5/shipping-information" \
    -H "Authorization: Bearer $token" \
    -H "Content-Type:application/json" \
     -d '
{
    "addressInformation": {
        "shippingAddress": {
            "region": "MH",
            "region_id": 0,
            "country_id": "IN",
            "street": [
                "Chakala,Kalyan (e)"
            ],
            "company": "abc",
            "telephone": "1111111",
            "postcode": "12223",
            "city": "Mumbai",
            "firstname": "Sameer",
            "lastname": "Sawant",
            "email": "abc@abc.com",
            "prefix": "address_",
            "region_code": "MH",
            "sameAsBilling": 1
        },
        "billingAddress": {
            "region": "MH",
            "region_id": 0,
            "country_id": "IN",
            "street": [
                "Chakala,Kalyan (e)"
            ],
            "company": "abc",
            "telephone": "1111111",
            "postcode": "12223",
            "city": "Mumbai",
            "firstname": "Sameer",
            "lastname": "Sawant",
            "email": "abc@abc.com",
            "prefix": "address_",
            "region_code": "MH"
        },
        "shipping_method_code": "flatrate",
        "shipping_carrier_code": "flatrate"
    }
}
 '

Отримайте спосіб оплати

curl -g -X GET "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5/payment-information" \
    -H "Authorization: Bearer $token" 

Розміщувати замовлення

curl -g -X PUT "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5/order" \
    -H "Authorization: Bearer $token" \
    -H "Content-Type:application/json" \
     -d '
{
    "paymentMethod": {
        "method": "checkmo"
    }
}'                      

1
Я створив зразок сценарію php на основі вашої відповіді тут, якщо хтось хоче спробувати це за допомогою php: github.com/acolono/php-magento-api-sandbox
Nebel54

1
@zzpaul, Як передати дані кредитної картки методом розрахункового потоку вище за допомогою способу?
Ракеш Єсадія

6

Я думаю, що є невелика помилка: для розміщення замовлення на тілі, це має бути оплатаМетод перший ключ, як це:

{
    "paymentMethod": { 
        "method": "checkmo" 
    }
}

4
  1. створити порожню URL-адресу кошика: http: // www. [yourite] .com / rest / V1 / carts / mine call: повідомлення відповіді: cartID, наприклад: 4290

  2. Додати товар у URL-адресу кошика: http: // www. [Tvojeite] .com / rest / V1 / візки / міна / корпус предметів :

    {"cartItem":{
        "sku":"JFCO00017",
        "qty":1,
        "name":"Devil May Cry III 3 Dante",
        "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. [Yourite] .com / rest / V1 / carts / mine / billing-address body:

    {
    "address": {
    "city": "Springfield",
    "company": "iprag",
    "countryId": "IN",
    "email": "customer_email@domain.com",
    "firstname": "Jane",
    "lastname": "Doe",
    "postcode": "90210",
    "region": "UP",
    "saveInAddressBook": 1,
    "street": ["Street"],
    "telephone": "5551234"
    },
    "useForShipping": true
    }
  4. отримати URL-методи доставки URL: http: // www. [yourite] .com / rest / V1 / візки / шахта / методи доставки

    {
    "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. [yourite] .com / rest / V1 / візки / шахта / інформація про доставку :

    {
     "addressInformation": {
     "billingAddress": {
        "city": "Springfield",
        "company": "iprag",
        "email": "customer_email@domain.com",
        "firstname": "Jane",
        "lastname": "Doe",
        "postcode": "335001",
        "region": "UP",
        "street": ["Street"],
        "telephone": "5551234"
    },
    "shippingAddress": {
        "city": "Springfield",
        "company": "iprag",
        "email": "customer_email@domain.com",
        "firstname": "Jane",
        "lastname": "Doe",
        "postcode": "335001",
        "region": "UP",
        "street": ["Street"],
        "telephone": "5551234"
      },
      "shippingCarrierCode": "flatrate",
      "shippingMethodCode": "flatrate"
    }
    }

відповідь: спосіб оплати та деталі кошика

  1. URL-адреса замовлення: http: // www. [Yoursite] .com / rest / V1 / візки / шахта / орган замовлення :

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

відповідь: упорядкований


Як передавати дані кредитної картки за допомогою методу розрахункового потоку вищезгаданим способом?
Ракеш Єсадія

@RakeshJesadiya, існує дзвінок api Magento для відпочинку, щоб отримати всі доступні способи оплати, отримати список і розмістити замовлення, що замінює вищевказаний спосіб.
Manish

можете поглянути і повідомити мені про це, magento.stackexchange.com/questions/188939/…
Ракеш Єсадія

@paul Ви створили замовлення за допомогою API REST з PayPal Pro та Express ????
Кетан Панчал

@KetanPanchal Ні
Manish

0

Існує офіційний підручник, який показує, як зробити замовлення через API REST:
Навчальний посібник з обробки замовлень для Magento 2.2

Вони включали дуже детальні кроки:

  1. Налаштуйте магазин
  2. Отримайте маркер адміністратора
  3. Створіть клієнта
  4. Створіть цитату
  5. Додайте товари в кошик
  6. Підготуйтеся до оформлення каси
  7. Створіть замовлення
  8. Створіть рахунок-фактуру
  9. Створіть вантаж
  10. Оформити часткове повернення коштів

Підручник включав, як додати різні види продуктів, різний спосіб доставки та багато іншої корисної інформації із зразками кодів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.