- Initial extract from
harder-labs/vendure-platform(Phase 0 tasks #7, #14, #19). PrintfulPluginwith idempotent submission, raw-body HMAC webhook, dedupe, sync record cache, admin retry mutation.- Custom fields on
ProductVariant,Channel,Fulfillment. - Stub/live API client toggle via
apiTokenoption. - Lease-based atomic claim on
PrintfulSubmissionStateandPrintfulWebhookDedupe(claimToken column scopes terminal updates). - Webhook error taxonomy: 401 on HMAC failure, 400 on JSON/schema failure.
- BullMQ queue ownership lives in
PrintfulOrderServiceso admin retries preserve the deterministicjobIdguardrail. - TypeORM
timestamptzon time columns (avoids TZ-naive comparison hazard).