Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Merchandise Workflow

Merchandise Overview

Shopify and Printfection

When a customer visits the GitLab Store, they see available products on the front end Shopify store. Advocates manage customer orders using Shopify's backend. Orders are processed and items are shipped through Printfection, which GitLab uses as the store warehouse.

Shopify/Printfection Zapier Integration

All the orders received via are automatically forwarded from Shopify to Printfection via the Printfection-Shopify Zapier integration. On Printfection we manually process the orders and fulfill the shipments. You can always check the status of the orders in the collection tab in Printfection.

Choosing a Vendor

Most swag items are purchased through Printfection.

As a general rule, consider using Stickermule for sending stickers, since the Printfection inventory is limited. If Stickermule doesn't work for you, then use Printfection instead.

If the merch shipment includes:

Always check the Printfection inventory and item availability before sending.

Examples of events where you might order stickers in large quantities from StickMule include:

Ordering on StickerMule

StickerMule is the preferred Vendor for orders that include only stickers, or orders that include a large number of stickers.

  1. Log in to StickerMule
  2. Navigate to the 'Reorder' tab
  3. Select the sticker you'd like to order based on stickers created from previous orders. New stickers can be created, but if possible, it is faster to reorder an existing sticker. Exisiting stickers vary in size, but most are between 2.64"x3"
  4. Stickers must be orders in batches of 10
  5. Enter sticker quantity and process Stickermule order.

Daily Merchandise Workflow

One of the main community advocate tasks is to fulfill all the GitLab swag orders.

Advocates should check for new orders daily as the orders should be fulfilled and shipped in a timely manner. In order to process these orders you'll have to fulfill them both in Shopify and Printfection.

Video tutorial available for GitLab team members.

Where to Find Merchandise Notifications

Please bear in mind the list of countries we do not do business in.


GitLab uses Shopify as a customer facing online store and backend order fulfillment. Fulfilling orders in Shopify serves to send the actual notification that an order has been processed, including the invoice for the customer.

  1. Login to Shopify
  2. Go to the orders page
  3. Make sure to check all the new orders highlighted with the yellow Unfulfilled tag.
  4. Before fulfilling orders, begin the Printfection order fulfillment process. It is important to confirm that Shopify and Printfection orders are the same before fulfilling.
  5. Click on actions > fulfill selected orders
  6. Make sure that the default "send a notification" option is selected and press the fulfill button

That's all, the customers should receive their confirmations automatically.


GitLab uses Printfection as both a vendor and a warehouse. Fulfilling orders in Printfection means that Prinfection will pack and ship items to the customer.

  1. Login to Printfection
  2. Navigate to the Collection Orders and choose "Shopify Store Orders."
  3. Go to the Manage tab
  4. Make sure that all unfulfilled orders from Shopify are shown in Printfection and that everything is okay.
  5. If an order appears in Shopify but not in Printfection, follow the workflow to manually add an order
  6. Press the "Place Orders"

That's all, Printfection will handle the rest.

Note: Printfection also sends the email confirmation to the customer.

Manually Add Orders to Printfection

If orders unfulfilled orders appear in Shopify but are not in Printfection, you might need to manually add the order to Printfection before fulfilling the order.

Before manually adding orders, use the search tool in Printfection to check for orders that are unfulfilled in Shopify. Sometimes, a user will fulfill orders in Printfection without checking Shopify. If you find that an order has already been fulfilled in Printfection, simply fulfill the order in Shopify.

If you cannot locate the order in Printfection, you'll need to manually add the order.

  1. Login to Printfection
  2. Navigate to the Collection Orders and choose "Shopify Store Orders"
  3. Go to the Manage tab
  4. Click the "Add Order" button
  5. Click the "Add an Item" button to add items from the GitLab Shopify store to the order. Use the original order from Shopify as a guide to choose the correct product and size
  6. Use the original order from Shopify to copy all relevant customer information into the Printfection order. Be sure to include name, shipping address, and email address
  7. Click the "Save Order" button then the "Place Order" button
  8. Complete the workflow for fulfilling the order in Shopify

Inventory Management

Manual Check/Update of Inventory

Sometimes, the Shopify/Printfection integration does not successfully update inventory amounts in the Shopify store.

It is important for community advocates to compare Shopify and Printfection inventories approx. 1x per week to avoid out of stock orders from being processed. This is a high priority for products with low inventory.

Check Printfection Inventory

  1. Log into Printfection
  2. Click on Inventory
  3. On the Inventory page, click on Inventory Levels
  4. The data colummn titled 'Physically Available' is the most important data point. This represents the number of that item that currently available in the warehouse

Check Shopify Inventory

  1. Log into Shopify
  2. Click on Products
  3. Click on individual items to review their inventory details
  4. Compare inventory numbers in Shopify with Physically Available information in Printfection. Update accordingly in Shopify

Replenish Printfection Inventory

