Design a variant
Designing a product variant is made possible by placing customizations on the corresponding view (e. g. front or back). Send the design as described in the request body below.
Background processing
When you design a product variant, this happens asynchronously. You can use
Polling or Webhooks
for status updates. A new product variant is created implicitly. Therefore, you will already receive the
new product variant id in the header for later reference.
The current state of the asynchronous process is represented due the following states:
| State | Meaning |
|---|---|
draft | The initial state of a new variant |
checking | Variant is processed automatically in background. For example images will be generated or downloaded. |
failed | Something went wrong during the checking process. The reason can be found in the failure_message attribute. For example an image could not be downloaded. |
completed | All automatic processes were successful. The variant is ready to use. |
It is not possible to order this product variant before state completed.
Response
The response is 202 Accepted with the headers Location (e.g. https://api.smake.io/jobs/1) and
X-Identifier (e.g. 137). The X-Identifier is the new generated product variant id for later reference.
Further design examples
You can combine the usage of id and url on different models — see the request examples
Design with media id, Design with logo id, Design with logo id and resize logo,
Design with media id and mockup with url and Adopt design from another variant.
AuthorizationbearerAuth
Authorization
bearerAuth API token as bearer token — you receive a test and a live token, there is no switch between them. See Setup → Authentication and Setup → Test mode.
In: header
Path Parameters
The ID of the resource.
Header Parameters
The API only responds with JSON — this header is mandatory on every request (see Setup → Headers).
"application/json"Value in
- "application/json"
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Designing a product variant is made possible by placing customizations on the corresponding view
(e. g. front or back) — see Design. Send either views with the customizations to place, or adopt_design_from_variant to copy the design of another variant.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/variants/0/design" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "type": "basic", "views": [ { "handle": "front", "media": [ { "url": "https://any.link.to/image", "collection_name": "mockup" } ], "customizations": [ { "resource_type": "logo", "width": 200, "height": 200, "resource": { "production_method": { "handle": "dtg" }, "media": [ { "url": "https://any.link.to/production-file", "collection_name": "production-file" } ] } }, { "resource_type": "additional-instruction", "resource": { "id": 1 } } ] } ] }'Show a variant GET
Returns the product variant with the `id` = **x**. **Expanding relationships** You can expand some resources to show more details — see [Expanding Objects](/docs/checkout/2022-02-01/basic/expanding-objects): - `/variants/1?expand=product` — show the content of the product instead of the `id` - `/variants/1?expand=views.customizations.resource` — show the content of the customizations' resource
List shipping methods GET
The endpoint lists all available shipping methods that can be transferred in the endpoint [orders](/docs/checkout/2022-02-01/endpoints/orders/createOrder). ## List Returns a collection of shipping methods. ### Filtering You can filter your results as follows: ##### List shipping methods for specified id(s) * `/shipping-methods?filter[id]=1` * `/shipping-methods?filter[id]=1,2,3` ##### List shipping methods for specified name(s) * `/shipping-methods?filter[name]=UPS Standard` * `/shipping-methods?filter[name]=UPS Standard,Pickup` ##### List shipping methods for specified handle(s) * `/shipping-methods?filter[handle]=ups-standard` * `/shipping-methods?filter[handle]=ups-standard,pickup` > **Info:** See: [Pagination](/docs/checkout/2022-02-01/basic/pagination), [Filtering](/docs/checkout/2022-02-01/basic/filtering)