Magento客户/发票/订单ID格式

时间:2013-11-04 10:16:49

标签: php magento format

有没有人能告诉我如何更改Magento中id的格式?

我希望发票ID的格式为:E-YYMM-#ID

Example: E-1310-028

Where: E- = standart prefix
       1310 = year + month
       028 = invoice id

Same for customers:
       E-005
       E-006
       E-007

我知道这很棘手,但是有谁知道怎么做?

提前完成

1 个答案:

答案 0 :(得分:0)

您需要覆盖increment_id值。因为你想使用真正的invoice_id和真正的customer_id,我想到的第一个解决方案就是你需要在资源模型的_afterSave()方法中覆盖它。对于发票f.e.您可以使用方法_beforeSave()和_afterSave()覆盖本地模块中的Mage_Sales_Model_Mysql4_Order_Invoice模型(不要编辑核心文件!):

protected function _beforeSave(Mage_Core_Model_Abstract $object)
{
    $this->_useIncrementId = false;

    return parent::_beforeSave($object);
}

protected function _afterSave(Mage_Core_Model_Abstract $object)
{
    if (!$object->getIncrementId()) {
        $newIncrementId = "E" . date("-ym-") . $object->getId();
        $this->_getWriteAdapter()->update(
            $this->getMainTable(),
            array('increment_id' => $newIncrementId),
            'entity_id = ' . $object->getId()
        );
    }

    return parent::_afterSave($object);
}

对于客户而言,逻辑可能略有不同,但想法是一样的。 希望它适合你;)