Overview
Theme app extension block
Drop
<div id="fc-slot"> and the script tag onto the product page. Block settings: workflowId, presentation. Per-product via the metafield filecheck.workflowId.Cart attributes
Write
jobId to cart.attributes['Filecheck Job'] via the AJAX Cart API once canProceed === true. Disable Add to cart client-side until then.Order webhooks
On
orders/paid, read note_attributes['Filecheck Job'], call GET /jobs/{id} with your secret key, and attach the output file via the Files API.Connector (optional)
Store the connector JSON in a metafield (filecheck.connector) and pass it as the connector option to drive quantity and size inputs from file facts.