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?

Paul
quelle

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

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"
    }
}'                      
Paul
quelle
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" 
    }
}
Marc Pont
quelle
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": "[email protected]",
    "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": "[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"
    }
    }
    

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

Manish
quelle
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.

Jeffsama
quelle