HotWax Media and OFBiz – 2009 OFBiz Contributions – Part 2

Hotwax Media OFBiz

For the second installment in our series highlighting the contributions of HotWax Media to Apache’s Open For Business (OFBiz) in 2009, we will focus on the OFBiz eCommerce related components:

  1. eCommerce
  2. Order Management
  3. Catalog and Inventory Management
  4. Marketing


Over the past year, the eCommerce component in OFBiz has received some much needed focus on improving and updating the interfaces provided by the out of the box (OOTB) functionality in the system.  They were littered with rigid tables, and inline styling that did not allow for the flexibility and configurability that we have come to expect in other pieces of software.

Here is a long list of functionality that has been added by HotWax Media to the OFBiz eCommerce application

  1. Implemented Layered Navigation of Categories in eCommerce
    • Layered navigation in an eCommerce application allows the user to filter the product listing based on categories, features and price ranges.
    • The user can apply multiple filters to the given product listing.
    • The user can narrow or expand the search and try different filter combinations, so as to find the desired product.
  2. Made improvements in the product review implementation.
  3. Added support for adding additional image features for a product so the user can see different view of images.
  4. Added sample data that contains a Sales Order and Purchase Order in completed status along with their Accounting entries for Shipment, Invoice and Payment.
  5. Added user friendly URLs on breadcrumbs of eCommerce/order manager.
  6. Implement contact us functionality for unregistered users.
  7. Improvement in createShoppingListItem service – If the same item is added more than one time, increase the quantity instead of adding the same item as a new line item.
  8. Implemented eCommerce product comparisons, allowing customers to compare any number of products by price, descriptions and features.  This is configurable and overridable to support different comparisons quite easily.
  9. Added tracking of products that are purchased together for future reporting.
  10. Added a widget to display the tracking of productions purchased together by eCommerce customers.
  11. Made configurable aspects of email services to provide “guaranteed” delivery for sales messaging.
  12. Major overhaul of eCommerce component CSS.
    • Added comprehensive reset styling to eCommerce to allow designers to work from a blank slate for a more consistent cross-brower user experience.
    • Removed many unused IDs and classNames, consolidated heading and button styles. Compressed eCommerce CSS by removing whitespace and converting styles to shorthand.  Resulted in 30% reduction in file size, overall file size reduced by 48%.
    • Created separated, consistent styles for all form elements.  Moved form styling into separate forms.css file.
  13. Major updates to eCommerce page markup
    • Cleanup up all sidebar screenlet views.  Slimmed down and simplified box styling by removing extra <div> tags and added consistent heading tags.
    • Completely overhauled One Page Checkout.  Removed table based layout from checkout steps and converted to semantic form structure.  Result is a much more flexible and easily styled checkout process.
    • Began work on removing table based layout from all forms throughout eCommerce component.
  14. Removed deprecated HTML elements and inline styles from eCommerce component markup.  Result is much more easily category and product detail views.
  15. Introduced BizznessTime theme to administration components, which became the default theme for OFBiz administration.  In the process of implementing the new theming functionality we:
    • Added better reset values to CSS to allow for more consistent cross-browser user experience
    • Created consistent form, heading, and button styling across all administration components
    • Removed tons of unused/unnecessary CSS from administration components styling, reducing styling file size by 60%.
  16. Enhanced survey implementation for testing scenarios of eCommerce application.

Order Management

