Как добавить два массива в один объект мыла для адреса фактурирования и доставки в 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);