0

有没有人能告诉我如何在 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

我知道这很棘手,但是有没有人知道如何做到这一点?

提前感谢

4

1 回答 1

0

您需要覆盖 increment_id 值。因为您想使用真正的 invoice_id 和真正的 customer_id,所以我认为的第一个解决方案是您需要在资源模型的 _afterSave() 方法中覆盖它。对于发票 fe,您可以使用 _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);
}

对于客户来说,逻辑可能有点不同,但想法是一样的。希望对你有帮助 ;)

于 2013-11-04T12:12:51.903 回答