Magento 2 - Créer une commande à l'aide de l'API REST

24

J'ai besoin d'utiliser l'API REST Magento pour créer une commande à partir d'un client mobile. Dans mon cas, le côté mobile implémentera le paiement directement à l'aide du SDK PayPal. Ce que je dois faire, c'est créer une commande en définissant le mode de paiement sur mandat et effectuer un paiement en tant qu'invité. Quelle (s) API dois-je utiliser pour y parvenir?

Paul
la source

Réponses:

27

Je l'ai finalement compris. Voici ce que je fais.

Obtenez un seul produit

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

Créer un panier

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

Obtenez le panier

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

Ajouter un produit au panier

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

Ajouter des informations d'expédition

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

Obtenir la méthode de paiement

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

Passer la commande

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
la source
1
J'ai créé un exemple de script php basé sur votre réponse ici, si quelqu'un veut l'essayer via php: github.com/acolono/php-magento-api-sandbox
Nebel54
1
@zzpaul, Comment transmettre les données de carte de crédit en utilisant la méthode de paiement en utilisant la méthode ci-dessus?
Rakesh Jesadiya
6

Je pense qu'il y a une petite erreur: pour passer commande, sur le corps, il faut que ce soit paiementMéthode de la première clé, comme ceci:

{
    "paymentMethod": { 
        "method": "checkmo" 
    }
}
Marc Pont
la source
4
  1. créer l'url du panier vide: http: // www. [votre site] .com / rest / V1 / carts / mine call: post réponse: cartID par exemple: 4290

  2. Ajouter un article à l'url du panier: http: // www. [Votre site] .com / rest / V1 / carts / mine / items body:

    {"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. Ajouter l'URL des informations de facturation: http: // www. [Votre site] .com / rest / V1 / carts / mine / billing-address 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. obtenir l'url des méthodes d'expédition: http: // www. [votre site] .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. ajouter l'URL des informations d'expédition: http: // www. [votre site] .com / reste / V1 / chariots / mine / corps d' informations d'expédition :

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

réponse: méthode de paiement et détail du panier

  1. URL de commande: http: // www. [Votre site] .com / rest / V1 / carts / mine / corps de la commande :

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

réponse: orderid

Manish
la source
Comment transmettre les données de carte de crédit en utilisant la méthode de paiement en utilisant la méthode ci-dessus?
Rakesh Jesadiya
@RakeshJesadiya, il existe un appel api pour Magento pour que tous les modes de paiement disponibles récupèrent la liste et passent la commande en remplaçant la méthode ci-dessus.
Manish
pouvez-vous rechercher et me le faire savoir, magento.stackexchange.com/questions/188939/…
Rakesh Jesadiya
@paul avez-vous créé une commande à l'aide de l'API REST avec PayPal Pro et Express ????
Ketan Panchal
@KetanPanchal No
Manish
0

Il y a un tutoriel officiel montrant comment passer une commande via l'API REST:
Tutoriel de traitement des commandes pour Magento 2.2

Ils comprenaient des étapes très détaillées:

  1. Configurer le magasin
  2. Obtenez le jeton d'administration
  3. Créer un client
  4. Créer un devis
  5. Ajouter des articles au panier
  6. Préparez votre commande
  7. Créer une commande
  8. Créer une facture
  9. Créer un envoi
  10. Émettre un remboursement partiel

Le didacticiel comprenait comment ajouter différents types de produits, différentes méthodes d'expédition et de nombreuses autres informations utiles avec des exemples de codes.

jeffsama
la source