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.