Printago API
GET
/v1/customizer/configs/{configId}/shopify-publication
Get customizer Shopify publication state
Current Shopify publishing state for a config: the publication row (if any), the connected integration, discovered product candidates matching the config's SKU, and ready-to-use storefront / theme-editor URLs.
Path Parameters
configId
required
string
The customizer config ID
Response Schema
CustomizerPublicationState
directUrlrequirednullable
string
Storefront URL for the direct-to-customizer page (app proxy).
integrationrequirednullable
object
integrationIdrequired
string
shoprequired
string
shopNamerequired
string
productCandidatesrequired
object[]
handlerequired
string
productIdrequired
string
statusrequired
string
titlerequired
string
publicationrequirednullable
object
Shopify publishing state for a customizer config on one integration.
Embed mode writes the `printago.sku_id` product metafield the theme app
extension block reads; direct mode exposes the app-proxy customizer URL
as a standalone storefront page.
configIdrequired
string
pattern: ^[a-z0-9]{24}$
createdAtrequired
string
format: date-time
idrequired
string
pattern: ^[a-z0-9]{24}$
integrationIdrequired
string
pattern: ^[a-z0-9]{24}$
lastErrorrequirednullable
string
metafieldSetAtrequirednullable
string
format: date-time
moderequired
"embed_product_page" | "direct_page"
embed_product_pagedirect_page
shopifyProductHandlerequirednullable
string
shopifyProductIdrequirednullable
string
statusrequired
"published" | "unpublished" | "error"
publishedunpublishederror
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
updatedAtrequired
string
format: date-time
skuCoderequirednullable
string
skuIdrequirednullable
string
pattern: ^[a-z0-9]{24}$
themeEditorUrlrequirednullable
string
Theme-editor deep link that pre-adds the customizer block.
Example Response
200 OK — application/json
{
"publication": {
"configId": "string",
"integrationId": "string",
"mode": "embed_product_page",
"shopifyProductId": "string",
"shopifyProductHandle": "string",
"status": "published",
"metafieldSetAt": "2025-01-15T12:00:00.000Z",
"lastError": "string",
"id": "string",
"storeId": "string",
"createdAt": "2025-01-15T12:00:00.000Z",
"updatedAt": "2025-01-15T12:00:00.000Z"
},
"integration": {
"integrationId": "string",
"shop": "string",
"shopName": "string"
},
"skuId": "string",
"skuCode": "string",
"productCandidates": [
{
"productId": "string",
"title": "string",
"handle": "string",
"status": "string"
}
],
"directUrl": "string",
"themeEditorUrl": "string"
}