.net Magento SOAP API v2 shoppingCartProductAdd错误“;一项产品没有标识符或sku”;
尝试提交shoppingCartProductAdd API请求时出现“一项产品没有标识符或sku”错误 我同时提交了有效的SKU和产品ID。所以这个错误对我来说没有意义 下面是一些相关的代码.net Magento SOAP API v2 shoppingCartProductAdd错误“;一项产品没有标识符或sku”;,.net,vb.net,magento,.net,Vb.net,Magento,尝试提交shoppingCartProductAdd API请求时出现“一项产品没有标识符或sku”错误 我同时提交了有效的SKU和产品ID。所以这个错误对我来说没有意义 下面是一些相关的代码 Dim pendingCartItems As New List(Of shoppingCartProductEntity) If qtyAustin > 0 Then Dim ticketRequest As New shoppingCartProductE
Dim pendingCartItems As New List(Of shoppingCartProductEntity)
If qtyAustin > 0 Then
Dim ticketRequest As New shoppingCartProductEntity
ticketRequest.sku = "RH_00001"
ticketRequest.product_id = "2"
ticketRequest.qty = qtyAustin
pendingCartItems.Add(ticketRequest)
End If
AddToCart(pendingCartItems)
Public Sub AddToCart(ByVal cartItems As List(Of shoppingCartProductEntity))
mClient.shoppingCartProductAdd(mSession, mCart, cartItems.ToArray(), mStore)
End Sub
shoppingCartProductAdd的API文档:首先在Magento中启用
Magento admin -> System -> Configuration -> Services -> Magento Core API
然后将“WS-I合规性
”设置为“yes
”
从主机获取符合WS-I的WSDL
http://mymagentohost/index.php/api/v2_soap?wsdl=1
从配置SOAP/XML-RPC用户和角色
Magento admin -> System -> Web Services -> SOAP/XML-RPC-Users & SOAP/XML-RPC-Roles
并设置权限
现在您可以生成客户端代理类(Axis、Axis2、Microsoft WSDL工具等)
检查您的端点URL,它应该是
http://mymagentohost/index.php/api/v2_soap/index/
我的使用Axis2的功能测试代码
package magento;
import java.rmi.RemoteException;
import magento.MagentoServiceStub.EndSessionParam;
import magento.MagentoServiceStub.LoginParam;
import magento.MagentoServiceStub.LoginResponseParam;
import magento.MagentoServiceStub.ShoppingCartCreateRequestParam;
import magento.MagentoServiceStub.ShoppingCartCreateResponseParam;
import magento.MagentoServiceStub.ShoppingCartProductAddRequestParam;
import magento.MagentoServiceStub.ShoppingCartProductAddResponseParam;
import magento.MagentoServiceStub.ShoppingCartProductEntity;
import magento.MagentoServiceStub.ShoppingCartProductEntityArray;
import org.apache.axis2.AxisFault;
public class Test {
public static void main(String[] args) {
try {
MagentoServiceStub stub = new MagentoServiceStub();
LoginParam loginParam = new LoginParam();
loginParam.setUsername("myuser");
loginParam.setApiKey("1b6bf41e547e06b5b795d44b2f8f8f54");
LoginResponseParam p = stub.login(loginParam);
String sessionId = p.getResult();
ShoppingCartCreateRequestParam createParam = new ShoppingCartCreateRequestParam();
createParam.setSessionId(sessionId);
//param2.setStore("1");
ShoppingCartCreateResponseParam resp = stub.shoppingCartCreate(createParam);
int sr = resp.getResult();
ShoppingCartProductAddRequestParam prodcutAddParam = new ShoppingCartProductAddRequestParam();
prodcutAddParam.setSessionId(sessionId);
prodcutAddParam.setQuoteId(sr);
ShoppingCartProductEntityArray array = new ShoppingCartProductEntityArray();
ShoppingCartProductEntity producto = new ShoppingCartProductEntity();
producto.setSku("prueba");
producto.setQty(1);
array.addComplexObjectArray(producto);
prodcutAddParam.setProductsData(array);
ShoppingCartProductAddResponseParam prodAddResult = stub.shoppingCartProductAdd(prodcutAddParam);
System.out.println("product added? " + prodAddResult.getResult());
EndSessionParam endSessionParam = new EndSessionParam();
endSessionParam.setSessionId(sessionId);
stub.endSession(endSessionParam);
} catch (AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
希望这对您有所帮助。什么是McClient?您是否可以发布其他相关代码?您使用了哪种API方法?您的端点URL是什么?