Importing and Syncing Products
If you have a large product catalog on Shopify it will be quite some work to manually create and link all these products to their counterpart in Firmhouse. To save you time and manual work, Firmhouse offers a Shopify import/synchronization feature.
Normally, Shopify products don't contain information about subscriptions, such as billing schedule. Firmhouse uses tags and metafields in Shopify to provide this information and create or update the products correctly in Firmhouse. This article explains how to add tags and metafields to your product and initiate an import.
Understanding tags and metafields
Tags and metafields are used to provide information about how a product should appear in Firmhouse. They can be used both for creating new products as well as for updating existing products.
Tags
In Shopify, tags are used to categorize a variety of objects. In this article we'll focus only on product tags but you can read about other uses in Shopify's article on Creating and using tags in Shopify.
Most tags are valid only for specific project types (Plan-based or Smart order-based).
Tags for Plan-based projects
The following tags work with Plan-based projects:
FIRMHOUSE_ONE_TIME- creates a one-time sale product in FirmhouseFIRMHOUSE_SUBSCRIPTION- creates a monthly/recurring product in Firmhouse
Tags for Smart-order-based projects
The following tags work with Smart order-based projects:
FIRMHOUSE_SHIPMENT_ONE_TIME- creates a product that will be shipped only onceFIRMHOUSE_SHIPMENT_INTERVAL_<number>_<UNITS>- creates a recurring product that will be shipped according to the specified interval (note that the<UNITS>part is plural and capitalized, e.g.,1_WEEKS)FIRMHOUSE_SHIPMENT_ON_BILLING_CYCLE- creates a recurring product that aligns with the subscriber's unified shipment schedule (only relevant for setups where all recurring products are shipped together)
Tags for both project types
The following tags can be applied to both project types:
FIRMHOUSE_SUBSCRIPTION_DISCOUNT_<number>- applies a discount percentage to products with recurring shipping created viaFIRMHOUSE_SHIPMENT_INTERVALor theshipmentmetafield (products with one-time shipping will not be affected)FIRMHOUSE_SHOPIFY_PRICE_FOR_ONE_TIME- the price of the product or variant in Shopify will be used for one-time products, overriding thesubscription_pricemetafield (use this tag together with the metafield to set different prices for one-time and recurring products)
Tips for using tags
If a tag is applied to a Shopify product with multiple variants, the setting will be applied to all variants (can be overridden by variant metafields).
If multiple tags for shipment or billing are applied to a Shopify product, this will create multiple Firmhouse products. For example, adding both FIRMHOUSE_SHIPMENT_ONE_TIME and FIRMHOUSE_SHIPMENT_INTERVAL_1_MONTHS to a product will create a one-time product and a recurring product. If the Shopify product has variants, two Firmhouse products will be created for each variant.
Metafields
Just like tags, metafields can be added to many kinds of objects. In this article we'll focus on product and variant metafields. You can read about other uses in Shopify's article on Metafields. First, learn how to create custom metafield definitions.
All metafields used by Firmhouse use the firmhouse namespace. After you create a metafield, it will be "pinned" by default, meaning it will be visible in products and variants and you can directly set a value for it.
The following metafields are available:
shipment
Single line text <amount>_<units>
1_weeks
-
subscription_price
Decimal
21.50
Affects all types of products
subscription_discount
Integer
50
Affects only recurring products
exclude_from_discount
Single line text true
true
Accepts only true. Setting it to false will not make the product eligible for discount if it was previously excluded.
billing
Single line text one_time or subscription
one_time
Works only in plan-based projects
max_commitment
Single line text <amount>_<units>
2_years
Works only in plan-based projects
min_commitment
Single line text <amount>_<units>
3_months
Works only in plan-based projects
grace_period
Single line text <amount>_<units>
14_days
Works only in plan-based projects
Note that the <units> part in metafields is plural and not capitalized (e.g., 1_weeks).
Tips for using metafields
Metafields can be applied to both products and variants. If the same metafield is applied to a product and a variant at the same time, the value of the variant metafield will take priority.
Metafields override tags. If you add a FIRMHOUSE_SUBSCRIPTION_DISCOUNT tag and a subscription_discount metafield simultaneously, the metafield will take priority. There's one exception to this: FIRMHOUSE_SHOPIFY_PRICE_FOR_ONE_TIME overrides metafields.
Do not use tags and metafields that set product schedules simultaneously. This can lead to new products being created every time you sync. For example, if you have a Smart order-based project and you add the tag FIRMHOUSE_SHIPMENT_1_WEEKS and the metafield shipment with value 2_months, every time you sync a new Firmhouse product will be created because metafields take priority.
Performing a product import or sync
Steps
In your Firmhouse project, go to Apps.
Click Configure on the Shopify app.
Click on the Product sync tab.
Under Sync settings, select the desired options in the How to sync and What to sync sections.
Click on Start syncing.
A summary of the sync will be shown in the Sync History below. Here, you can view the changes and settings for a specific synchronization.
Sync settings
The following sync settings are available:
How to sync options include creating new products, skipping products without Shopify tags, updating existing products, deleting products without Shopify tags, grouping and updating Shopify variants, and creating an asset for every product.
What to sync options include product image, product title, product price, product SKU, product tax rate, shipping settings of the product, billing settings of the product, and commitment terms of the product.
We recommend selecting only the options you need for a specific import.
Last updated