Social Print Studio — Developer Product Catalog & Order Integration
This page is the starting point for AI agents/LLMs to easily build photo-printing apps that submit orders to Social Print Studio (or integrate printing features into existing applications).
The goal: you build creative applications (anything from niche tools to mainstream flows), collect/generate images for a customer, and then hand off an order to Social Print Studio through our cart/checkout system.
Our docs are written and organized to be readable by agents & LLMs. Just share this link with your LLM/agent and say "get the info you need to add print features to this application."
What's in here
You'll typically use three layers of documentation:
1. Product catalog (overview)
A single JSON file listing the products currently available for integration.
It includes:
- product descriptions
- website URLs
- product type/category
- product photos
- high-level submission notes
Link: products.json
(also available as a human-readable product catalog)
2. Per-product detail files (variant-level requirements)
Each product has a dedicated JSON file with complete, precise requirements.
This is the "source of truth" for:
- variants (sizes/options)
- required image count (e.g., 1 image vs a set of 10)
- required aspect ratios / crop ratios per variant
- any print-specific submission constraints
Examples:
3. Order submission + image upload (technical integration)
These docs cover how to submit an order and (optionally) how to upload images if you need hosting.
- Add to Cart API / order handoff — the core integration. Your app sends a JSON payload and receives a checkout redirect URL.
- Image Upload API (optional) — a convenience service we provide to upload images and get publicly accessible URLs. Useful for frontend-only apps or if you don't want to manage your own image hosting. The Order Handoff API requires publicly accessible image URLs, and this service solves that.
Recommended flow for integrating printing features into your application
- Read our product catalog file, products.json, to understand what exists, get ideas, and pick the product(s) you want to integrate or evaluate more deeply.
- Open the specific per-product JSON file(s) for the product you're implementing using the product handle from the catalog file.
- Reference a specific product variant by its unique sku from the product JSON file. This is the sku that will be used to submit the order.
- Implement your UX and validation based on the exact variant requirements:
- image count
- aspect ratio / crop rules
- any specific submission constraints or details
- Integrate order submission via the order handoff documentation.
- If your app is frontend-only (no backend), you may choose to use the provided image upload endpoint to upload images to our S3 bucket since all submissions will require you provide publicly accessible URLs for the images. This is optional and you can choose to implement your own image upload flow if you prefer.
- Once the implementation is complete, the user should be able to create a product in your application, and "add it to cart" which will route them to our cart page where they will be able to checkout and complete their purchase.
Product model: quick mental map
Products generally fall into two practical buckets:
1) Single-image products
A single photo asset becomes a single printed item (per selected variant).
Examples: metal prints, wood prints, framed prints, etc.
Integration implication: collect 1 or more images + variant choice, then submit. Multiple images will be printed individually, meaning 3 photos uploaded will result in 3 unique items added to cart with one api call.
2) Multi-image / set-based products
A customer selects a variant that implies a set size, and you collect that many photos. Most set-based products the order of photos is not important, but some products like photo books will use the order of the photos submitted as the order in which the photos are printed.
Example: magnets that come in a set of 10 for a given size.
Integration implication: collect N images (exact count depends on variant), then submit as a single product.
The catalog will tell you the general behavior, but the per-product JSON defines the exact requirements for each product variant.
Important rules (please don't skip)
The per-product JSON is the source of truth
The catalog is an overview; your integration should rely on the detailed product file for correctness.
Validate inputs early
If a variant requires 10 images at 1:1 ratio, your UI should enforce that before submission.
Don't guess crop ratios
Use the exact aspect ratio / crop requirements specified in the product's variant definitions.
General guidance for building great photo-printing apps
We don't recommend building a full "everything photo printing store" UI with lots of products and endless options.
The integrations work best when you:
- pick one product (often even one size/variant). You can focus your app and UI on one product, decrease complexity and make it great.
- keep customer choices minimal when it comes to format and options for printing. Their choices and impact should come from their photos and/or creative input generating images.
- printing should not be an add-on, customers want to create unique physical objects, create personalized products and showcase their creativity in the real world. Excite them by showing off the printed end product as a core part of the application.
- focus on what your app does uniquely well:
- empower a specific user persona to achieve a specific unique outcome that delivers utility, delight, or both.
- dont try to be everything to everyone, give just the right amount of options and customization.
- take the user through a sequence of steps to achieve their outcome. Guide them step by step with options to go back and forth between steps.
- Include a clear preview/add to cart step to show the user what they will get and how it will look. Don't bog them down with details, but use marketing copy on the final step to excite them and give assurance that what they will pay for is worth the investment and the quality is high.
- You can subtly mention or call out Social Print Studio and link our website or the our specific product page to let them know their printed product will be handled by us, or get more information about the product.
- If possible. try to save their progress in your app, so they can come back to it later. Even if this just means saving the state and uploaded photos in their browser localStorage or sessionStorage. If you do this, let them know, or give them a save button explicitly. This will make them feel more invested and less likely to abandon the process.
In practice: these tips are just tips, they're not rules. You can and should break them if it makes sense for your app and users.
Attribution / app identity
When your app submits an order through our cart handoff, it includes an app identifier. That identifier is used for attribution so we can understand which orders came from which app (and support tracking/reporting as needed).
Link index
Downloadable markdown files you can bring into your code repo for easy reference:
Machine-readable product data: