requestCollection('get', '/v1/products', $params, $opts); } /** * Creates a new product object. * * @param null|array $params * @param null|array|\Stripe\Util\RequestOptions $opts * * @throws \Stripe\Exception\ApiErrorException if the request fails * * @return \Stripe\Product */ public function create($params = null, $opts = null) { return $this->request('post', '/v1/products', $params, $opts); } /** * Delete a product. Deleting a product is only possible if it has no prices * associated with it. Additionally, deleting a product with type=good * is only possible if it has no SKUs associated with it. * * @param string $id * @param null|array $params * @param null|array|\Stripe\Util\RequestOptions $opts * * @throws \Stripe\Exception\ApiErrorException if the request fails * * @return \Stripe\Product */ public function delete($id, $params = null, $opts = null) { return $this->request('delete', $this->buildPath('/v1/products/%s', $id), $params, $opts); } /** * Retrieves the details of an existing product. Supply the unique product ID from * either a product creation request or the product list, and Stripe will return * the corresponding product information. * * @param string $id * @param null|array $params * @param null|array|\Stripe\Util\RequestOptions $opts * * @throws \Stripe\Exception\ApiErrorException if the request fails * * @return \Stripe\Product */ public function retrieve($id, $params = null, $opts = null) { return $this->request('get', $this->buildPath('/v1/products/%s', $id), $params, $opts); } /** * Updates the specific product by setting the values of the parameters passed. Any * parameters not provided will be left unchanged. * * @param string $id * @param null|array $params * @param null|array|\Stripe\Util\RequestOptions $opts * * @throws \Stripe\Exception\ApiErrorException if the request fails * * @return \Stripe\Product */ public function update($id, $params = null, $opts = null) { return $this->request('post', $this->buildPath('/v1/products/%s', $id), $params, $opts); } }