Sending print details with metafields is ideal if you manage your own catalog and artwork, especially with many designs or designs that change often.
Once your Shopify store is connected to Fulfill Engine, you can send decorated orders without creating each product and design in Fulfill Engine first. Instead, you are able to tag your Shopify products and variants with a few metafields that
tell us:
- Which blank to use: a Fulfill Engine SKU on each variant (color/size).
- How to decorate it: one or more prints on the product, each with a location, method, and artwork URL.
When an order comes in, we read these metafields and produce the item as described.
Before You Begin
- Your Shopify store must already be connected to Fulfill Engine, with orders being sent to us for fulfillment.
Follow the Shopify Integration Setup Guide here. - Get the Fulfill Engine SKU IDs for each blank, color, and size you plan to sell. Review Product Catalog here.
- Host your artwork files at public URLs that stay available, for example in your Shopify Files or on a CDN
Step 1: Create the Metafield Definitions
In Shopify admin, go to Settings → Custom data.
Variant metafields
Under Variants, choose Add definition:
| Name (suggested) | Namespace and key | Type |
| Fulfill Engine SKU | fulfillengine.sku | Single line text |
Product metafields
Under Products, add one set of three definitions for each print you'll need. Start with print 1:
| Name (suggested) | Namespace and key | Type |
| FE Print 1 Location | fulfillengine.print_1_location | Single line text |
| FE Print 1 Method | fulfillengine.print_1_method | Single line text |
| FE Print 1 Artwork URL | fulfillengine.print_1_url | Single line text |
For products with more than one print, such as front and back, also add print_2_location, print_2_method, print_2_url, then print_3_..., and so on.
The namespace must be exactly fulfillengine, and keys must match the spelling above (lowercase,underscores).
Step 2: Set the SKU on Every Variant
Open each product, select each variant, and enter its Fulfill Engine SKU ID in Fulfill Engine SKU.
- Every variant you sell needs its own value. Setting it only on the product isn't enough.
- Enter the SKU ID exactly, with no extra spaces.
Step 3: Add Print Details to the Product
On the product, fill in the print metafields:
- Location: where the artwork goes (see Artwork Placement below).
- Method: how it's decorated (see Decoration Methods below).
- Artwork URL: a link to the print-ready artwork file.
Rules:
- Always start with print 1, and number additional prints in order (1, 2, 3...). Don't skip numbers; prints after a gap are ignored.
- Each print needs all three values: location, method, and URL.
- Prints apply to all variants of the product. If different colors need different artwork, such as a white print on dark shirts, create separate products.
Example: Product Team Logo Tee
| Metafield | Value |
| fulfillengine.print_1_location | front |
| fulfillengine.print_1_method | dtg |
| fulfillengine.print_1_url | https://cdn.example.com/art/team-logo-front.png |
| fulfillengine.print_2_location | back |
| fulfillengine.print_2_location | dtg |
| fulfillengine.print_2_url |
https://cdn.example.com/art/team-logo-back.png |
Variant Navy / L:
| Metafield | Value |
| fulfillengine.sku | Insert Fulfill Engine SKU ID for the Navy / L blank |
Artwork Requirements
- Supply print-ready files sized to the actual print dimensions. We print the artwork at the size provided and don't scale it.
- Use a high-resolution PNG with a transparent background for most garment methods.
- URLs must be publicly reachable, with no login, and must stay valid until the order ships.
Artwork Placement
Values are not case-sensitive. The placement must be available for the blank you select. Confirm the placement within the catalog here.
| Value | Location |
| front | Full front (on hats, the cap front) |
| back | Full back |
| left_chest / right_chest | Left / Right chest |
| upper_back | Upper back |
| lower_back | Lower back |
| left_sleeve / right_sleeve | Left / Right sleeve |
| neck_label | Applicable for Enterprise accounts Inside neck label |
| cap_front cap_back cap_side_left cap_side_right |
Hats |
| drinkware_front drinkware_back drinkware_wrap |
Drinkware |
Decoration Methods
The method must be available for the blank you select. Confirm the methods within the catalog here.
| Value | Method |
| dtg | Direct to Garment |
| dtf | Direct to Film |
| embroidery | Embroidery |
| screen_printing | 24 piece MOQ Screen Printing |
| screen_print_transfer | Applicable for Enterprise accounts Screen Print Transfer |
| htv | Applicable for Enterprise accounts Heat Transfer Vinyl |
| dye_sublimation | Dye Sublimation |
| uv_print | UV Print |
| engraving | Engraving |
| heat_seal_patch | Applicable for Enterprise accounts Heat Seal Patch |
| sewn_on_patch | Applicable for Enterprise accounts Sewn on Patch |
| sticker | Applicable for Enterprise accounts Sticker |
| neck_label | Applicable for Enterprise accounts Neck Label |
| transfer_label | Applicable for Enterprise accounts Transfer Label |
| hangtag | Applicable for Enterprise accounts Hang Tag |
| liquid_3d | LIQUID 3D™ |
Step 4: Test Before Going Live
- Set up one product and its variants following the steps above.
- Place a test order and send it to Fulfill Engine for fulfillment.
- In Fulfill Engine, confirm the order shows the right blank, color, size, print locations, and artwork.
- Then roll out to the rest of your catalog. For many products, Shopify's bulk editor or a bulk import app can fill in metafields faster.
Troubleshooting
If we can't process an order, the fulfillment request is rejected and the reason appears on the order in Shopify.
| Message | What to check |
| Unrecognized SKU "<your SKU>" | The variant has no fulfillengine.sku value, or the product has no print_1_... values. Check the namespace and key spelling, and that the SKU is on the variant and the prints are on the product. |
| SKU <id> unrecognized for variant <id> | The fulfillengine.sku value isn't a valid Fulfill Engine SKU ID. Check for typos or extra spaces. |
| ... has incomplete fulfillengine.print_N metadata |
Print N is missing its location, method, or URL. |
| Shopify print location ''<value>" is not recognized ... | The location is misspelled or isn't available on that blank. |
| Shopify print method ''<value>" is not recognized. | The method isn't one of the Print Methods values. |
Tips
- After you add or fix metafields, wait about 5 minutes before retrying the order. Recent lookups are briefly cached.
- Check the exact product and variant on the order. A similar-looking product or a different variant may be the one missing values.
- If a Shopify SKU matches a product you've already set up directly in Fulfill Engine, that existing setup is used instead of the metafields.