Magento 2 - REST API kullanarak sipariş yaratın


24

Bir mobil istemciden sipariş oluşturmak için Magento REST API'sini kullanmam gerekiyor. Benim durumumda, mobil taraf ödemeyi doğrudan PayPal SDK kullanarak gerçekleştirecektir. Yapmam gereken şey, ödeme yöntemini havale olarak ayarlayarak bir sipariş oluşturmak ve konuk bir ödeme yapmak. Bunu başarmak için hangi API'ları kullanmalıyım?

Yanıtlar:


27

Sonunda anladım. İşte ne yapıyorum.

Tek bir ürün alın

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

Sepet oluştur

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

Sepeti Al

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

Sepete Sepete Ekle

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

Nakliye bilgisi ekle

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

Ödeme Yöntemi Al

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

Sipariş Vermek

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
Birisi php aracılığıyla denemek isterse, cevabınıza dayanarak örnek bir php betiği oluşturdum: github.com/acolono/php-magento-api-sandbox
Nebel54

1
@zzpaul, Yukarıdaki yöntemi kullanarak ödeme yöntemini kullanarak kredi kartı verisi nasıl iletilir?
Rakesh Jesadiya

6

Ben küçük bir hata olduğunu düşünüyorum: Sipariş vermek için, vücutta, ödeme olmak zorunda.

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

4
  1. boş sepet oluştur url: http: // www. [siteniz] .com / rest / V1 / carts / mine araması: yanıt gönder: cartID örneğin: 4290

  2. Sepetinize bir ürün ekle url: http: // www. [Siteniz] .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. Fatura bilgileri URL'si ekleyin: http: // www. [Siteniz] .com / rest / V1 / arabaları / maden / fatura adresi gövdesi:

    {
    "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. gönderi yöntemlerini alın url: http: // www. [siteniz] .com / dinlenme / V1 / arabaları / maden / nakliye yöntemleri

    {
    "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. gönderi bilgisi ekle url: http: // www. [siteniz] .com / rest / V1 / arabaları / maden / nakliye bilgileri organı:

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

yanıt: ödeme yöntemi ve alışveriş sepeti detayı

  1. Yer siparişi URL'si: http: // www. [Siteniz] .com / rest / V1 / carts / mine / order vücut:

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

cevap: orderid


Yukarıdaki şekilde ödeme yöntemi kullanılarak kredi kartı verileri nasıl aktarılır?
Rakesh Jesadiya

@RakeshJesadiya, mevcut tüm ödeme yöntemlerinin listesini getirmesini ve yukarıdaki yöntemi değiştirerek sipariş vermesini sağlamak için bir Magento dinlenme api çağrısı var.
Manish,


@paul, PayPal Pro ve Express ile REST API kullanarak bir sipariş yarattınız mı ????
Ketan Panchal

@KetanPanchal No
Manish

0

Bir yoktur resmi öğretici : REST API aracılığıyla sipariş nasıl gösteren
Magento 2.2 için Sipariş işleme öğretici

Çok ayrıntılı adımlar içeriyorlardı:

  1. Mağazayı yapılandır
  2. Yönetici belirtecini al
  3. Bir müşteri yarat
  4. Teklif oluştur
  5. Sepete ürün ekle
  6. Ödeme için hazırlanın
  7. Sipariş oluştur
  8. Bir fatura oluştur
  9. Bir gönderi oluştur
  10. Kısmi geri ödeme yapma

Öğretici, farklı ürün çeşitlerinin, farklı gönderim yöntemlerinin ve örnek kodlarla daha birçok yararlı bilginin nasıl ekleneceğini içerir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.