2014-12-15 2 views
7

저는 WooCommerce 상점을위한 기본 모바일 Android 앱을 개발할 계획입니다. 모바일 앱용 WooCommerce API

나는 여기에 자신의 REST API 문서를 살펴했다 : 이미 테스트하기 시작 http://docs.woocommercev2.apiary.io/ 을하지만 난 다른 통화

을 수행 할 때

GET /orders은의이 가게의 모든 주문을 반환 가정 해 봅시다.

누구나 API를 사용하여 최종 사용자 앱을 어떻게 개발할 수 있는지 알 수 없습니다. 예를 들어

:

GET /products 

PUT /order

GET /order (로그인 한 사용자의 주문을받을) (로그인 한 사용자에 대한 순서를 만들 수) 어떤 생각이 감사

:

미리 감사드립니다.

+0

U 어떤 해결책을 가지고에 요청을해야합니까? –

+1

@DilipRajkumar 유일한 해결책은 할 수있을 때 woocommerce 후크를 사용하여 직접 작성하는 것입니다. 다른 해결책을 찾지 못했습니다./ –

+0

건초 oAuth를 사용하여 대답을 찾았습니다. 집에 돌아 가면 바로 업데이트 할 것입니다. .. 모든 기능이 .. 그러나 우리는 우리가 필요로하는 대부분을 얻을 수 있습니다. –

답변

0

문서에 따르면 예상 데이터 형식은 JSON (이전 XML 또는 Json과 대조적으로)이지만 유감스럽게도 각 종점에 대해 어떤 데이터 구조가 예상되는지는 더 이상 설명하지 않습니다.

REST 요청 URI

POST http://private-anon-0fe404a22-woocommercev2.apiary-mock.com/coupons?fields=id,code&filter=filter[limit]=100&page=2 
(문서에서 붙여 넣기)

자바 코드

Client client = ClientBuilder.newClient(); 
Entity payload = Entity.json("{ 'coupon': { 'code': 'autumn-is-coming', 'type': 'fixed_cart', 'amount': '4.00', 'individual_use': true, 'description': '' }}"); 
Response response = client.target("http://private-anon-0fe404a22-woocommercev2.apiary-mock.com") 
    .path("/coupons{?fields,filter,page}") 
    .request(MediaType.APPLICATION_JSON_TYPE) 
    .post(payload); 

System.out.println("status: " + response.getStatus()); 
System.out.println("headers: " + response.getHeaders()); 
System.out.println("body:" + response.readEntity(String.class)); 
가 :

여기에 쿠폰을 만들기위한 현재 문서에서 POST 요청 형식의 유일한 예입니다

Json 응답

{ 
    "coupon": { 
    "id": 21548, 
    "code": "augustheat", 
    "type": "fixed_cart", 
    "created_at": "2014-08-30T19:25:48Z", 
    "updated_at": "2014-08-30T19:25:48Z", 
    "amount": "5.00", 
    "individual_use": false, 
    "product_ids": [], 
    "exclude_product_ids": [], 
    "usage_limit": null, 
    "usage_limit_per_user": null, 
    "limit_usage_to_x_items": 0, 
    "usage_count": 0, 
    "expiry_date": "2014-08-30T21:22:13Z", 
    "apply_before_tax": true, 
    "enable_free_shipping": false, 
    "product_category_ids": [], 
    "exclude_product_category_ids": [], 
    "exclude_sale_items": false, 
    "minimum_amount": "0.00", 
    "maximum_amount": "0.00", 
    "customer_emails": [], 
    "description": "Beat the August heat with $5 off your purchase!" 
    } 
} 

http://docs.woocommercev2.apiary.io/#reference/coupons/coupons-collection/create-a-coupon

API가 모든 관련 엔드 포인트에 대해 POST 요청을 승인한다고 주장한 것을 고려하면 구매 주문이 있어야 가능합니다. http://docs.woothemes.com/document/woocommerce-rest-api/

https://www.npmjs.com/package/woocommerce 사용이 링크, woocommerce과 상호 작용하는 모든 방법을 가지고 -

+0

