Shopify Channel Settings

Setup Shopify Integration in CORESense

  1. Contact development to setup Shopify in the clients back office.
  2. Create new Shopify channel via back office config tool and execute the SQL generated by tool.
  3. The ‘Base Href’ and Secure Base Href’ should be set to the base href for the location of the web images that will be pushed to Shopify. 

Setup Shopify Store

  1. Create a development store by going to https://partners.shopify.com/
  2. Go to Apps -> Manage Private apps
  3. Click Create a new private app button
  4. Enter your private app name and developer email.
  5. Following permissions for Admin API Permissions are required in order to integrate with-in CORESense.

Permission label

Scope

Customer

View or manage customers, customer addresses, order history, and customer groups

Access Scopes: read_customers, write_customers

Read and write

Discounts

View or manager discounts and discount codes

Access Scopes: read_discounts, write discounts

Read access

Fulfillment services

View or manage fulfillment services

Access Scopes: read_fulfillments, write_fulfillments

Read and write

Inventory

View or manage inventory across multiple locations

Access Scopes: read_inventory, write_inventory

Read and write

Locations

View the geographic location of stores, headquarters, and warehouses

Access Scopes: read_locations

Read access

Merchant-managed fulfillment orders

Access Scopes: read_merchant_managed_fulfillment_orders

Read and write

Order editing

View or manage edits to orders

Access Scopes: read_ order_edits, write_order_edits

Read and write

Orders

View or manage orders, transactions, fulfillments, and abandoned checkouts

Access scopes: read_orders, write_orders

Read and write

Product Listings

View or manage product or collection listings

Access Scopes: read_product_listings, write_product_listings

Read and write

Products

View manage products, variants, and collection

Access Scopes: read_products, write_products

Read and write

Shipping

View or manage shipping carriers, countries, and provinces

Access Scopes: read_shipping, write_shipping

Read access

Third party fulfillment orders

View or manage fulfillment orders assigned to a location managed by any fulfillment

Access Scopes: read_third_party_fulfillment_orders,  write_third_party_fulfillment_orders,

Read and write

  1. Select Webhook API version with 2019-10 value.
    1. Allow this app to access your storefront data
  2. Click ‘Save’ will generate an application where you'll see App Credentials upon refresh. Copy:
    1. API Password
    2. Store Name
    3. App Shared Secret.
  3. The Shopify Store needs to be setup for Manual Fulfillment.

