name file | size | edit | permission | action |
---|---|---|---|---|
.env | 2733 KB | December 22 2024 06:20:07 | 0644 | |
404.html | 58370 KB | November 20 2024 15:32:22 | 0644 | |
502.html | 58368 KB | November 20 2024 15:32:22 | 0644 | |
Modules | - | December 11 2024 21:02:56 | 0755 | |
README.md | 4158 KB | February 14 2023 12:31:56 | 0644 | |
app | - | December 11 2024 17:57:48 | 0755 | |
artisan | 1686 KB | February 14 2023 12:31:56 | 0644 | |
bootstrap | - | December 11 2024 20:23:36 | 0755 | |
composer.json | 3761 KB | December 11 2024 22:15:00 | 0644 | |
composer.lock | 512048 KB | December 11 2024 22:13:28 | 0644 | |
config | - | June 15 2025 02:09:36 | 0755 | |
database | - | December 05 2024 20:18:12 | 0755 | |
dfsdf dfds fd fds findex.html | 1420 KB | November 20 2024 15:32:24 | 0644 | |
error_log | 19304324 KB | July 18 2025 20:17:43 | 0644 | |
firoz | - | December 23 2024 13:24:46 | 0755 | |
index.php | 1667 KB | December 14 2024 05:20:36 | 0644 | |
lang | - | December 11 2024 21:02:48 | 0755 | |
modules_statuses.json | 472 KB | November 20 2024 15:32:24 | 0644 | |
mpos | - | March 31 2025 02:36:31 | 0755 | |
package.json | 226 KB | February 14 2023 12:31:56 | 0644 | |
phpunit.xml | 1146 KB | February 14 2023 12:31:56 | 0644 | |
public | - | March 31 2025 02:36:31 | 0755 | |
resources | - | December 11 2024 21:10:22 | 0755 | |
routes | - | June 15 2025 02:09:31 | 0755 | |
storage | - | December 11 2024 21:12:44 | 0755 | |
tests | - | December 05 2024 20:18:12 | 0755 | |
vendor | - | December 11 2024 22:13:30 | 0755 | |
vite.config.js | 263 KB | February 14 2023 12:31:56 | 0644 |
true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property \Stripe\StripeObject[] $marketing_features A list of up to 15 marketing features for this product. These are displayed in pricing tables.
* @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
* @property string $name The product's name, meant to be displayable to the customer.
* @property null|\Stripe\StripeObject $package_dimensions The dimensions of this product for shipping purposes.
* @property null|bool $shippable Whether this product is shipped (i.e., physical goods).
* @property null|string $statement_descriptor Extra information about a product which will appear on your customer's credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used. Only used for subscription payments.
* @property null|string|\Stripe\TaxCode $tax_code A tax code ID.
* @property string $type The type of the product. The product is either of type good
, which is eligible for use with Orders and SKUs, or service
, which is eligible for use with Subscriptions and Plans.
* @property null|string $unit_label A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal.
* @property int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch.
* @property null|string $url A URL of a publicly-accessible webpage for this product.
*/
class Product extends ApiResource
{
const OBJECT_NAME = 'product';
use ApiOperations\NestedResource;
use ApiOperations\Update;
const TYPE_GOOD = 'good';
const TYPE_SERVICE = 'service';
/**
* Creates a new product object.
*
* @param null|array $params
* @param null|array|string $options
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\Product the created resource
*/
public static function create($params = null, $options = null)
{
self::_validateParams($params);
$url = static::classUrl();
list($response, $opts) = static::_staticRequest('post', $url, $params, $options);
$obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
$obj->setLastResponse($response);
return $obj;
}
/**
* 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 null|array $params
* @param null|array|string $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\Product the deleted resource
*/
public function delete($params = null, $opts = null)
{
self::_validateParams($params);
$url = $this->instanceUrl();
list($response, $opts) = $this->_request('delete', $url, $params, $opts);
$this->refreshFrom($response, $opts);
return $this;
}
/**
* Returns a list of your products. The products are returned sorted by creation
* date, with the most recently created products appearing first.
*
* @param null|array $params
* @param null|array|string $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\Collection<\Stripe\Product> of ApiResources
*/
public static function all($params = null, $opts = null)
{
$url = static::classUrl();
return static::_requestPage($url, \Stripe\Collection::class, $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 array|string $id the ID of the API resource to retrieve, or an options array containing an `id` key
* @param null|array|string $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\Product
*/
public static function retrieve($id, $opts = null)
{
$opts = \Stripe\Util\RequestOptions::parse($opts);
$instance = new static($id, $opts);
$instance->refresh();
return $instance;
}
/**
* Updates the specific product by setting the values of the parameters passed. Any
* parameters not provided will be left unchanged.
*
* @param string $id the ID of the resource to update
* @param null|array $params
* @param null|array|string $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\Product the updated resource
*/
public static function update($id, $params = null, $opts = null)
{
self::_validateParams($params);
$url = static::resourceUrl($id);
list($response, $opts) = static::_staticRequest('post', $url, $params, $opts);
$obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
$obj->setLastResponse($response);
return $obj;
}
/**
* @param null|array $params
* @param null|array|string $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\SearchResult<\Stripe\Product> the product search results
*/
public static function search($params = null, $opts = null)
{
$url = '/v1/products/search';
return static::_requestPage($url, \Stripe\SearchResult::class, $params, $opts);
}
const PATH_FEATURES = '/features';
/**
* @param string $id the ID of the product on which to retrieve the product features
* @param null|array $params
* @param null|array|string $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\Collection<\Stripe\ProductFeature> the list of product features
*/
public static function allFeatures($id, $params = null, $opts = null)
{
return self::_allNestedResources($id, static::PATH_FEATURES, $params, $opts);
}
/**
* @param string $id the ID of the product on which to create the product feature
* @param null|array $params
* @param null|array|string $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\ProductFeature
*/
public static function createFeature($id, $params = null, $opts = null)
{
return self::_createNestedResource($id, static::PATH_FEATURES, $params, $opts);
}
/**
* @param string $id the ID of the product to which the product feature belongs
* @param string $featureId the ID of the product feature to delete
* @param null|array $params
* @param null|array|string $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\ProductFeature
*/
public static function deleteFeature($id, $featureId, $params = null, $opts = null)
{
return self::_deleteNestedResource($id, static::PATH_FEATURES, $featureId, $params, $opts);
}
/**
* @param string $id the ID of the product to which the product feature belongs
* @param string $featureId the ID of the product feature to retrieve
* @param null|array $params
* @param null|array|string $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\ProductFeature
*/
public static function retrieveFeature($id, $featureId, $params = null, $opts = null)
{
return self::_retrieveNestedResource($id, static::PATH_FEATURES, $featureId, $params, $opts);
}
}