magento中csv文件批量導入

magento中的CSV文件批量導入,下面是我自己寫的一個發放優惠劵的功能,根據訂單給用戶發放優惠券,用到的字段是increment_id和優惠劵價格:

protected function _prepareForm()
    {
        $form = new Varien_Data_Form(array(
            'id'      => 'edit_form',
            'action'  => $this->getUrl('*/*/importPost'),
            'method'  => 'post',
            'enctype' => 'multipart/form-data'
        ));
        $fieldset = $form->addFieldset('base_fieldset', array('legend' => Mage::helper('fun_promo')->__('Send Coupon')));
        $fieldset->addField(Mage_ImportExport_Model_Import::FIELD_NAME_SOURCE_FILE, 'file', array(
            'name'     => Mage_ImportExport_Model_Import::FIELD_NAME_SOURCE_FILE,
            'label'    => Mage::helper('fun_promo')->__('Select File to Import'),
            'title'    => Mage::helper('fun_promo')->__('Select File to Import'),
            'required' => true
        ));

        $form->setUseContainer(true);
        $this->setForm($form);

        return parent::_prepareForm();
    }
public function importPostAction()
{
    $file = array_shift($_FILES);
    $fileHandle = new Varien_Io_File();
    $msg = '';

    if (isset($file['tmp_name']) && $fileHandle->streamOpen($file['tmp_name'], 'r+b')) {
        while (($line = $fileHandle->streamReadCsv()) !== false) {
            isset($line[0]) && $increment_id = $line[0];
            if (empty($increment_id)) {
                continue;
            }

            $increment_id = trim($increment_id);
            $order = Mage::getModel('sales/order')->loadByIncrementId($increment_id);
            if ($order->getId()) {
                $customerId = $order->getCustomerId();
                if ($customerId) {
                    if ($this->ruleArr(intval($line[1]))) {
                        $rule_id = $this->ruleArr(intval($line[1]));
                        try {
                            $rule = Mage::getModel('salesrule/rule')->load($rule_id);
                            $expirationDate = date('Y-m-d H:i:s', strtotime('+3 month'));
                            $rule->acquireCoupon($customerId, $expirationDate);
                        } catch (Exception $e) {
                            $msg .= $increment_id.'發送優惠券失敗'."<br>";
                            continue;
                        }
                    }
                } else {
                    $msg .= $increment_id.'沒找到用戶'."<br>";
                    continue;
                }
            } else {
                $msg .= $increment_id.'訂單號不存在'."<br>";
                continue;
            }
        }

        $fileHandle->close();
        if (!empty($msg)) {
            Mage::getSingleton('adminhtml/session')->addError($msg);
        } else {
            Mage::getSingleton('adminhtml/session')->addSuccess('Import succeed.');
        }
    } else {
        Mage::getSingleton('adminhtml/session')->addWarning('Invalid mime content-type.');
    }

    $fileHandle->rm($file['tmp_name']);
    $this->_redirect('*/*/index');
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章