Setup Shopify Data Feeds

  1. Go to Data Feed Manager and create 7 Export Feeds & 1 Order Import Data Feed.
  1. Export Feeds (Note: Transport isn't required for Export)
    1. Create and Update feed for Products (Invocation is Scheduled)
      1. For the product create and update Data Feeds go to the Data Feed Fields for the Data Feeds and remove any fields that the client does not want to push over during product creation or update.
      2. Note that only active product standards and upgrades are pushed to Shopify.
    2. Create and Update feed for Customer (Invocation is Triggered).
  2. And One for Return, Product Publishable and Update Inventory (Invocation is Scheduled).
  3. Import Feeds
    1. Create export feed for Order and Add new Transport with Local Transport and Invocation should be Scheduled

Setup Shopify Integration in CORESense

  1. Goto to System Setting Manager -> Channels -> Shopify and select the Shopify Channel you just created then select Edit.

Setup Shopify Channel Config:

Setup Shopify Payment

  1. Add Shopify Payment Processor by going into System Settings Manager -> Payment Processor -> Add new Merchant Account using ShopifyPayment.
  1. Link New Payment Processor with your Shopify Channel
  2. Go to Settings Manager -> Payment Processor -> Link Merchant Accounts With Channels and link the Shopify Channel to the Shopify Merchant Account you just created.

Synch CORESense Products into Shopify store

  1. Go to Product Manager, Search for a specific product and click on setting icon.
  2. Go to Channels tab, you'll see Shopify Channel in the listing, There will be either Initiate link or Setting icon when you've already initiated this product. Click on respective link.
  3. Make sure status is selected Active and click 'Update'.
  4. Now next run via cron will include this product to push to Shopify or you can directly push this product via Data Feed Manager by specifying the Product ID, copy and paste Product ID in textbox when asked for it.  If you do not specify a Product Id, all newly activated products will be pushed. 

Note: Make sure Auto-Publish Product is selected with Yes in the channel settings, otherwise product won't appear in Shopify Store. Because a product needs to be explicitly set as published in the Shopify configuration.

Note: Scheduled product and inventory feeds run every three hours.

Import Shopify Orders

  1. Orders are being imported directly via Shopify Webhook, which means when an order is created on Shopify, they'll ping CORESense with the order data, CORESense will then import the order.  
  2. The shopify.log file in the temp folder is the file where we can debug the payload and figure out what we're receiving from the Shopify Webhooks.

Re-Import Orders

The 'Re-Import Order' is available for any order that doesn't have a shipment. The process to change an order in CORESense is to make the change in Shopify and then to click the 'Re-Import Order' button in the CORESense Order Manager (located under 'Actions'). This will void the existing CORESense order and re-import the Shopify order.

Note that if you edit a product or configuration in CORESense that will update the product / variant in Shopify but it will not edit a product/variant that is in an order. If you need to do this, then you must also edit the order before re-importing the order.

Line Item Properties

You can collect customization information, including personalization, for products using Shopify's “line item properties”. Line item properties are custom form fields that you can add to the product page, allowing customers to make choices or add information about a product.

line_item properties are passed under “line items” for a specific line_item in the Order API as follows:

"line_items": [ { … " "properties": [ { "name": "custom engraving", "value": "Happy Birthday Mom!" } ], ….} ]

To support line_item properties the Shopify integration will:

Match the Shopify properties and value to a corresponding CORESense personalization, personalization_product and personalization_product_values records.

Note that there are limitations with line item properties. Unlike product variants, you cannot track inventory or change the product's price with your additional custom fields.

The typical workaround to change the product price is to use a variant to add the extra cost. If your product supports a line_item property that would have an additional cost, then it's recommended to create a corresponding variant with the appropriate options, for example – Variant is ‘Customize’ and Options are ‘Yes’ and ‘No’. The Yes' option would change the price of the product. You can then use line_item properties field to support the personalization customer input.

Personalization’s are typically implemented in Shopify using a 3rd party application. To date we have integrated with the ‘Product Customizer.’ Application.

Shopify Local Pickup

Shopify API doesn't give us "Local Pickup" as a shipping method for an order when selected, but they do give us pickup address as shipping title in their APIs. Technically, we should map it's value rather than "Local Pickup". So in order to map local pickup, we may need to put a value of pickup address as can be seen in the screen attached which is "1560 Post Road East" under the Shopify Label.

Shopify Variant Limits

Note that Shopify has limits of 100 variants and 3 variant types per product.

Reset Product Inventory

Specify Product ID or leave blank to update all inventory levels in your Shopify store. Refreshing inventory levels for all skus  may take a some time depending upon number of products/skus active in the channel.

Shopify Notes

Shopify Customer Notes are imported and displayed on the Returns tab and Order Items tab of the Order Manager under Customer Questions and Comments.

Shopify Note Attributes

Note attribute can be mapped to CORESense Order Custom Order Shipping Detail Custom Fields in Shopify Setup.  First create the CORESense custom field and the Shopify Note Attribute, the map them to each other in Shopify Setup. Note that the data type of the CORESense custom field data type should be ‘text’.  CORESense creates the CORESense custom fields.

Shopify Inventory Policy

The inventory policy for a product variant controls whether customers can continue to buy the variant when it is out of stock.

This value is set in the product create feed using the ‘Inventory Policy’ field.

You can hard code this value as follows:

When the value is CONTINUE, customers are able to buy the variant when it's out of stock. When the value is DENY, customers can't buy the variant when it's out of stock.

If you want to manage this on a per product basis, this must be done after the initial product create feed runs. The Inventory Policy Field should also be removed from the Product Update feed. 

You can set the value per product by setting the value to ‘get_inventory_policy()’.

To set this value go to a product, select channels, select the Shopify channel and set the field 'Continue selling when out of stock:' to yes or no.

Inventory is only updated for products that are marked active in the product manager general attributes and the Shopify channel.

Setting Shopify Channel Attributes using Batch Product Update

Note: when updating the Shopify Channel Attributes of Status, Inventory Availability Calculation and Continue selling when out of stock, you need to set and choose a value for each field in order to update.

Shopify Publish/Unpublished

The Shopify publishable feed will un-publish products when they are marked active/inactive in the CORESense Shopify channel or main product setting and it will publish products when they are marked active in the CORESense Shopify Channel and the main product setting.

Images in Product Feeds (Create and Update)

If you prefer to upload and manage images in Shopify instead of CORESense then remove the following fields from the product feeds (note Data Feed Id will be different for each client and these fields need to removed from both the product create and product update feeds):

[Id]

Data Feed Id

Field

Field Label

Position

Back Office Label

Required

37

3

get_configuration_images(main_image)

imageSrc

7

Variant Image

n

58

3

get_product_images(custom_main_image)

ArrayStart:MD:images

29

Start

n

59

3

custom_main_image

src

30

Large Image URL

n

60

3

ArrayEnd

31

End

n

Order Import Errors

Orders can fail to import for a variety of reasons with invalid country of state/province being the most common. To determine the cause of the error you can go to:

The Log file can be download from Data feed manager. (Note: this is replaced each time an order is imported,

The ‘data_feed_errors’ table in technical configuration.  You need to determine the data feed id from the data feed or data feed import table and then filter the ‘data_feed_errors’ table on that id.

© 2023 CORESense ·  info@coresense.com · 125 High Rock Avenue, Saratoga Springs, NY 12866