마 젠토 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 / rest / V1 / carts / mine 전화 : 응답 게시 : cartID 예 : 4290

  2. 장바구니 URL에 품목 추가 : http : // www. [yoursite] .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. 청구 정보 URL 추가 : http : // www. [yoursite] .com / rest / V1 / carts / mine / billing-address 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. 배송 방법 URL 받기 : 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. 배송 정보 URL 추가 : http : // www. [yoursite] .com / rest / V1 / carts / mine / shipping-information body :

    {
     "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 / rest / V1 / carts / mine / order body :

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

응답 : orderid


위의 방법을 사용하여 페이 플로우 방법을 사용하여 신용 카드 데이터를 전달하는 방법은 무엇입니까?
Rakesh Jesadiya

@RakeshJesadiya, 사용 가능한 모든 지불 방법을 목록을 가져오고 위의 방법을 대체하여 주문을하기 위해 Magento rest api 호출이 있습니다.
Manish

당신은 찾아 볼 나를,이 알 수 있도록 할 수 magento.stackexchange.com/questions/188939/...
케쉬 Jesadiya

@paul PayPal Pro 및 Express에서 REST API를 사용하여 주문을 생성 했습니까?
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.