Community Advocates should watch inventory levels for products in Printfection and order more inventory when inventory is low. Replenish orders typically take 2-3 weeks until items are physically available in the warehouse.

  1. Log into Printfection
  2. Click on Inventory
  3. On the Inventory page, click on Replenish Inventory
  4. Click the green 'Replenish Inventory' button
  5. Choose the 'Print' tag option
  6. Give a name to your print order that describe the inventory you are ordering
  7. Click the 'Start Replenish Order' button
  8. Add Printfection items to the order. Specify the quantity for each item. Notice that some items have a minimum order number. Be mindful of total cost of items and try to order items in bulk, as the price per item decreases for larger quantity orders
  9. When you've completed your replenish order, click the 'Buy Items' button

Adding Products to Shopify

  1. Gather item inventory data - contact the product's vendor
  2. Log in to Shopify
  3. Open the products page
    • Click the Add Product button
    • Fill out information about the item
    • If you don't have the information for the description, please ask/search for it and be careful - the info could be sensitive
    • Image is important, contact the product vendor for the high-rez photo.
    • Fill out the price for the item
    • Select "Shopify tracks this product's inventory"
    • Enter the weight of the product if that info is available.
    • Before saving the product, please check search engine listing preview

For more information, see this official guide

Removing Products from Shopify

  1. Log in to Shopify
  2. Open the Products page
    • Click on the product you want to remove
    • Scroll to the bottom of the page where you can find the delete button

For more information, see this official guide

Additional Order Workflows

Printfection fulfillment notifications

The updates about the orders are sent to both and the customer's email address. You can find those messages in the Merchandise view on GitLab Community Zendesk instance.

Canceling any external order on Shopify and Printfection

You can always cancel the pending/processing orders. All the orders including the orders via Shopify Collections using Discount Codes can be canceled.

  1. From your Printfection home page go to the Shopify store orders collection.
  2. Under the Manage tab, search for the order you want to cancel.
  3. Click Delete order button.
  4. You are done. The order won't be fulfilled by Printfection

Please note that you should always change the status of the orders in Shopify as well.

  1. From your Shopify admin page go to the Orders page
  2. Click on the order you want to change
  3. Press More Actions button in order to see the drop menu options
  4. Select Cancel order option

Tracking IDs

The Tracking ID is usually assigned by Printfection 2-3 days after the order is received. Sometimes, users may request their Tracking ID.

Please follow these steps if the user requests the Tracking ID:

  1. Look for the requester's name/email
  2. Go to the Printfection Reports page
  3. Search for the order using the name/email
  4. Copy the Tracking ID
  5. Confirm that order's details match the requester. You can double check this via Shopify:
    • Search for the same order/person in Shopify
    • Compare if the items, full name, email and the dates are correct
  6. Email the Tracking ID or the full Tracking Link to the requester
    • You can always open the full Tracking Link by clicking on the Tracking ID.
  7. (Optional step) Assign the Tracking ID to the requester's order in Shopify:
    • Find the order in Shopify
    • If you already fulfilled the order in Shopify, click Add tracking button and paste the ID.
    • If the order is unfulfilled in Shopify, mark it as fulfilled and then add the Tracking ID

Sending merch via Printfection

  1. Go to any collection on Prinfection
  2. Click on Manage tab
  3. Press the Add order button
  4. Pick the items and enter the quantity
  5. Important: click Save order button
  6. Input the shipping details
  7. Imporant: click Save order button
  8. You are ready to click the Place the order button

Creating the discount codes

In order to create a coupon code on Shopify, please check out this video tutorial.

Refunding Orders

Sometimes orders need to be refunded to the customer. An example of this could be if a customer places an order for an item that is out of stock. Refunds are processed through Shopify.

  1. Find the order in Shopify
  2. Check Paid notes to see the total amount paid by the customer
  3. Click 'Refund'
  4. Add a reason for the refund. This is an internal note
  5. Add the total amount for refund
  6. Click the 'Refund' button to process the refund to the user
  7. Find the user email address on the order and send them an email via the email address. Explain the reason for the refund and include a link to a discount code to be used on a new order.

Monthly report sharing

Each month the advocates have to run a report of the sold swag items. The reports needs to be sent to Kim S. who is our Accounting Manager.

Please follow the steps in the video tutorial here in order to accomplish this task.

Delayed and lost merchandise shipments

From time to time it may happen that the package never arrives to the customers. Customers usually complain via, however, keep an eye on Twitter, the #swag Slack channel and other related threads.

Please check if the package is still in transport using the tracking ID and reach out to the customer with brief details.

If the package has been in transport over 2-3 weeks, consider apologizing and refunding the 20% of the whole order using Shopify's refund option:

  1. Login to Shopify.
  2. Search the order by name/email/orderID.
  3. Select the order.
  4. Select the "Refund items" option.
  5. On the right part of the page, you have the fields to enter the custom value and reason for a refund.
  6. If you are not sure how to calculate the 20%, multiply 0.2 with the whole amount and that's the exact value.
  7. Use "Reason for refund" field and write the appropriate message explaining that we are refunding 20% of the whole amount due to delayed shipping and press the Refund button.
  8. Don't forget to apologize to the customer using the original thread (e.g. respond via the original Zendesk ticket) and offer any other assistance if needed.

