使用android从Magento Soap v2中检索大小,颜色等属性

时间:2015-12-06 08:32:29

标签: android magento soap

我一直在开发一个magento商店的Android应用程序...我已成功检索产品列表,产品详细信息等...然后我尝试检索下面定义的其他产品属性...不幸的是,它返回产品详细信息不包含我要求的其他属性...我已经提到了以下问题

Link 1 Link 2 Link 3

我试过的代码是在下面添加......

private void getProductDetails(final String productID, String type)
{
    SoapObject request = new SoapObject(NAMESPACE,"catalogProductInfo");
    request.addProperty("sessionId", sessionID);
    request.addProperty("productId", productID);
    request.addProperty("attributes", "color");
    request.addProperty("attributes", "size");
    GetSoapObject getSoapObject= new GetSoapObject(request) {
        @Override
        public void receiveData(Object object) {
            String price = null;
            productAttributes= null;
            String specialpricestring = null;
            productAttributes= new ArrayList<>();
            SoapObject soapObject= (SoapObject) object;
            String status= soapObject.getProperty("status").toString();
            if(status.equals("1")) {
                String productName = soapObject.getProperty("name").toString();
                price = soapObject.getProperty("price").toString();
                String description = soapObject.getProperty("description").toString();
    };
    getSoapObject.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "");
}

这是我的GetSoapObject类

package com.test.myapplication;

import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import java.util.Objects;


public abstract class GetSoapObject extends AsyncTask implements CallbackReciever {

private SoapObject request;
private SoapSerializationEnvelope env;
private HttpTransportSE androidHttpTransport;
private static final String URL = "http://192.168.57.1:8888/Magento/index.php/api/v2_soap";

public GetSoapObject(SoapObject request)
{
    this.request= request;
}

public abstract void receiveData(Object object);
@Override
protected void onPreExecute() {
    super.onPreExecute();
}

@Override
protected Object doInBackground(Object[] params) {
    Object productList = null;
    try {

        env = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);

        env.dotNet = false;
        env.xsd = SoapSerializationEnvelope.XSD;
        env.enc = SoapSerializationEnvelope.ENC;

        env.setOutputSoapObject(request);

        androidHttpTransport = new HttpTransportSE(URL);

        androidHttpTransport.call("", env);
        productList = env.getResponse();

    }
    catch (SoapFault fault) {
        Log.v("TAG", "soapfault = " + fault.getMessage());
    }
    catch (Exception e) {
        e.printStackTrace();
        Log.d("Product Details Error: ", e.toString());
    }

    return productList;
}

@Override
protected void onPostExecute(Object o) {
    super.onPostExecute(o);
    receiveData(o);
}
}

返回的SoapObject

catalogProductReturnEntity{product_id=297; sku=wsd000; set=13; type=simple; categories=ArrayOfString{item=13; }; websites=ArrayOfString{item=1; }; created_at=2013-03-05T13:48:15+04:00; updated_at=2014-03-08 12:24:58; type_id=simple; name=Essex Pencil Skirt; description=Knee length skirt. Sits on natural waist. Fitted through the hip. Exposed waist belt loops. Hidden zip and hook and eye closure in back. Full lining. Wool/cotton/polyester. Machine wash.; short_description=A classic pencil skirt that feels refreshingly modern. Crafted from our lighweight refined wool, the Jane skirt is an essential piece for on-the-go professionals.; weight=1.0000; status=1; url_key=essex-pencil-skirt; url_path=essex-pencil-skirt.html; visibility=1; category_ids=ArrayOfString{item=13; }; has_options=0; price=185.0000; tax_class_id=2; tier_price=catalogProductTierPriceEntityArray{}; options_container=container1; }

注意:    我在localhost中使用它,我使用的是android ksoap2库

0 个答案:

没有答案