Storefronts
List storefronts, retrieve order statuses, find sales reps, search orders, and query abandoned carts.
The Storefronts endpoints let you discover the storefronts under your license, retrieve their available order statuses and sales representatives, search for orders with pagination and filtering, and query abandoned shopping carts.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v2/storefront/all | List all storefronts |
GET | /api/v2/storefront/{storefrontId} | Get a specific storefront |
GET | /api/v2/storefront/{storefrontId}/statuses | List order statuses for a storefront |
GET | /api/v2/storefront/{storefrontId}/sales_reps | List sales reps for a storefront |
GET | /api/v2/storefront/{storefrontId}/search_orders | Search orders in a storefront |
GET | /api/v2/storefront/{storefrontId}/abandoned_carts | Get abandoned carts for a storefront |
List Storefronts
Retrieve all active (non-deleted) storefronts under your license.
GET /api/v2/storefront/allExample Response
[
{
"id": 1,
"name": "My Print Store",
"url": "store.example.com",
"is_retail": true
},
{
"id": 2,
"name": "Wholesale Portal",
"url": "wholesale.example.com",
"is_retail": false
}
]Storefront Fields
| Field | Type | Description |
|---|---|---|
id | integer | Unique storefront ID. Use this when calling other endpoints that accept a storefrontId. |
name | string | Storefront display name. |
url | string | Storefront domain URL. |
is_retail | boolean | Whether this is a retail (public) storefront vs. a private/B2B storefront. |
Get Storefront
Retrieve a single storefront by ID.
GET /api/v2/storefront/{storefrontId}Returns the same Storefront object.
Get Status List
Retrieve the list of order statuses configured for a storefront, ordered by their sequence position.
GET /api/v2/storefront/{storefrontId}/statusesExample Response
[
{ "id": 10, "name": "New Order", "is_production": false, "order": 1 },
{ "id": 11, "name": "In Production", "is_production": true, "order": 2 },
{ "id": 12, "name": "Shipped", "is_production": false, "order": 3 }
]Status Fields
| Field | Type | Description |
|---|---|---|
id | integer | Status ID. Use the name (not ID) when calling the Update Order Status endpoint. |
name | string | Status display name. |
is_production | boolean | Whether this status is classified as a production status (status type starts with "production"). |
order | integer | Sequence position for display ordering. |
Get Sales Reps
Retrieve customers flagged as sales representatives on a storefront.
GET /api/v2/storefront/{storefrontId}/sales_repsReturns an array of Customer objects for users marked as sales reps.
Search Orders
Search for orders in a storefront with filtering and pagination. Returns 20 results per page.
GET /api/v2/storefront/{storefrontId}/search_ordersParameters
| Name | Type | Location | Description |
|---|---|---|---|
storefrontId | integer | path | Target storefront ID. |
query | string | query | Free-text search matching order ID, customer name, PO number, or billing/shipping name. Optional. |
fromDate | date | query | Start date filter (inclusive). Format: YYYY-MM-DD. Optional. |
toDate | date | query | End date filter (inclusive). Format: YYYY-MM-DD. Optional. |
status | string | query | Comma-separated list of status IDs to filter by. Optional. |
sales_rep | string | query | Comma-separated list of sales rep customer IDs to filter by. Optional. |
page | integer | query | Page number (1-based). Defaults to 1. |
view | string | query | Order view: active (default), archived, or deleted. |
Example Request
curl -X GET "https://api.printnow.com/api/v2/storefront/1/search_orders?fromDate=2026-01-01&toDate=2026-01-31&status=10,11&page=1" \
-u "YOUR_TOKEN:YOUR_KEY"Example Response
{
"total_results": 47,
"page": 1,
"total_pages": 3,
"orders": [
{
"id": 5001,
"storefront": "My Print Store",
"status": "New Order",
"customer": { },
"items": [ ]
}
]
}Search Results Fields
| Field | Type | Description |
|---|---|---|
total_results | integer | Total number of matching orders across all pages. |
page | integer | Current page number. |
total_pages | integer | Total number of pages (20 results per page). |
orders | array | Array of full Order objects for the current page. |
Get Abandoned Carts
Retrieve abandoned shopping carts for logged-in (non-temporary) users on a storefront. Only returns carts that contain items.
GET /api/v2/storefront/{storefrontId}/abandoned_cartsParameters
| Name | Type | Location | Description |
|---|---|---|---|
storefrontId | integer | path | Target storefront ID. |
fromDate | date | query | Start date filter. Format: YYYY-MM-DD. Optional (use either date range or recentSpan). |
toDate | date | query | End date filter. Format: YYYY-MM-DD. Optional. |
recentSpan | string | query | Relative time span. Format: number + unit (d=days, w=weeks, m=months). Examples: 7d, 2w, 3m. Defaults to 7d if no dates provided. |
The from date cannot be more than 180 days in the past.
Example Request
curl -X GET "https://api.printnow.com/api/v2/storefront/1/abandoned_carts?recentSpan=2w" \
-u "YOUR_TOKEN:YOUR_KEY"Example Response
[
{
"created_on": "2026-01-18T14:30:00",
"customer_id": 12345,
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@example.com",
"items": [
{
"name": "Business Cards",
"quantity": 500,
"thumbnail": "/thumbnails/p/42",
"options": [
{ "name": "Paper Stock", "value": "14pt Matte" },
{ "name": "Size", "value": "3.5 x 2" }
]
}
]
}
]Abandoned Cart Fields
| Field | Type | Description |
|---|---|---|
created_on | datetime | When the cart was created. |
customer_id | integer | Customer ID of the cart owner. |
first_name | string | Customer first name. |
last_name | string | Customer last name. |
email | string | Customer email address. |
items | array | Array of cart items. |
Abandoned Cart Item Fields
| Field | Type | Description |
|---|---|---|
name | string | Product name. |
quantity | integer | Quantity in cart. |
thumbnail | string | Relative URL to the product thumbnail image. |
options | array | Array of selected options as name/value pairs. Includes pricing options, size, color, turnaround, and parametric variables. |
Error Responses
| Code | Message | Cause |
|---|---|---|
404 | Storefront not found. | No active storefront with this ID exists under your license. |
400 | From date can't be more than 180 days in the past. | The fromDate parameter exceeds the 180-day lookback limit for abandoned carts. |