为ProductBO创建ProductListPrice

问题描述 投票:0回答:2

是否可以在 ProductBO 对象上创建产品标价?我知道如何使用 ProductPO 做到这一点:

productPriceMgr.createProductListPrice(product, new Money("EUR", BigDecimal.ZERO));

但我找不到与 Product 业务对象等效的东西。

谢谢您的帮助!

product intershop
2个回答
2
投票

虽然我不是 100% 确定,但我认为不可能在 ProductBO 对象上创建标价。查看默认的 ISH 管道,似乎所有标价修改都是在 ProductPO 对象上完成的,而不是在 ProductBO 对象上完成的。

作为解决方法,您可以使用以下通用转换方法将 ProductBO 转换为 ProductPO:

public <T extends PersistentObject> T convertBOToPersistentObject(BusinessObject bo) 
{
    return bo.getExtension(PersistentObjectBOExtension.class).getPersistentObject();
}

1
投票

ProductBO API 充当通用事物。如果创建产品标价的功能不可用,我认为您需要编写一个 BO 扩展来为您提供这一功能。您可以在这里找到有关该主题的文档:https://support.intershop.com/kb/index.php/Display/27K270

一个建议:在数据库中创建对象时,事务必须正在进行中。此外,必须存在 CSRF 令牌才能启动交易。我不知道您的用例,但我宁愿认为此功能必须只能由管理后台用户访问。

© www.soinside.com 2019 - 2024. All rights reserved.