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?

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

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

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

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": "customer_email@domain.com",
    "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": "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"
    }
    }

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


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.