Magento 2 - Buat pesanan menggunakan REST API

24

Saya perlu menggunakan API REST Magento untuk membuat pesanan dari klien seluler. Dalam kasus saya, pihak seluler akan menerapkan pembayaran secara langsung menggunakan SDK PayPal. Yang perlu saya lakukan adalah membuat pesanan dengan mengatur metode pembayaran ke money order dan melakukan checkout tamu. API manakah yang harus saya gunakan untuk mencapai ini?

Paul
sumber

Jawaban:

27

Saya akhirnya menemukan jawabannya. Inilah yang saya lakukan.

Dapatkan satu produk

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

Buat kereta

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

Dapatkan Kereta

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

Tambahkan Produk Ke Troli

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 } }'

Tambahkan informasi pengiriman

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": "[email protected]",
            "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": "[email protected]",
            "prefix": "address_",
            "region_code": "MH"
        },
        "shipping_method_code": "flatrate",
        "shipping_carrier_code": "flatrate"
    }
}
 '

Dapatkan Metode Pembayaran

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

Tempatkan Order

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"
    }
}'                      
Paul
sumber
1
Saya membuat contoh skrip php berdasarkan jawaban Anda di sini, jika seseorang ingin mencoba ini melalui php: github.com/acolono/php-magento-api-sandbox
Nebel54
1
@zzpaul, Bagaimana cara mengirimkan data kartu kredit menggunakan metode payflow menggunakan cara di atas?
Rakesh Jesadiya
6

Saya kira ada sedikit kesalahan: Untuk menempatkan pesanan, pada tubuh, itu harus PAYMENTMETHOD kunci pertama, seperti ini:

{
    "paymentMethod": { 
        "method": "checkmo" 
    }
}
Marc Pont
sumber
4
  1. membuat keranjang kosong url: http: // www [yoursite] .com / istirahat / V1 / gerobak / tambang. panggilan: respon pasca: cartID misalnya: 4290

  2. Menambahkan item ke keranjang url: http: // www. [Yoursite] .com / istirahat / V1 / gerobak / tambang / item tubuh:

    {"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. Menambahkan billling Info url: http: // www. [Yoursite] .com / istirahat / V1 / gerobak / tambang / penagihan-address tubuh:

    {
    "address": {
    "city": "Springfield",
    "company": "iprag",
    "countryId": "IN",
    "email": "[email protected]",
    "firstname": "Jane",
    "lastname": "Doe",
    "postcode": "90210",
    "region": "UP",
    "saveInAddressBook": 1,
    "street": ["Street"],
    "telephone": "5551234"
    },
    "useForShipping": true
    }
  4. dapatkan metode pengiriman url: http: // www [situs Anda] .com / istirahat / V1 / kereta / tambang / metode pengiriman

    {
    "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. tambahkan info pengiriman url: http: // www. [situs Anda] .com / istirahat / V1 / kereta / tambang / badan informasi pengiriman :

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

respons: metode pembayaran dan detail keranjang

  1. URL tempat pesanan: http: // www. [Situs Anda] .com / istirahat / V1 / kereta / tambang / badan pemesanan :

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

respons: orderid

Manish
sumber
Bagaimana cara mengirimkan data kartu kredit menggunakan metode payflow menggunakan cara di atas?
Rakesh Jesadiya
@RakeshJesadiya, ada panggilan api Magento lainnya untuk mendapatkan semua metode pembayaran yang tersedia dan mengambil pesanan menggantikan metode di atas.
Manish
dapatkah Anda mencari dan memberi tahu saya tentang ini, magento.stackexchange.com/questions/188939/…
Rakesh Jesadiya
@paul, sudahkah Anda membuat pesanan menggunakan REST API dengan PayPal Pro dan Express ????
Ketan Panchal
@KetanPanchal No
Manish
0

Ada tutorial resmi yang menunjukkan cara melakukan pemesanan melalui REST API:
Tutorial pemrosesan pesanan untuk Magento 2.2

Mereka termasuk langkah-langkah yang sangat rinci:

  1. Konfigurasikan toko
  2. Dapatkan token admin
  3. Buat pelanggan
  4. Buat kutipan
  5. Tambahkan item ke troli
  6. Bersiap untuk checkout
  7. Buat pesanan
  8. Buat faktur
  9. Buat kiriman
  10. Terbitkan pengembalian dana sebagian

Tutorial termasuk cara menambahkan berbagai jenis produk, metode pengiriman berbeda dan banyak informasi bermanfaat lainnya dengan kode sampel.

jeffsama
sumber