If the customer complains that the package never arrived and the package status is "completed" or "delivered", consider the following options:

  1. Reach out to the vendor ( or and ask if they have information about that specific order.
  2. If the package has been returned or lost, consider asking them to resend it.
  3. If the vendor doesn't resend the package, do it manually asap.
  4. Always consider refunding the whole order amount to the customer.
  5. Since we care about our community and customers, feel free to include extra item/s of your choice, create a coupon code for an apology or any other idea. In this case, the main goal is to make the customer happy.
  6. Don't forget to coordinate everything with the customer (use for conversation), apologize and find out if there's any other thing we could do for them.

Swag Giveaways and Internal Requests


Printfection's Collection campaign is a way to easily collect orders, review them, and then place them all at once. You can manually key-in orders, import orders from a CSV file, or allow other parties to place orders through a hosted landing page.

Create a new Collection campaign

  1. Go to Campaigns tab then click Collections
  2. Click the +COLLECTION CAMPAIGN button.
  3. Enter the name,
  4. Select the option that turns on External Ordering (this option will provide you a link that allows users to place orders for this campaign).
  5. Press CREATE CAMPAIGN button.
  6. Go to the Items tab in the navigation menu.
  7. Click Add Items to Campaign and simply choose the items you want to offer in your Collection.
  8. Go to Settings in the navigation menu and update the GitLab branding (see the existing givaway settings). You'll also need to specify a payment method on this page.
  9. Turn the campaign from Paused to Running in the top right navigation menu. And that's it, you're ready to give some swag!

Last, but not least, you'll want to review the orders from the Manage page within your Collection campaign. Here you can change, update, or remove orders. Review your totals, fulfillment cost, and other details. When you're ready hit Place Orders and place them all at once!


Printfection has the giveaway campaigns which allow us to send a link to our customers and let Printfection handle the rest.

The giveaway campaign works like this:

  1. Choose your swag offerings & brand your redemption page
  2. Send out giveaway links
  3. Customers enter their name and address
  4. Manually fulfill the order in Printfection.

Create a new Giveaway campaign

  1. Go to Campaigns tab then click Giveaways
  2. Click the + GIVEAWAY CAMPAIGN button.
  3. Enter the name and press CREATE CAMPAIGN button.
  4. Go to the Items tab in the navigation menu.
  5. Click Add Items to Campaign and simply choose the items you want to offer in your Giveaway.
  6. Click the Manage in the navigation menu and choose how many initial links you want to giveaway (you can always add more later).
  7. Go to Settings in the navigation menu and update the GitLab branding (see the existing givaway settings). You'll also need to specify a payment method on this page.
  8. Turn the campaign from Paused to Running in the top right navigation menu. And that's it, you're ready to give some swag!

Note: Once a redemption is complete you will have the option to cancel it from the 'Recipients & Redemption' section at the bottom of the 'Overview' page. Just use the 'Cancel' button next to the order. This cancelation option is only available until the order is processed, you'll want to review orders same-day or earlier if you want to cancel them.

Updating the contributors giveaway sheet

We are sharing swag giveaway links to the community contributors. Advocates should replenish the links each quarter and update the with the new links sheet.

Please check out this video tutorial no how to update the sheets or follow the steps bellow:

  1. Login to Printfection.
  2. Go to "Community Contributor" giveaway campaign.
  3. Click on the Manage tab.
  4. Generate new links.
  5. Make sure to download the CSV file of the freshly created links only
  6. Upload the csv file or copy/paste the new links into the sheet

MVP Appreciation Gifts

Each 22nd of the month is a release day - every release we pick a Most Valuable Person and thank them for their contributions. We send them some GitLab swag as a thank you (e.g. a hoodie, socks, and a handmade tanuki). There's also the option of sending personalized swag - see custom swag providers.

  1. Determine MVP after merge window closes, see #release-post channel
  2. Find MVP's contact information
    • An email address is usually stored in git commit data
    • A user might have email or twitter info on their profile
  3. Congratulate the MVP via email, ask for their shipping address, as well as any other relevant information (e.g. shirt size)
  4. Investigate the MVP's interests
    • If the MVP doesn't have a notable presence on social media, you may choose to ask them directly or send GitLab swag instead
  5. Choose a suitable gift (up to 200$ USD)
  6. Write a kind thank you message
  7. Send the gift
    • The MVP should ideally have the gift 48h before the post goes live, though shipping to people outside the United States can take longer and usually won't make it in time
  8. Verify shipment status
    • Make sure that it was sent
    • Make sure that it arrived
  9. Mention the MVP gift in the release post
    • Make sure there's a picture of the gift in the release post if it's available

Internal GitLab Merchandise request

Everyone can request merch in the #swag Slack Channel or email the request to

We can ship the package to any location:

Please include the following info for any type of request:

Notes: we recommend that you request merchandise at least 4 weeks in advance for us to be able to accommodate your request. However,