Magento 2 - Bestellung mit REST API erstellen


24

Ich muss die Magento-REST-API verwenden, um eine Bestellung von einem mobilen Client zu erstellen. In meinem Fall implementiert die mobile Seite die Zahlung direkt mit PayPal SDK. Ich muss eine Bestellung erstellen, indem ich die Zahlungsmethode auf Zahlungsanweisung setze und eine Gastkasse durchführe. Welche APIs soll ich verwenden, um dies zu erreichen?

Antworten:


27

Ich habe es endlich herausgefunden. Hier ist was ich tue.

Holen Sie sich ein einzelnes Produkt

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

Warenkorb erstellen

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

Warenkorb abrufen

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

Produkt zum Warenkorb hinzufügen

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

Versandinformationen hinzufügen

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

Zahlungsmethode abrufen

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

Bestellung aufgeben

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
Ich habe ein Beispiel-PHP-Skript basierend auf Ihrer Antwort hier erstellt, wenn jemand dies über PHP ausprobieren möchte: github.com/acolono/php-magento-api-sandbox
Nebel54

1
@zzpaul, Wie übergebe ich Kreditkartendaten mithilfe der oben beschriebenen Zahlungsmethode?
Rakesh Jesadiya

6

Ich denke, es gibt einen kleinen Fehler: Um eine Bestellung auf den Körper zu platzieren, muss die Zahlungsmethode der erste Schlüssel sein, wie folgt:

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

4
  1. Erstellen Sie eine leere Warenkorb-URL: http: // www. [yoursite] .com / rest / V1 / carts / mine

  2. Artikel in den Warenkorb gelegt url: http: // www . [Ihre_site] .com / rest / V1 / Karren / mine / Artikel Körper:

    {"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. Add billling info url: http: // www. [Yoursite] .com / rest / V1 / carts / mine / Rechnungsadresse 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. Holen Sie sich die URL der Versandmethode: http: // www. [yoursite] .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. addieren Info url Versand: http: // www . [ihre_site] .com / rest / V1 / Karren / mine / Versand-Informationen Körper:

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

Antwort: Zahlungsmethode und Warenkorbdetails

  1. Bestellort URL: http: // www. [Yoursite] .com / rest / V1 / carts / mine / Bestelltext :

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

Antwort: orderid


Wie werden Kreditkartendaten mit der oben beschriebenen Zahlungsmethode weitergegeben?
Rakesh Jesadiya

@ RakeshJesadiya, es gibt einen Magento Rest API-Aufruf, um alle verfügbaren Zahlungsmethoden abzurufen und die Bestellung aufzugeben, die die oben genannte Methode ersetzt.
Manish

können Sie nachschlagen und mich darüber informieren, magento.stackexchange.com/questions/188939/…
Rakesh Jesadiya

@paul Haben Sie eine Bestellung über die REST-API mit PayPal Pro und Express erstellt?
Ketan Panchal

@ KetanPanchal No
Manish

0

Es gibt ein offizielles Tutorial, in dem gezeigt wird, wie eine Bestellung über die REST-API getätigt wird:
Tutorial zur Bestellabwicklung für Magento 2.2

Sie enthielten sehr detaillierte Schritte:

  1. Konfigurieren Sie den Speicher
  2. Holen Sie sich das Admin-Token
  3. Erstellen Sie einen Kunden
  4. Erstellen Sie ein Angebot
  5. Artikel in den Warenkorb legen
  6. Zur Kasse vorbereiten
  7. Erstellen Sie eine Bestellung
  8. Erstellen Sie eine Rechnung
  9. Erstellen Sie eine Sendung
  10. Erteilen Sie eine teilweise Rückerstattung

Das Tutorial beinhaltete das Hinzufügen verschiedener Arten von Produkten, verschiedene Versandmethoden und viele andere nützliche Informationen mit Beispielcodes.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.