我是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;
}
并且,由于您已经做了更改,所以我们只需要它。