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.