# methods/remove-item.js

    import fixSubtotal from './../lib/fix-subtotal'

    /**
     * @method
     * @name EcomCart#removeItem
     * @description Remove specific item from cart by ID.
     *
     * @param {string} itemId - The unique object ID of item
     * @param {boolean} [canSave=true] - Save cart data
     *
     * @returns {object|null} Returns the removed item object or null
     * when item not found.
     *
     * @example

    ecomCart.removeItem('12300000000000000000000f')

     */

    export default ({ data, save }, emitter, [itemId, canSave = true]) => {
      for (let i = 0; i < data.items.length; i++) {
        const item = data.items[i]
        if (item._id === itemId) {
          data.items.splice(i, 1)
          fixSubtotal(data)

          /**
           * @event EcomCart#removeItem
           * @type {object}
           * @property {object} data - Shopping cart data
           * @property {object} item - Cart item removed
           * @example ecomCart.on('removeItem', ({ data, item }) => { console.log(data, item) })
           */
          emitter.emit('removeItem', { data, item })

          if (canSave) {
            save(false)
          }
          return item
        }
      }

      return null
    }