ATG如何覆盖mergeOrdersCopyCommerceItem方法

时间:2014-03-26 18:14:47

标签: java e-commerce atg atg-dynamo

我是ATg商业界的新手,想知道是否有人可以帮我解决问题。我们有CommerceItem的附加属性。用户登录我们的网站后,不会复制commerceItem的这些附加属性。有人可以建议或举例说明我如何确保复制属性?

以下是我的代码片段:

CommerceItem sourceCitem;
CommerceItem destCitem;
List citemList = pSrcOrder.getCommerceItems(); //get commerce item from source order

 for (int i = 0, citemListSize = citemList .size(); i < citemListSize; i++) {
  sourceCitem= (CommerceItem) ciList.get(i);
  destCitem= getCommerceItemManager().mergeOrdersCopyCommerceItem(pSrcOrder,pDestOrder, sourceCitem);

我扩展了CommerceItemImpl并添加了新类中未添加到destCitem的所有其他属性。

任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

您需要继承CommerceItemManager并覆盖mergeOrdersCopyCommerceItem方法,首先调用超类方法执行基本复制,然后复制扩展商务项数据。

例如:


protected CommerceItem mergeOrdersCopyCommerceItem(Order pSrcOrder, Order pDstOrder, CommerceItem pItem) throws CommerceException {

    NewCommerceItem item = (NewCommerceItem) pItem;
    NewCommerceItem newItem = (NewCommerceItem) super.mergeOrdersCopyCommerceItem(pSrcOrder, pDstOrder, pItem);
        //Now your code to add the changes.
            newItem.setABC(item.getABC());
    return newItem;
    }

而且,正如你已经做过的改变一样,这就是我们所需要的。