Sold products are ProductVariants that have been sold to Badge holder.
You must have the merch
ConventionPrivilege to access this.
Sold Products are accessed via /api/soldproduct
.
See "Object Properties" in Introduction for basic shared properties.
Complete details in SoldProductProperties.
See "Related Objects" in Introduction for how to use them.
The Badge that purchased this sold product.
The BadgeType of sold product, if the sold product was complimentary with a BadgeType.
The Convention this sold product belongs to.
The ProductVariant this sold product belongs to.
See "Includes" in Introduction for how to use them.
A very descriptive name for this sold product. It pulls data from several objects, which is why it is not included by default.
The services used to fetch and manipulate sold products.
This section describes basic searchability of SoldProducts, which is now available across several main SoldProduct endpoints.
To request SoldProducts, a user must make a request via an endpoint for a parent object. The parent objects for which this consolidated search behavior is valid are:
Departures/differences from basic behavior will be discussed in the documentation for the specific parent=>soldproduct relationship.
This search behavior is not available on the following relationships: Badge, ConventionCart, ConventionReceipt.
A user can always see SoldProducts which belong to Badges they own,
or which belong to a Convention for which the user has the merch
privilege.
Returns:
{ "paging" : {...}, "items" : [ { "id" : "xxx", "soldproduct_number" : 101, ... }, ... ] }
Pass a string query
to search for a partial match in specifically allowed text fields.
convention_id
is a valid qualifier but will be part of the URI (e.g. in /api/convention/xxx/soldproducts) or is implicit in all other object endpoints, so there is never need to pass it explicitly.
or
product_idYou almost certainly want to add it to a ConventionCart instead of creating one. Or if you want to administratively create one, then use that method.
POST /api/soldproduct
Returns the same as a normal read.
You almost certainly want to add it to a ConventionCart instead of creating one. Or if you want to administratively create one, then use that method.
POST /api/soldproduct/verified
The same as the Create Sold Product service.
Returns the same as a normal read.
GET /api/soldproduct/xxx
Returns:
{ "id" : "xxx", "name" : "The Captain is Dead", ... }
PUT /api/soldproduct/xxx
Returns the same as a normal read.
DELETE /api/soldproduct/xxx
You need to specify this to refund if purchased with cash in the point of sale system.
Returns:
{ "success" : 1 }
PUT /api/soldproduct/xxx/pick-up
Returns the same as a normal read.
PUT /api/soldproduct/xxx/reverse-pick-up
Returns the same as a normal read.
This refunds a charge for a sold product without deleting it. Use of this endpoint requires the merch
privilege.
PUT /api/soldproduct/xxx/convert/free
Returns the same as a normal read.
Convert a sold product purchase to a different ProductVariant. This can be any variant for any Product, it does not need to be one with the same parent Product the sold product currently has. This will charge or refund the difference in the costs. This cannot be used for organizer-granted sold products.
POST /api/soldproduct/xxx/convert/variant/:variant_id
The ID of the ProductVariant to convert the sold product to.
Returns a normal read of the sold product converted to.