문서가 작성중인 것으로 보이므로 가까운 장래에 다른 예제가있을 수도 있습니다. REST API를 알아 냈습니다. 진행 상황을 확인하면 내 대답이 업데이트됩니다. 댓글에 더 적합하지만 아직 댓글을 달 수 없습니다. – TNTanuki

+0

TNTanuki 답장을 보내 주셔서 감사합니다. 그러나 제가 지적한 바는 최종 사용자를위한 API 였기 때문에 시스템의 모든 리소스에 액세스 할 수 있습니다. 단일 사용자가 자신의 쇼핑 카드와 세부 정보를 사용하여 로그인하고 구매할 수있는 API를 생각하고있었습니다. –

+0

클라이언트 측에서 자격 증명 키를 사용할 수 없도록 하시겠습니까? 로그인하는 것에 대한 우려가있는 경우 API를 사용할 때 로그인 할 필요가 없습니다. - 방금 시도했습니다. 나는 원래 질문이 지금 무엇인지 잘 모르겠습니다. 어쩌면 며칠을 작업 한 지금 다시 할 수 있겠습니까? 나는이 API를 배우면서 진전을 이루었다. – TNTanuki

0

나는 이것이 당신이 백엔드에서 woocommerce에 대한 API를 사용 할 수

우선 단계를 제안합니다. 그렇지 않으면 가벼운 미들웨어를 사용하여 woocommerce 서버 &을 JSON 데이터를 앱에 연결하는 데 도움이됩니다.

이온 프레임 워크를 사용하여 서비스를 작성하고 얇은 미들웨어 클라이언트와 대화하십시오. 항상 로컬 서버를 사용하지 않도록 로컬 저장소를 사용하여 데이터를 캐시하는 것을 잊지 마십시오. - Contus M 통신은

1

http (그리고 SSL 프로토콜과 같은 https) 요청의 경우, OAthu 1.0A을 인증 프레임 워크에서 사용해야합니다. oauth 1에 대한 많은 라이브러리가 있습니다.

  1. 종속 SCOP에 app/build.gradle이 추가 : 자바에서 0A, 내가 사용 그래서 scribeJava

    에서 다음과 같이 할 수있어

    compile 'org.scribe:scribe:1.3.5'

  2. 새 클래스 으로 Woocom merceApiOAuth 서비스의 공급자입니다. 중요. 당신은 OAuth를 제공

    public static class WooCommerceApi extends org.scribe.builder.api.DefaultApi10a { 
    
        @Override 
        public org.scribe.model.Verb getRequestTokenVerb() 
        { 
         return org.scribe.model.Verb.POST; 
        } 
    
        @Override 
        public String getRequestTokenEndpoint() { 
         return "http://www.your-domain.com/wc-auth/authorize"; 
        } 
    
        @Override 
        public String getAccessTokenEndpoint() { 
         return "none"; 
        } 
    
        @Override 
        public String getAuthorizationUrl(org.scribe.model.Token requestToken) { 
         return "none"; 
        } 
    } 
    
  3. 을 구현하기위한 DefaultApi10a에서
    public 클래스를 사용해야합니다 그리고 당신은 Thread 또는 AsyncTask

    String restURL = "http://www.your-domain.com/wp-json/wc/v1/products/"; 
    OAuthService service = new ServiceBuilder() 
        .provider(WooCommerceApi.class) 
        .apiKey(CONSUMER_KEY) //Your Consumer key 
        .apiSecret(CONSUMER_SECRET) //Your Consumer secret 
        .scope("API.Public") //fixed 
        .signatureType(SignatureType.QueryString) 
        .build(); 
    OAuthRequest request = new OAuthRequest(Verb.GET, restURL); 
    Token accessToken = new Token("", ""); //not required for context.io 
    service.signRequest(accessToken, request); 
    Response response = request.send(); 
    Log.d("OAuthTask",response.getBody()); 
    
+0

귀하의 위의 답변은 완벽하고 핵심입니다. 내가 묻는 한가지 더, GET 메서드에 대해서만 위의 솔루션을 작성했습니다. POST를 수행하고 매개 변수를 추가하려면 어떻게해야합니까? 어떤 도움을 주시면 감사하겠습니다. –