Item bundles¶
Resource description¶
With bundles, you can specify products that are included within other products. There are two premier use cases of this:
Package discounts. For example, you could offer a discounted package that includes three tickets but can only be bought as a whole. With a bundle including three times the usual product, the package will automatically pull three sub-items into the cart, making sure of correct quota calculation and issuance of the correct number of tickets.
Tax splitting. For example, if your conference ticket includes a part that is subject to different taxation and that you need to put on the invoice separately. When you putting a “designated price” on a bundled sub-item, pretix will use that price to show a split taxation.
The bundles resource contains the following public fields:
Field |
Type |
Description |
---|---|---|
id |
integer |
Internal ID of the bundling configuration |
bundled_item |
integer |
Internal ID of the item that is included. |
bundled_variation |
integer |
Internal ID of the variation of the item (or |
count |
integer |
Number of items included |
designated_price |
money (string) |
Designated price of the bundled product. This will be used to split the price of the base item e.g. for mixed taxation. This is not added to the price. |
Endpoints¶
- GET /api/v1/organizers/(organizer)/events/(event)/items/(item)/bundles/¶
Returns a list of all bundles for a given item.
Example request:
GET /api/v1/organizers/bigevents/events/sampleconf/items/11/bundles/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "count": 2, "next": null, "previous": null, "results": [ { "id": 3, "bundled_item": 3, "bundled_variation": null, "count": 1, "designated_price": "0.00" }, { "id": 3, "bundled_item": 3, "bundled_variation": null, "count": 2, "designated_price": "1.50" } ] }
- Query Parameters:
page (integer) – The page number in case of a multi-page result set, default is 1
- Parameters:
organizer – The
slug
field of the organizer to fetchevent – The
slug
field of the event to fetchitem – The
id
field of the item to fetch
- Status Codes:
200 OK – no error
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event/item does not exist or you have no permission to view this resource.
- GET /api/v1/organizers/(organizer)/events/(event)/items/(item)/bundles/(id)/¶
Returns information on one bundle configuration, identified by its ID.
Example request:
GET /api/v1/organizers/bigevents/events/sampleconf/items/1/bundles/1/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "id": 3, "bundled_item": 3, "bundled_variation": null, "count": 2, "designated_price": "1.50" }
- Parameters:
organizer – The
slug
field of the organizer to fetchevent – The
slug
field of the event to fetchitem – The
id
field of the item to fetchid – The
id
field of the bundle to fetch
- Status Codes:
200 OK – no error
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to view this resource.
- POST /api/v1/organizers/bigevents/events/sampleconf/items/1/bundles/¶
Creates a new bundle configuration
Example request:
POST /api/v1/organizers/(organizer)/events/(event)/items/(item)/bundles/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript Content-Type: application/json { "bundled_item": 3, "bundled_variation": null, "count": 2, "designated_price": "1.50" }
Example response:
HTTP/1.1 201 Created Vary: Accept Content-Type: application/json { "id": 3, "bundled_item": 3, "bundled_variation": null, "count": 2, "designated_price": "1.50" }
- Parameters:
organizer – The
slug
field of the organizer of the event/item to create a bundle-configuration forevent – The
slug
field of the event to create a bundle configuration foritem – The
id
field of the item to create a bundle configuration for
- Status Codes:
201 Created – no error
400 Bad Request – The bundle could not be created due to invalid submitted data.
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to create this resource.
- PATCH /api/v1/organizers/(organizer)/events/(event)/items/(item)/bundles/(id)/¶
Update a bundle configuration. You can also use
PUT
instead ofPATCH
. WithPUT
, you have to provide all fields of the resource, other fields will be reset to default. WithPATCH
, you only need to provide the fields that you want to change.You can change all fields of the resource except the
id
field.Example request:
PATCH /api/v1/organizers/bigevents/events/sampleconf/items/1/bundles/3/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript Content-Type: application/json Content-Length: 94 { "count": 2 }
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "id": 3, "bundled_item": 3, "bundled_variation": null, "count": 2, "designated_price": "1.50" }
- Parameters:
organizer – The
slug
field of the organizer to modifyevent – The
slug
field of the event to modifyitem – The
id
field of the item to modifyid – The
id
field of the bundle to modify
- Status Codes:
200 OK – no error
400 Bad Request – The bundle configuration could not be modified due to invalid submitted data
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to change this resource.
- DELETE /api/v1/organizers/(organizer)/events/(event)/items/(id)/bundles/(id)/¶
Delete a bundle configuration.
Example request:
DELETE /api/v1/organizers/bigevents/events/sampleconf/items/1/bundles/1/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript
Example response:
HTTP/1.1 204 No Content Vary: Accept
- Parameters:
organizer – The
slug
field of the organizer to modifyevent – The
slug
field of the event to modifyid – The
id
field of the item to modifyid – The
id
field of the bundle to delete
- Status Codes:
204 No Content – no error
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to delete this resource.