3

XML-RPC APIを使用して、サードパーティのアプリからMagento注文の出荷を作成しようとしています。注文増分IDのみを使用して「sales_order_shipment.create」を呼び出すと、すべてがうまく機能しますが、注文増分IDとアイテムと数量のセットの両方を使用して同じ呼び出しを行おうとすると、「要求された注文ではありません」と表示されます。存在します。」何故ですか?何が間違っているのですか?itemQuantityはどのタイプにする必要がありますか)

ここに私のコードがあります

package magentoapiclient;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;

public class XMLRPCAPIClient {

    public static void main(String[] args) {
        createShipment("100000005", 5, 1.0);
    }

    public static XmlRpcClient prepareClient() throws MalformedURLException {
        XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
        config.setServerURL(new URL("myHost"));
        XmlRpcClient client = new XmlRpcClient();
        client.setConfig(config);
        client.setTypeFactory(new MyTypeFactory(client));
        return client;
    }

    public static void createShipment(String orderIncrementId, int itemId, double quantity) {
        try {
            XmlRpcClient client = prepareClient();
            String sessionId = login("myUser", "myKey", client);
            System.out.println(sessionId);
            Object[] request = {orderIncrementId, new HashMap()};
            client.execute("call", new Object[]{sessionId, "sales_order_shipment.create", request});
            endSession(sessionId, client);
        } catch (XmlRpcException | MalformedURLException ex) {
            Logger.getLogger(XMLRPCAPIClient.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public static String login(String user, String password, XmlRpcClient client) throws XmlRpcException {
        String sessionId = (String) client.execute("login", new Object[]{user, password});
        return sessionId;
    }

    public static void endSession(String sessionToken, XmlRpcClient client) throws XmlRpcException {
        client.execute("endSession", new Object[]{sessionToken});
    }
}

あなたが行で見るように

Object [] request = {orderIncrementId、new HashMap()};

実際に注文アイテムIDと数量を含む必要があるhashMapを送信してみます。また、オブジェクトの配列を送信しようとしましたが、どのオブジェクトでも機能しません。マップもアレイも利用できない場合、代わりに何がありますか?

ご協力ありがとうございました

4

1 に答える 1

0

注文 ID と注文増分 ID は異なります。注文増分 ID を送信する必要があります。

http://www.magentocommerce.com/api/soap/sales/salesOrder/sales_order.info.html

于 2013-02-27T20:19:08.950 に答える