public function search()
    {
        if (!Input::has('q')) {
            return $this->jsonErrorResponse('"q" is required.');
        }

        $options = $this->getParams('offset', 'limit', 'includes', 'order_by');

        $products = Subbly::api('subbly.product')->searchBy(Input::get('q'), $options);

        return $this->jsonCollectionResponse('products', $products, array(
            'query' => Input::get('q'),
        ));
    }