Magento 2 - สร้างคำสั่งโดยใช้ REST API


24

ฉันต้องใช้ Magento REST API เพื่อสร้างคำสั่งซื้อจากไคลเอนต์มือถือ ในกรณีของฉันฝ่ายมือถือจะใช้การชำระเงินโดยตรงโดยใช้ PayPal SDK สิ่งที่ฉันต้องทำคือการสร้างคำสั่งซื้อโดยการตั้งค่าวิธีการชำระเงินเป็นธนาณัติและดำเนินการชำระเงินของแขก 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, วิธีส่งข้อมูลบัตรเครดิตโดยใช้วิธีการชำระเงินด้วยวิธีการข้างต้น?
Rakesh Jesadiya

6

ฉันคิดว่ามีข้อผิดพลาดเล็กน้อย: สำหรับการสั่งซื้อในร่างกายจะต้องมีการชำระเงินวิธีคีย์แรกเช่นนี้:

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

4
  1. สร้าง URL รถเข็นว่าง: http: // www. [yoursite]. com / พักผ่อน / V1 / รถเข็น / โทรฉัน : ตอบกลับโพสต์: cartID เช่น: 4290

  2. เพิ่มรายการลงใน url รถเข็น: http: // www. [yoursite] .com / ที่พัก / 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. [yoursite] .com / ที่พัก / V1 / รถเข็น / เหมือง / ร่างที่อยู่การเรียกเก็บเงิน :

    {
    "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 วิธีการจัดส่ง: http: // www. [yoursite] .com / ที่พัก / 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. [yoursite] .com / ที่พัก / 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 / สถานที่ / V1 / ตะกร้า / เหมือง / ร่างกายสั่งซื้อ :

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

การตอบสนอง: orderid


วิธีการส่งข้อมูลบัตรเครดิตโดยใช้วิธีการชำระเงินโดยใช้วิธีข้างต้น
Rakesh Jesadiya

@RakeshJesadiya มีการเรียก api เหลือวีโอไอพีที่จะได้รับวิธีการชำระเงินทั้งหมดที่มีอยู่ดึงรายการและสั่งซื้อแทนวิธีการดังกล่าวข้างต้น
Manish

คุณช่วยค้นหาและแจ้งให้เราทราบเกี่ยวกับเรื่องนี้magento.stackexchange.com/questions/188939/…
Rakesh Jesadiya

@paul คุณได้สร้างคำสั่งซื้อโดยใช้ REST API พร้อม PayPal Pro และ Express ????
Ketan Panchal

@KetanPanchal No
Manish

0

มีบทช่วยสอนอย่างเป็นทางการที่แสดงวิธีการสั่งซื้อผ่าน REST API:
บทแนะนำการประมวลผลคำสั่งสำหรับ Magento 2.2

พวกเขารวมขั้นตอนอย่างละเอียดมาก:

  1. กำหนดค่าร้านค้า
  2. รับโทเค็นของผู้ดูแลระบบ
  3. สร้างลูกค้า
  4. สร้างคำพูด
  5. เพิ่มรายการลงในรถเข็น
  6. เตรียมพร้อมสำหรับการชำระเงิน
  7. สร้างคำสั่งซื้อ
  8. สร้างใบแจ้งหนี้
  9. สร้างการจัดส่ง
  10. ออกเงินคืนบางส่วน

บทช่วยสอนรวมถึงวิธีเพิ่มประเภทผลิตภัณฑ์วิธีการจัดส่งที่แตกต่างกันและข้อมูลที่เป็นประโยชน์อื่น ๆ พร้อมรหัสตัวอย่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.