ATG如何重写mergeOrdersCopyCommerceItem方法



我是ATg商务世界的新手,想知道是否有人可以帮助我解决一个问题。我们为我们的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的附加属性。

任何帮助都将不胜感激。

谢谢

您需要子类化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;
    }

并且,由于您已经做了更改,所以我们只需要它。

相关内容

  • 没有找到相关文章

最新更新