0

Magentoを使用して顧客の番地を一括更新する必要があります。このために、私はカスタマーグリッドコントローラーでbultupdate関数を作成しました。これがクエリですが、機能していません。このクエリを変更して、customeridを使用して住所を更新するにはどうすればよいですか?

 public function massUpdateAction()
{

    $customerIds = $this->getRequest()->getParam('customer');
    $street_type = $this->getRequest()->getParam('street');

    if (!is_array($customerIds)) {
        $this->_getSession()->addError($this->__('Please select customer(s).'));
    } else {
        if (!empty($customerIds)) {

            try {
                foreach ($customerIds as $customerId) {

                   Mage::getSingleton('customer/address')
            ->updateAttributes($customerIds, array('billing_street_full' => $street_type), $storeId);
                }
                $this->_getSession()->addSuccess(
                    $this->__('Total of %d record(s) have been Updated.', count($customerIds))
                );
            } catch (Exception $e) {
                $this->_getSession()->addError($e->getMessage());
            }
        }
    }
    $this->_redirect('*/*/index');
}
4

1 に答える 1

1

これを試して:

        try {
            foreach ($customerIds as $customerId) {

                $addresses  = Mage::getModel('customer/customer')->load($customerId)->getAddressesCollection();
                foreach ($addresses as $address) {
                    $address->setData('billing_street_full', $street_type)->save();
                }
            }
             $this->_getSession()->addSuccess(
                 $this->__('Total of %d record(s) have been Updated.', count($customerIds))
             ); 

            } catch (Exception $e) {
                $this->_getSession()->addError($e->getMessage());
            }
于 2013-01-30T16:30:38.510 に答える