
Barcode Man prints labels from your WooCommerce store. Design a label once, choose the products or orders you want, and get a PDF that fits your label paper.
Use it for price tags, shelf labels, barcode stickers for stock, hang tags and shipping address labels.
Why choose this plugin?
Your labels fill themselves in from WooCommerce. Product names, prices and SKUs come straight from your store, so you never retype them and a price change shows up the next time you print. It works with the printer you already have, from an office printer with Avery sheets to a Zebra or Dymo label printer. Barcode Man never changes your products unless you confirm it, and the plugin adds nothing to your storefront pages.
Plugin Features
Drag-and-drop label designer
Add text, barcodes, QR codes, images and shapes, and put them where you want. Link them to the product’s name, description, price, regular price, SKU, weight, variation options or product image. Save your designs and reuse them.
Barcodes scanners can read
Print EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39, GS1-128, ISBN and QR codes. The barcode can hold the product’s SKU, its product or variation ID, or a value you type.
Print many products at once
Choose products and variations, set how many labels each one needs, and print them all in one PDF.
Variations included
Each variation can have its own label, SKU and barcode, so sizes and colors are easy to tell apart.
Address labels from orders
Pick orders and print their shipping addresses on labels.
Scan and Print
Scan a product’s barcode to add it to the print list. This is handy for restocking.
SKU generator
Create SKUs for products that don’t have them, so every product can get a barcode. You see a preview first, and nothing is saved until you confirm.
Works with your label paper
Choose Avery, A4 or US Letter sheets, Dymo, Brother, Zebra or Rollo rolls, or enter your own label size.
How it works
After you install the plugin, go to WooCommerce > Barcode Man, sign in to your Barcode Man account and allow it to access your store. You design and print labels on the Barcode Man website, which opens in a new browser tab.
External services
Barcode Man is a hosted label service run by Gookit. This WordPress plugin is
only a connector; the label designer runs in a separate browser tab at
https://woocommerce.barcodeman.app, with its API at
https://prod-bcm-api.barcodeman.app. The plugin does not bundle that workspace.
The services below are used by the connector, the hosted workspace or its
backend as described. Browser requests also disclose normal request metadata,
such as IP address and browser information, to the receiving service.
WordPress connector: Barcode Man / Gookit
- Purpose: connect your WooCommerce store to your Gookit account, check the connection and remove workspace access when you disconnect.
- Data and timing: clicking Connect sends your store URL, connector namespace and distribution channel to the Barcode Man API. Reconnecting also sends the saved Site Account ID and plugin token, if present. Connection completion checks and cancellation send the one-time connection ID and secret. Opening the connector page checks the saved Site Account ID and plugin token; Disconnect sends them to remove access. When you approve WooCommerce’s authorization screen, WooCommerce sends its REST API credentials directly to Barcode Man; this plugin does not keep a copy of those credentials.
- Terms | Privacy Policy
Hosted workspace and backend
These services run outside WordPress. Signing in, designing labels, choosing
products or orders, uploading images, generating labels and sending a support
form use the hosted workspace and its backend.
Barcode Man / Gookit — store data and labels
- Purpose: show your store data, save designs and produce labels.
- Data and timing: when you use the workspace, Barcode Man receives your signed-in account/session and selected Site Account ID. Depending on your actions, its API reads WooCommerce products, variations and orders, including customer names and billing/shipping addresses for address labels. Template designs, image uploads and label-generation requests are sent when you perform those actions. Product SKUs are written back only when you confirm the SKU operation. The printer setup test label uses sample product details and a sample picture that ship with the workspace; it does not read your products or request the picture from another service.
- Terms | Privacy Policy
Supabase — account sign-in
- Purpose: create and authenticate your Gookit account and maintain your signed-in session.
- Data and timing: signing up or signing in sends your email address and password to Supabase. Password recovery sends your email address; setting a new password sends the new password. Session validation and refresh send the authentication/session credentials needed to keep you signed in. This applies when the hosted workspace’s Supabase identity service is configured.
- Terms | Privacy Policy
Google Fonts — label fonts
- Purpose: load fonts for the workspace and label designs.
- Data and timing: opening the workspace requests a stylesheet from fonts.googleapis.com with the font-family names and normal browser request metadata. Font files are requested from Google’s font servers as the browser needs them, subject to its cache. Requests begin when the workspace opens, without waiting for you to select a font.
- Google Terms | Google Privacy Policy
Google Firebase / Cloud Firestore — saved templates
- Purpose: store and retrieve label designs through the Barcode Man backend.
- Data and timing: creating, opening, editing, duplicating or deleting templates causes the backend to write or read template records in Cloud Firestore. Records include the associated store ID, template name, layout elements and design content, such as text and image links that you put in a template.
- Google Cloud Terms | Google Privacy Policy | Firebase privacy information
Bytescale — uploaded images
- Purpose: store and deliver images you upload for labels.
- Data and timing: uploading a template image sends the image bytes through Barcode Man to Bytescale, with a storage path containing the platform, Site Account ID and template ID. Displaying an uploaded image requests its Bytescale delivery URL from your browser, including normal request metadata.
- Terms | Privacy Policy
DigitalOcean Spaces — generated labels
- Purpose: store generated PDFs and label preview images so you can view or download them.
- Data and timing: after label generation, the backend uploads PDF or PNG bytes with a storage path and metadata identifying the shop and generation job. The file contains whatever your design renders, which can include product details, barcodes, images and customer names/addresses for address labels. Viewing or downloading it requests the storage URL from your browser, including normal request metadata.
- Terms | Privacy Policy
Formspree — support form
- Purpose: deliver your support request to Gookit.
- Data and timing: submitting the workspace support form sends your name, email address, message, any attachments you select (up to five), platform, form version and your site home URL as the store identifier (instanceId) to Formspree. Include only information you want to share with support.
- Terms | Privacy Policy
Intercom — support identification
- Purpose: let Gookit support identify your store when you ask for help. No chat launcher is shown.
- Data and timing: when you open the Barcode Man Home screen and your store details have loaded, the workspace loads Intercom’s messenger script and sends your site home URL (as the Intercom user ID), store name (falling back to your site hostname), WordPress admin email (as the contact email), platform (woocommerce), plan label and workspace version (v3) to Intercom, with normal browser request metadata.
- Terms | Privacy Policy
Sentry — diagnostics and session replay
- Purpose: diagnose errors and understand failures in the hosted workspace and backend.
- Data and timing: when a Sentry endpoint is configured, errors and diagnostic events can send error details, request/device metadata, store identity and interaction breadcrumbs. The hosted browser also requests the optional replay integration from browser.sentry-cdn.com. If that integration loads and replay is enabled, production sessions are sampled at 10% and sessions with errors at 100%. Replay can include visible page text, customer names/addresses and product or label-preview images: text and media are not fully masked. Not every session is recorded. The API and PDF worker also send diagnostics when their own Sentry endpoints are configured.
- Terms | Privacy Policy
Stripe — WordPress.org subscriptions
- Purpose: manage paid plans for the WordPress.org connector.
- Data and timing: starting a subscription can create a Stripe customer with the Site Account ID as metadata, then sends the customer ID, plan price ID and checkout return URLs. Subscription status checks and cancellation use the customer/subscription identifiers. You enter your payment and billing details directly on Stripe’s checkout page.
- Terms | Privacy Policy
Screenshots

Connecting your store from WooCommerce > Barcode Man.

The label designer, with a barcode linked to the product SKU.

Choosing label paper: a custom roll, a roll with several labels across, or a sheet.

Choosing products and variations and setting how many labels to print.

Making address labels from orders. The address shown is an example.

Scan and Print, and the SKU generator's preview before anything is saved.