有没有人能告诉我如何更改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
我知道这很棘手,但是有谁知道怎么做?
提前完成
答案 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);
}
对于客户而言,逻辑可能略有不同,但想法是一样的。 希望它适合你;)