OrderTools
介绍一些OrderTools的属性:
orderTypeClassMap:定义一个order的类的类型,比如可能有两个order的实现类,那么你可以根据需要去指定默认是哪一个之类的,他是一个properties。
orderTypeClassMap+=\
default=com.commerce.order.OrderImpl,\
shoppingcart=com.commerce.order.OrderImpl
在创建order的时候,即OrderTools.createOrder:
String orderClassName = getOrderTypeClassMap().getProperty(pType);
if (orderClassName == null) {
throw new InvalidTypeException(ResourceUtils.getMsgResource("InvalidOrderType", "atg.commerce.order.OrderResources", sResourceBundle));
}
Order order=(Order)Class.forName(orderClassName).newInstance();
order = (Order)Class.forName(orderClassName).newInstance();
if ((order instanceof ChangedProperties)) {
((ChangedProperties)order).setSaveAllProperties(true);
}
defaultOrderType 指定order type class map哪一个order是默认的:
defaultOrderType=default
commerceItemTypeClassMap:创建一个commerceItem的时候,你可以有一个或者多个CommerceItem的类型:
commerceItemTypeClassMap=\
default=com.commerce.order.CommerceItemImpl,\
configurableCommerceItem=com.commerce.order.ConfigurableCommerceItemImpl,\
subSkuCommerceItem=atg.commerce.order.SubSkuCommerceItem,\
variablePriceCommerceItem=com.commerce.order.VariablePriceCommerceItemImpl,\
childCommerceItem=com.commerce.order.ChildCommerceItemImpl
defaultCommerceItemType:同理,指定哪一个commerce type是,默认的
defaultCommerceItemType=default
同理,一下的都是同一个意思
shippingTypeClassMap,defaultShippingGroupType
paymentTypeClassMapdefaultPaymentGroupType
relationshipTypeClassMap
beanNameToItemDescriptorMap:
This property maps a bean name to an OrderRepository item descriptor name,比如当保存order的时候,procerssor寻找一个Order Repository 用相同的名字,如果没有这样的一个item descriptor被发现,就会从给定的beanNameToItemDescriptorMap 寻找一个,一般情况下,所有的item descriptor都会被影射,格式就是bean name=repository item descriptor:
beanNameToItemDescriptorMap=\
atg.commerce.order.OrderImpl=order,\
atg.commerce.order.CommerceItemImpl=CommerceItem,\
atg.commerce.order.ShippingGroupImpl=shippingGroup,\
atg.commerce.order.HardgoodShippingGroup=hardgoodShippingGroup,\
atg.commerce.order.PaymentGroupImpl=paymentGroup,\
atg.commerce.order.CreditCard=creditCard,\
atg.commerce.order.GiftCertificate=giftCertificate,\
atg.commerce.order.ShippingGroupCommerceItemRelationship=shipItemRel,\
atg.commerce.order.PaymentGroupCommerceItemRelationship=payItemRel,\
atg.commerce.order.PaymentGroupShippingGroupRelationship=payShipRel,\
atg.commerce.order.PaymentGroupOrderRelationship=payOrderRel,\
atg.payment.PaymentStatus=paymentStatus,\
atg.commerce.pricing.OrderPriceInfo=orderPriceInfo,\
atg.commerce.pricing.ItemPriceInfo=itemPriceInfo,\
atg.commerce.pricing.TaxPriceInfo=taxPriceInfo,\
atg.commerce.pricing.ShippingPriceInfo=shippingPriceInfo
当创建Order的时候默认会创建一个空的ShippingGroup 和 PaymentGroup,如果你不希望创建的时候,就有这两个空的,那么你可以在OrderTools中通过createDefaultShippingGroup and createDefaultPaymentGroup 属性去指定设置为false.