     $document[method]('click', '[data-cart-remove-id]', CartJS.Data.removeById)
     $document[method]('click', '[data-cart-update]', CartJS.Data.update)
     $document[method]('click', '[data-cart-update-id]', CartJS.Data.updateById)
+    $document[method]('click', '[data-cart-clear]', CartJS.Data.clear)
     $document[method]('change', '[data-cart-toggle]', CartJS.Data.toggle)
     $document[method]('change', '[data-cart-toggle-attribute]', CartJS.Data.toggleAttribute)
     $document[method]('submit', '[data-cart-submit]', CartJS.Data.submit)
+
+    # Attach or remove event listeners for data-cart-render events.
+    $document[method]('cart.requestComplete', CartJS.Data.render);
 
   # Handler for [data-cart-add] click events.
   add: (e) ->

    e.preventDefault()
    $element = jQuery(e.target)
    CartJS.Core.updateItemById $element.data('cartUpdateId'), $element.data('cartQuantity')

  # Handler for [data-cart-toggle] change events.
  toggle: (e) ->

  # Initialise the Data API.
  init: () ->
    CartJS.Data.setEventListeners('on')
    CartJS.Data.render(null, CartJS.cart)

  # Tear down the Data API.
  destroy: () ->
