Как добавить два массива в один объект мыла для адреса фактурирования и доставки в magento?
Я использую magento soap api для добавления адреса доставки и выставления счетов в качестве
"SoapObject item1 = новый SoapObject (NAMESPACE," shoppingCartCustomerAddressEntity ");
PropertyInfo pinfo = new PropertyInfo();
pinfo.setName("mode");
pinfo.setValue("shipping");
pinfo.setType(String.class);
item1.addProperty(pinfo);
pinfo = new PropertyInfo();
pinfo.setName("firstname");
pinfo.setValue(firstname1);
pinfo.setType(String.class);
item1.addProperty(pinfo);
pinfo = new PropertyInfo();
pinfo.setName("lastname");
pinfo.setValue(lastname1);
pinfo.setType(String.class);
item1.addProperty(pinfo);
pinfo = new PropertyInfo();
pinfo.setName("company");
pinfo.setValue(company1);
pinfo.setType(String.class);
item1.addProperty(pinfo);
pinfo = new PropertyInfo();
pinfo.setName("street");
pinfo.setValue(street1);
pinfo.setType(String.class);
item1.addProperty(pinfo);
pinfo = new PropertyInfo();
pinfo.setName("city");
pinfo.setValue(city1);
pinfo.setType(String.class);
item1.addProperty(pinfo);
pinfo = new PropertyInfo();
pinfo.setName("region");
pinfo.setValue(region1);
pinfo.setType(String.class);
item1.addProperty(pinfo);
pinfo = new PropertyInfo();
pinfo.setName("postcode");
pinfo.setValue(postcode1);
pinfo.setType(String.class);
item1.addProperty(pinfo);
pinfo = new PropertyInfo();
pinfo.setName("country_id");
pinfo.setValue(country1);
pinfo.setType(String.class);
item1.addProperty(pinfo);
pinfo = new PropertyInfo();
pinfo.setName("telephone");
pinfo.setValue(telephone1);
pinfo.setType(String.class);
item1.addProperty(pinfo);
pinfo = new PropertyInfo();
pinfo.setName("fax");
pinfo.setValue(fax1);
pinfo.setType(String.class);
item1.addProperty(pinfo);
pinfo = new PropertyInfo();
pinfo.setName("is_default_shipping");
pinfo.setValue(1);
pinfo.setType(Integer.class);
item1.addProperty(pinfo);
SoapObject entityArray = new SoapObject(NAMESPACE, "shoppingCartCustomerAddressEntityArray");
entityArray.addProperty("customer",item1);
SoapObject item2 = новый SoapObject (NAMESPACE, "shoppingC" );
PropertyInfo pinfo1 = new PropertyInfo();
pinfo1.setName("mode");
pinfo1.setValue("billing");
pinfo1.setType(String.class);
item2.addProperty(pinfo1);
pinfo1 = new PropertyInfo();
pinfo1.setName("firstname");
pinfo1.setValue(firstname1);
pinfo1.setType(String.class);
item2.addProperty(pinfo1);
pinfo1 = new PropertyInfo();
pinfo1.setName("lastname");
pinfo1.setValue(lastname1);
pinfo1.setType(String.class);
item2.addProperty(pinfo1);
pinfo1 = new PropertyInfo();
pinfo1.setName("company");
pinfo1.setValue(company1);
pinfo1.setType(String.class);
item2.addProperty(pinfo1);
pinfo1 = new PropertyInfo();
pinfo1.setName("street");
pinfo1.setValue(street1);
pinfo1.setType(String.class);
item2.addProperty(pinfo1);
pinfo1 = new PropertyInfo();
pinfo1.setName("city");
pinfo1.setValue(city1);
pinfo1.setType(String.class);
item2.addProperty(pinfo1);
pinfo1 = new PropertyInfo();
pinfo1.setName("region");
pinfo1.setValue(region1);
pinfo1.setType(String.class);
item2.addProperty(pinfo1);
pinfo1 = new PropertyInfo();
pinfo1.setName("postcode");
pinfo1.setValue(postcode1);
pinfo1.setType(String.class);
item2.addProperty(pinfo1);
pinfo1 = new PropertyInfo();
pinfo1.setName("country_id");
pinfo1.setValue(country1);
pinfo1.setType(String.class);
item2.addProperty(pinfo1);
pinfo1 = new PropertyInfo();
pinfo1.setName("telephone");
pinfo1.setValue(telephone1);
pinfo1.setType(String.class);
item2.addProperty(pinfo1);
pinfo1 = new PropertyInfo();
pinfo1.setName("fax");
pinfo1.setValue(fax1);
pinfo1.setType(String.class);
item2.addProperty(pinfo1);
pinfo1 = new PropertyInfo();
pinfo1.setName("is_default_billing");
pinfo1.setValue(0);
pinfo1.setType(Integer.class);
item2.addProperty(pinfo1);
SoapObject entityArray2 = new SoapObject(NAMESPACE, "shoppingCartCustomerAddressEntityArray");
entityArray2.addProperty("customer",item2);
Log.e("itemsad2222", entityArray2.toString());
SoapObject entityArray3 = new SoapObject(NAMESPACE, "shoppingCartCustomerAddressEntityArray");
entityArray3.addProperty("customer",entityArray);
entityArray3.addProperty("customer",entityArray2);
SoapObject request = new SoapObject(NAMESPACE, "shoppingCartCustomerAddresses");
request.addProperty("sessionId", SessionId);
request.addProperty("quoteId", CartId);
request.addProperty("customer",entityArray3);"
но его не добавление и предоставление исключений данные адреса клиента пусты
Помогите мне, пожалуйста... это заняло целый день, но я все еще не мог найти anythng
Ответы
Ответ 1
Мне кажется, вы хотите добавить клиентский биллинг/адрес доставки во время создания заказа через SOAP.
Вам нужно передать данные адресов с помощью массива. для деталей нажмите здесь и взгляните на официальный SOAP-документ magento.
$user = 'apiUser';
$password = 'apiKey';
$proxy = new SoapClient('http://magentohost/api/v2_soap/?wsdl');
$sessionId = $proxy->login($user, $password);
$cartId = $proxy->shoppingCartCreate($sessionId, 1);
// load the customer list and select the first customer from the list
$customerList = $proxy->customerCustomerList($sessionId, array());
$customer = (array) $customerList[0];
$customer['mode'] = 'customer';
$proxy->shoppingCartCustomerSet($sessionId, $cartId, $customer);
// load the product list and select the first product from the list
$productList = $proxy->catalogProductList($sessionId);
$product = (array) $productList[0];
$product['qty'] = 1;
$proxy->shoppingCartProductAdd($sessionId, $cartId, array($product));
$address = array(
array(
'mode' => 'shipping',
'firstname' => $customer['firstname'],
'lastname' => $customer['lastname'],
'street' => 'street address',
'city' => 'city',
'region' => 'region',
'telephone' => 'phone number',
'postcode' => 'postcode',
'country_id' => 'country ID',
'is_default_shipping' => 0,
'is_default_billing' => 0
),
array(
'mode' => 'billing',
'firstname' => $customer['firstname'],
'lastname' => $customer['lastname'],
'street' => 'street address',
'city' => 'city',
'region' => 'region',
'telephone' => 'phone number',
'postcode' => 'postcode',
'country_id' => 'country ID',
'is_default_shipping' => 0,
'is_default_billing' => 0
),
);
// add customer address
$proxy->shoppingCartCustomerAddresses($sessionId, $cartId, $address);
// add shipping method
$proxy->shoppingCartShippingMethod($sessionId, $cartId, 'flatrate_flatrate');
$paymentMethod = array(
'po_number' => null,
'method' => 'checkmo',
'cc_cid' => null,
'cc_owner' => null,
'cc_number' => null,
'cc_type' => null,
'cc_exp_year' => null,
'cc_exp_month' => null
);
// add payment method
$proxy->shoppingCartPaymentMethod($sessionId, $cartId, $paymentMethod);
// place the order
$orderId = $proxy->shoppingCartOrder($sessionId, $cartId, null, null);