Coming soon GiftPrint is launching on the Shopify App Store shortly. No install needed to try it. Open the live demo →

Integrations

GiftPrint as Print Engine

GiftPrint is designed to work alongside existing gift message apps. Instead of replacing Giftship, Wrapin, or Wrapped, GiftPrint enhances them by providing beautiful print-ready templates and professional formatting. They collect the message; GiftPrint prints it beautifully.

Architectural principle

If your store already uses Giftship, Wrapin, or Wrapped, do NOT install the GiftPrint storefront widget. Two widgets competing to collect gift messages on the same product page creates conflicts and unreliable behavior, especially on theme updates.

Instead, keep using your existing gift app's widget. GiftPrint automatically detects messages from that app with zero additional setup.

How GiftPrint reads messages

When you open an order in GiftPrint, it scans the order for gift messages across two Shopify standard fields and a fallback:

  1. Order-level custom attributes (customAttributes / note_attributes) — captured by most gift apps
  2. Line item properties — for messages attached to specific products
  3. Order note — used only when the two sources above produced zero messages

Every match in (1) and (2) is collected — a single order can produce multiple gift cards if a customer attached different messages to different line items, or if attributes appear at both levels. The order note is a last-resort fallback, not a per-source layer.

Supported keys

GiftPrint recognizes gift messages under these property keys. Key matching is case-sensitive (Gift Message matches, gift message does not). Template values are normalized to lowercase, so Luxury and luxury both work.

KeySource / Context
Gift MessageWrapped app, GiftPrint widget, generic implementations
Gift NoteWrapin (probable), generic implementations
MessageGiftship — detected only when a non-empty To or From property is present in the same attribute set
_gift_messageCustom implementations (underscored for private data)
gift_messageCustom implementations
gift-noteCustom implementations
gift-messageCustom implementations
_gift_noteCustom implementations
_has_gift_noteGiftPrint widget marker — emits an empty placeholder card if no message key was filled

If none of the keys above match at the order or line-item level, GiftPrint falls back to the order's note field (Shopify's native "Order note") as a single message.

Why Giftship uses context detection: Giftship stores gift messages under the generic key Message. To avoid false positives with other apps that use Message for non-gift data, GiftPrint only treats it as a gift message when To or From properties are also present.

Template selection from order data

Templates can be specified per-order by adding a Template or _gift_card_template property to the same location as the message:

{
  "Gift Message": "Happy Birthday!",
  "Template": "luxury"
}

GiftPrint recognizes these keys (case-sensitive): Template, _gift_card_template

Template values are normalized to lowercase, so Luxury, LUXURY, and luxury all resolve to the same template.

Priority:

  1. If Template or _gift_card_template is present, GiftPrint uses that template
  2. If missing, falls back to the shop's default template (set in Settings → General)
  3. If the template ID is invalid or unknown, uses the shop default

Editing before print

When a merchant opens an order with a detected gift message in GiftPrint:

  1. The message and template are loaded into the preview
  2. Merchant can click Edit to open a modal with the full message and template picker
  3. Changes are visible in the live preview
  4. When saved, edits apply only to this session — the original message in the Shopify order is never modified
  5. All following PDFs use the edited version for this order only

This is intentional: GiftPrint never overwrites original customer data.

App-specific setup guides

Giftship

GiftPrint auto-detects Giftship messages. No additional configuration needed.

See the full guide: Giftship integration

Wrapin

GiftPrint auto-detects Wrapin messages. No additional configuration needed.

See the full guide: Wrapin integration

Wrapped

GiftPrint auto-detects Wrapped messages. No additional configuration needed.

See the full guide: Wrapped integration

Other apps and custom implementations

If your gift app stores messages under a standard Shopify field (not in a proprietary database), GiftPrint should detect it automatically using the fallback keys listed above.

To verify:

  1. Check that a message stored by your app appears in the order's note_attributes or line item properties (use Shopify's API explorer or order webhook payloads)
  2. Find the property key (e.g., "Custom Gift Message")
  3. Contact support@pg-artlab.com with the key name
  4. We'll add it to the list in the next update

If your app stores messages in a custom table or private database without writing to Shopify fields, GiftPrint cannot access them — integration would require Shopify GraphQL API or webhook configuration by the other app.

Combining with GiftPrint's storefront widget

If you want to offer BOTH:

  • Messages collected by another app (for existing stores)
  • Direct GiftPrint widget (for new stores or specific products)

Install the GiftPrint widget only on specific product templates, not globally. Use theme settings to hide it on products where your other app is active.

Multiple messages on one order

GiftPrint does not deduplicate. If multiple gift apps each write a message to the same order under different keys — or if the customer added gift messages to several line items — GiftPrint extracts all of them and shows each as its own gift card in the order view, ready to print individually.

Recommendation: Use one gift app for message collection to avoid duplicate cards. If you do see duplicates, you can skip the unwanted card in the order view; printing is per-card.

Troubleshooting integrations

GiftPrint doesn't detect a message:

  • Verify the message was actually saved to the order (check in Shopify admin → Orders → click the order → scroll to Custom attributes)
  • Check that the app's key name matches one of the supported keys listed above
  • For Giftship specifically, verify that To or From properties are also present

Message appears with wrong formatting:

  • GiftPrint reads the message exactly as stored by the other app
  • If the other app stored HTML or special characters, those are preserved
  • Edit the message in GiftPrint before printing to clean up formatting

For more troubleshooting, see Troubleshooting.