As you’ll see from this list of enhancements, there have been plenty of places to update the Order Management system in OFBiz to be more user friendly and to have additional features available to users:

  1. While placing purchase order, the orderId can be supplied explicitly by the user. If it is not supplied then it will be created automatically.
  2. Added a new field for “cancelBackOrderDate” to be more consistent with other services like OrderItem(purchase order). Field is shown in order detail page and on Purchase order PDF if exists.  Added the scheduled service as well.
  3. Added the ability to add more then one product at a time to purchase order in order detail page with single add form.
  4. While recording PO, when the unit price of the item is edited the new value automatically gets set as last price on supplier record.
  5. After placing a purchase order, the user can now update the estimatedShipDate and estimatedDeliveryDate by editing order items in order detail page.
  6. While waiting for the inventory to arrive, user can lower the priority on inventory allocation so that other orders can be fulfilled while they are waiting for sufficient inventory to fill the larger sales order.  Order priority of order can also be be set from order detail page explicitly.
  7. Introduced a new order return type, “Wait Replacement Reserved”.  With this, when a return is accepted, a replacement order is immediately created in the “Held” status.  When the original item return is received the “Held” replacement order(s) automatically sets the status to “Approved” to clear them for fulfillment.
  8. After a return for refund, exchange orders can now can be created against original order.
  9. Added new return type “Replace Immediately”.  This could be used in a return process for which items are not expected to be returned or with items(s) that cost less then the shipping charges on the original order.
  10. Added new filters on find order page – by country, shipping method, order viewed, payment gateway response (gatewayAvsResult / gatewayScoreResult).
  11. Added an optional input field where user can specify an orderId while creating a purchase order.
  12. Enabled audit for a few additional fields on the ReturnItem entity namely returnTypeId, returnReasonId, returnQuantity, receivedQuantity and returnPrice.
  13. Added the feature to show or hide out of stock products on the front end of an eCommerce site.  This new implementation is configurable through a new field showOutOfStockProducts (by default = Y) on ProductStore.
  14. Enabled audit for a few additional fields on the OrderItem entity namely price and quantities.
  15. Enabled audit for a few additional fields on the OrderItemShipGroup entity to archive changes in shipment method.  This can be viewed through the “Order History” link under the screelet on the order detail page.
  16. Added an option to add a new shipping address from the order detail page.
  17. Added the feature to generate a pick sheet PDF for an order from the order detail page.
  18. Added a new return type “Refund Immediately” which triggers refunds when return is accepted.
  19. Added the ability to mark an order as viewed.
  20. Product Store can now be configured to set the default store credit account type – either financial account or billing account.
  21. Fixed major issues in the receive Purchase Order functionality.

Catalog and Inventory Management

Since the beginning of development of OFBiz, and definitely since the move to the Apache Software Foundation, the Catalog and Inventory component have been an established fixture in eCommerce usage.  Minor things have changed and additional pieces have been integrated, but the interfaces and the capabilities have long endured large changes in other parts of the system while remaining relatively unchanged.

Over the past year, we have added a few modifications:

  1. Promotions hooked up to shipping total adjustments – Now Shipping Total adjustments can be applied using simple promotions. Users can specify percentage discount on a specific shipping method – and can use this for free shipping if this is needed as well.
  2. Improved ProductType Hierarchy for Marketing Packages – Creating a hierarchy was possible before these modifications, but the business logic specific to parent type was never applied to the sub types, thus making hierarchy useless.  Once this change was made, we have seen usage of this feature ramp up significantly.
  3. Enhanced the find inventory screen with “sell through” information.


Much like the catalog on inventory components in OFBiz, the marketing component has long been one of the more stable pieces in the eCommerce landscape – providing OFBiz users with simple ways to track and report on different initiatives.  Over the course of the year, we have added new reports to make it easier to track different information related to marketing initiatives.

From tracking purchases related to the tracking codes, to tracking email traffic (emails sent, bounced and opened), to tracking subscriptions made and canceled during a given time period – the data being collected has changed little, but the ability to to be able to leverage it in a meaningful way has been greatly enhanced.

What’s Next?

In my third volume in this series (Part 3), I will discuss our contributions in the area of ERP: accounting, manufacturing and facility management.

– Tim

Tim Ruppert is Chief Operating Officer at HotWax Media as well as an OFBiz project committer and active community member. Tim will join other HotWax Media employees and advisors in periodically posting thoughts here related to OFBiz, eCommerce, ERP, and related topics.

This post is part of a 4 part series. Please find the other posts in this series here:

Read Intro | Part 1 | Part 2 | Part 3 | Part 4


DATE: Jan 5, 2010
AUTHOR: HotWax Systems
OFBiz, OFBiz Development, OFBiz eCommerce, , , , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *