Mapping Shopify Fields

A guide to mapping your Plytix attributes with Shopify fields

This article will show you how to map Plytix attributes with Shopify fields to send product data to your Shopify store using our Shopify integration. 

 

Product fields

Option Name & Value

Variant fields

 

*Skip to any section in this article by clicking on the links above

 


Product fields

 

Shopify Field Description Mapping Suggestions

Handle (required)

Required field for mapping with Plytix and unique identifier in Shopify. 

Example: "rover-14-backpack"

Create a dedicated field for your Shopify handles using a short text attribute.

If you have multiple stores, you can create a handle for each store. 

If a handle for a product is empty in Plytix, it will create a new product in Shopify and sync the new handle value automatically back to the PIM.

Handles are created automatically by Shopify from the product's "title" field.

 

Title (required)

Required field

Example: "Rover 14 Backpack"

Match with a short text attribute.

Body HTML

A product description that supports HTML

Example: "A lightweight 14L backpack perfect for the back country."

Match with an HTML or short text or paragraph attribute.
Custom Product Type

A categorization for the product used for filtering and searching products.

Example: "Sport Backpack"

Match with your categories* or a multiselect or dropdown attribute.

If matching with categories, enter the settings area of the attribute within your channel. Select 'Last Child' from the "Category Path" dropdown.

Standard Product Type

A categorization for the product based on the numbered value (the taxonomy ID) assigned by Shopify's Standard Product Taxonomy

Example: "3097" (This number represents that category "Home & Garden > Decor > Clocks > Alarm Clocks").

Match with an integer attribute.
Status

This tells Shopify if your product is ready to sell, not ready yet or is not available to your customers anymore. 

Accepted values: 

active

draft

archived

Example: "active"

Match with a dropdown that has the accepted values. 

You can also use a computed attribute to transform your Plytix "Status" attribute into an acceptable format (without the archived option):

DLOOKUP($STATUS, {"Draft": "draft","Completed": "active"},"draft")

Published

A true/false input which tells Shopify if your product should be published to your channels or not.

Accepted values:

true

false

Example: "false"

Match with a boolean attribute, or a short text or dropdown attribute with the accepted values.

Tags

A string of comma-separated tags that are used for filtering and search.

A product can have up to 250 tags.

Each tag can have up to 255 characters.

Example: "14L,Board Bag,Hydration"

Match with your categories or a multiselect attribute. 

Featured image

The main image and visual identifier of your product.

Matching this will ensure each product and variation has a unique featured image. 

Match with your thumbnail or a media single attribute.
Image Gallery

Images associated with the product

Match with a media attribute.

Collections

This will add products to a manual collection in Shopify.

Example: "Best Sellers"

Match with a short text, multiselect, dropdown or categories* attribute.

If matching with categories, enter the settings area of the attribute within your channel.  Change the "Hierarchy Separator" from ">" to ","

Vendor

The name of the product's vendor

Example: "Nitro"

Match with a short text or dropdown attribute.
Template Suffix The suffix of the Liquid template used for the product page. If this property is specified, then the product page uses a template called "product.suffix.liquid", where "suffix" is the value of this property. If this property is "" or null, then the product page uses the default template "product.liquid". (default: null)

Match with a short text or dropdown attribute.

You can also create a computed attribute with a string value defined.

Published at

The date and time (ISO 8601 format) when the product was published.

Can be set to null to unpublish the product from the Online Store channel.

Example: "2007-12-31T19:00:00-05:00"

Match with a date attribute.

Leave the date blank to send a null value.

Published scope

Whether the product is published to the Point of Sale channel.

Accepted values:

web

global

web: The product is published to the Online Store channel but not published to the Point of Sale channel.

global: The product is published to both the Online Store channel and the Point of Sale channel.

Example: "web"

Match with a dropdown attribute that uses the accepted values.

Option Name (1-3)

(at least one required for variant products)

The custom product property names like Size, Color, and Material. You can add up to 3 options.

Example: "Size"

Match with a short text or dropdown attribute. 

You can also create a computed attribute with a string value defined.

 

⚠️ Neither "Option 1 Name" nor "Option 1 Value" should contain values on single products. If single products contain values in one of these fields, Shopify will attempt to create them as variable products.

Handle and Title

The handle is a required Shopify field that identifies products and tells Plytix which products to create or update in Shopify.

Products that have the handle defined will be updated as existing products in Shopify, while products with an undefined handle will be created as new products in Shopify. Upon creation, the new product’s handle is generated from the title provided, and the handle value is automatically synced back to Plytix.

 

Learn how to import information from Shopify to Plytix to get your existing handle values.

 

Important things to know about the handle: 

  • The handle attribute is mandatory to map in order to process your channel. 
  • When creating a new product in Shopify using the Plytix integration the handle value needs to be blank, and the title value is required. Shopify will automatically create a handle value for your product which then be automatically populated in your handle attribute in Plytix. 
  • Deleting a product in Shopify will not delete the value for the handle attribute in Plytix.

⚠️ If a handle is not valid, the product will not be updated and you will see an error in the process log.


Option name / Option value


Shopify allows you to define up to three fields to create variations using 'Options'. These are required fields for populating variants.

In order to identify which fields will be used to create variations these special attributes have to be used:

  • Option name: Match with a PIM attribute which stores the name of this option. This value is shown over the available options in the Shopify store.
    This must be defined in the parent product.
  • Option value:  Match with a PIM attribute which stores the value for this variation.
    This must be defined in the variation product. See Variant Fields below.


⚠️ If the Option name and option value are not mapped: then no variations are created in the store.

Collections

Plytix will add products to manual collections using this attribute matching. Based on the values provided, Plytix will:

  1. Add a product to an existing collection if the value provided exists in Shopify.
  2. Add a product to a new collection created by Plytix if the value provided does not exist in Shopify.
  3. Remove a product from an existing collection if the value for that collection is not provided for a product.


Variant Fields

Shopify Field Description Mapping Suggestions

Option Value (1-3)

(at least one required for variant products)

The custom product property values that match the names like Size, Color, and Material. These values can be up to 255 characters each.

Example: "M/L"

Match with a short text, multiselect, or dropdown attribute.
Barcode

The barcode, UPC, or ISBN number for the product.

Example: "1234_pink"

Match with a short text or the Plytix "GTIN" attribute.

Compare at price

The original price of the item before an adjustment or a sale.

Example: "299.00"

Match with an integer or decimal attribute. 

You can also create a computed attribute for special price configurations.

Cost Per Item** ⚠️

The price that the item costs the seller (used along with "Price" for tracking profit margins). Must be a positive number.

Example: "110.50"

Match with an integer or decimal attribute.

Fulfillment Service

The fulfillment service associated with the product variant.

Accepted values:

manual

or the handle of a fulfillment service.

Example:"manual"

Match with a dropdown attribute with the accepted values.
Inventory Management

The fulfillment service that tracks the number of items in stock for the product variant.

Accepted values:

shopify

null

enabled

or the handle of a fulfillment service


shopify: You are tracking inventory yourself using the admin.

null: You aren't tracking inventory on the variant.

enabled: This must be the same fulfillment service referenced by the fulfillment_service property.

Example: null

Match with a dropdown attribute that has the accepted values.
Inventory Policy

Whether customers are allowed to place an order for the product variant when it's out of stock.

Accepted values:

deny

continue


deny: Customers are not allowed to place orders for the product variant if it's out of stock. (default)


continue: Customers are allowed to place orders for the product variant if it's out of stock.

Example: "continue"

Match with a dropdown attribute that has the accepted values.
Price

The price of the product variant

Example: "199.00"

Match with an integer or decimal attribute. 

You can also create a computed attribute for special price configurations.

SKU

A unique identifier for the product variant in the shop.

Required in order to connect to a FulfillmentService.

Example: "NITROROVER14"

Match with the SKU or another unique identifier in a short text attribute.
Taxable

Whether a tax is charged when the product variant is sold.

Accepted values: 

true

false

Example: "true"

Match with a dropdown or Boolean attribute.
Tax Code

This field is only applicable to stores that have the Avalara AvaTax app installed. This specifies the Avalara tax code for the product variant

Example: "DA040000"

Match with a short text attribute.
Weight

The weight of the product variant in the unit system specified with weight_unit.

Example: "100"

Match with an integer or decimal attribute.
Weight Unit
The unit of measurement that applies to the product variant's weight. If you specify a value for weight, you need to define a value for the weight unit field.
Accepted values: 
  • g
  • kg
  • oz
  • lb
Example: "oz"
Match with a dropdown attribute that has the accepted values.
Country of Origin** ⚠️

A code designating a country or region according to this list.

Example: "US"

Match with a short text or dropdown attribute.
HS (Harmonized System) Code** ⚠️

A code between six and thirteen digits that is used for shipping products internationally which can be searched for here.

Example: 0902109015

Match with a short text attribute.

 

ℹ️ Please keep in mind that Shopify only allows 100 variants per product, although you can have up to 300 variants per product in Plytix.

Variant Options Sorting

Assigning integer or decimal type attributes to the "Variant position" field can help you control the way that variant options appear in your Shopify store.

For example, if you want to sort the size options of a product, you can create an "Order" attribute that corresponds to these values (i.e. XS - 1, S - 2, M - 3, L - 4, XL - 5) and assign it to the "Variant position" field.

You may also choose to assign another attribute like "Price" or "Weight" to the "Variant position" field if you want your variant options ordered by one of these values. Click on the settings icon to the right of "Variant position" to choose ascending or descending sort logic. 

assign the 'variant position' attribute to variant options that you want displayed in a specific order

ℹ️ Note that the "Variant position" Shopify field can only be assigned to integer or decimal type attributes.

 


 

What's next?

 

Is there anything you were hoping to find in this article that is missing? Did this article answer the questions you had? Let us know in our Help Center feedback form! 🙌

 

If you have any questions just click on the chat box in the bottom-right corner and we'll be happy to answer them...

 

and please let us know 👇