Skip to main content

LeafLink Integration

LeafLink Integration

LeafLink wholesale cannabis marketplace is one of the largest networks of licensed cannabis businesses in operation. Connecting 6200+ retailers with 2300+ brands and distributors, LeafLink streamlines cannabis commerce in the entire supply chain. The platform allows participants to easily:

  • send and receive orders with e-commerce tools;

  • tap into a large network of compliant cannabis businesses;

  • track order statuses with easy-to-use dashboards;

  • streamline communication with messaging features;

  • and to optimize operations for Brands with:

    • e-commerce marketplace capabilities;

    • order management workflow;

    • CRM system;

    • reporting tools.

 

Integrating LeafLink with Cin7 Core gives LeafLink retailers, brands and distributors a powerful inventory management program, while existing Cin7 Core users can expand their e-commerce reach by using LeafLink's marketplace platform.

As of now, LeafLink is available for operation in Alaska, Arizona, California, Colorado, Connecticut, Illinois, Massachusetts, Maryland, Michigan, Nevada, New York, Oklahoma, Oregon, Pennsylvania, Puerto Rico and Washington states. LeafLink is only available in the United States. Retailers, brands, and distributors must have a valid commercial license issued by one of these states in order to ship to customers.

Since LeafLink is responsible for checking of proper licensing in business operations, this integration only supports one-way (LeafLink → Cin7 Core) integration. Products can be listed and orders created at the LeafLink e-store side only.

Prerequisites

  • A valid license is required to register on LeafLink for commercial purposes. Please direct questions about obtaining licenses to LeafLink directly.

  • Register as a LeafLink brand and configure account, including:

    • Provide master user/account owner information

    • Provide company and license information

    • At least one user account

    • At least one brand

    • Configure inventory of products with all required properties

    • Configure customers

      • Credentials

      • Licenses

      • Price tiers

      • Payment terms

      • Delivery fees

      • etc.

    • Create API security keys

  • Users will need the Integration: LeafLink permission in order to use this feature.

  • Users will need to add an External integration licence to their subscription if they do not have one available.

 

Setting up LeafLink integration in Cin7 Core

In order to setup an integration, you will need to have first registered an account as a LeafLink brand with a valid commercial license and at least one brand.

As of now, LeafLink is available for operation in Alaska, Arizona, California, Colorado, Connecticut, Illinois, Massachusetts, Maryland, Michigan, Nevada, New York, Oklahoma, Oregon, Pennsylvania, Puerto Rico and Washington states.

Account must be set up with

  • Master user/account owner information

  • Provide company and license information

  • Configure inventory of products with all required properties

  • Configure customers

  • Credentials

  • Licenses

  • Price tiers

  • Payment terms

  • Delivery fees

  • etc.

 

One Cin7 Core account can be connected to multiple LeafLink e-stores and one LeafLink store can be connected to multiple Cin7 Core accounts.

Connecting Cin7 Core to LeafLink

First, you need logon to LeafLink with an admin or developer account and go to Settings → Company information.

Turn ON Enable developer options access.

  

Secondly, go to Settings → Applications → API Key to generate the API key by clicking on relevant buttons. Make a note of your API Key. Next, go to Developer options and make a note of your Company ID. Next, return to Cin7 Core to connect the LeafLink store.

  1. Navigate to Integrations  → LeafLink.

  2. Click + to connect a new store. It's possible to use one Cin7 Core account with multiple LeafLink e-stores and the same LeafLink store with multiple Cin7 Core accounts.

  3. Enter your the following info:

    • LeafLink shop name: Name of the e-shop, as it is set on LeafLink account page

    • Company ID: LeafLink Company code

    • License ID: Cannabis ID license for the company

    • API key: Secure API authorization key generated for account in LeafLink management interface

  4. Now click Connect to LeafLink.

  5. To give Cin7 Core access to your account/shop, click Allow access. You will then be taken back to Cin7 Core.

  

Note: Currently store segregation is implemented via different brands registered by LeafLink. To add a new brand in LeafLink, log in to your LeafLink account, go to the Settings → Brands tab and Request new brand.

Integration settings

Once you've connected Cin7 Core to your LeafLink account, you can then configure the integration settings between the two systems under the Setup tab on the LeafLink Integration page in Cin7 Core.

General settings

Capture of orders in Cin7 Core

Cin7 Core can capture orders from LeafLink when:

  • Order is accepted (buyer/seller licenses have been checked).

    • Applies to LeafLink statuses: Accepted, fulfilled, shipped, completed, rejected, cancelled, combined.

  • Order is (fully) paid.

    • Applies to LeafLink statuses: Fulfilled (with IsPaid field ON), shipped, completed, rejected, cancelled, combined.

  • Order is completed.

    • Applies to LeafLink statuses: Completed, rejected, cancelled, combined.

 

These statuses are ignored: Backordered, submitted.

Order consolidation

Sales are processed in Cin7 Core using any of the two consolidation types.

  • No consolidation indicates that all walk-in/cash register sales will be created as individual sales orders in Cin7 Core.

  • Daily consolidation will consolidate all sales for the day into a single sales order.

When daily consolidation is chosen, a Consolidation time setting becomes available. This is your local time when all pending orders aggregated during the day will be processed.

Customer

An existing customer in Cin7 Core will need to be selected for pending order processing to work in certain scenarios.

  • When Consolidation type: Daily consolidation this customer is used to create a new sales task which will combine all daily sales into a single sale.

  • When Consolidation type: No consolidation, this customer is used in cases where customer information is not provided. If customer info exists in the sale order, then this setting is ignored.

 

Wholesale price tier

This setting determines which Cin7 Core product price tier to use when selling wholesale products.

Sale price tier

This setting determines which Cin7 Core product price tier to use for non-wholesale product transactions. If there is no sale price in LeafLink, the wholesale price will be used.

Regular price tier

This setting determines which Cin7 Core product price tier to show MSRP (informational only - this price does not affect transactions).

Pick, pack and ship processing mode

This setting tells Cin7 Core if it should try to auto pick, auto pack and auto ship items for sale tasks created when a pending order is processed by Cin7 Core. If there is not enough stock on hand to pick the full quantity of products in an order, then pick should remain in draft state and pack and ship won’t be done. Cin7 Core does not pick up shipment information from LeafLink and will not create fulfillment in LeafLink if auto-ship is selected.

Process auto-assembly as

This dropdown field has two options:

  • For ordered quantity: Does not check stock quantity. An assembly order is created for the quantity specified in the sale order, regardless of stock availability.

  • For minimum quantity required for picking: Assemble stock required to meet the quantity of specific sale order.

    • If stock availability is negative, auto-assembly will produce a finished goods quantity which is more than the quantity ordered through sale order.

    • If there is already stock available in inventory but not enough to fulfill the sale order quantity, auto-assembly will assemble the difference in quantity needed to meet the sale order requirement.

    • If stock availability exceeds sale order quantity, auto-assembly is not triggered.

Stock availability is validated against the sale order location and does not take on order quantity into account.

Link LeafLink store to Cin7 Core location

Choose a Cin7 Core location to use for LeafLink store sales fulfillment. Each LeafLink store should have a dedicated location within Cin7 Core, which can be selected from the drop-down menu. One location might be used for several stores. Selecting a particular warehouse should limit the availability of stock in LeafLink to that location. If the default option All locations is chosen Cin7 Core will display consolidated stock quantities across all its the locations.

  

Account and cash settings

Invoice status

You can control the invoice status for sales tasks created as a result of pending order processing. By default, an invoice will not be authorized and will be in draft state, adjustable and waiting for authorization. However, if this setting is changed to authorized, the invoice will be automatically created and authorized. It can then be synced with your preferred accounting application.

Sales representative name

This option allows the entered name to be used as the sales representative for the sales task.

Optional revenue account

The revenue account to be used for all sales downloaded from LeafLink. This will override the settings at the product/customer level and any other account mapping.

Use LeafLink as master source for Cin7 Core products

This option sets the direction of structuring data flow between Cin7 Core and LeafLink: when enabled, Cin7 Core should not push product categories and brands to LeafLink. Instead, products in Cin7 Core should be updated with categories and brands from LeafLink. Enabled by default.

Update stock levels in LeafLink

Controls if stock level is updated automatically in LeafLink store by Cin7 Core at the time when available product quantity changes in Cin7 Core. This may be useful for manual managing stock level in LeafLink. Disabled by default.

Please ensure you have the correct stock quantities entered in Cin7 Core before you turn on this option as these values will override the stock quantities in LeafLink. Enabling Update stock levels in LeafLink will display the Use buffer inventory setting.

Use buffer inventory

Displayed when Update stock levels in LeafLink is enabled. Allows for an inventory buffer on stock quantities pushed to LeafLink. Sync quantity passed to LeafLink when updating stock levels will be equal to Actual stock - buffer inventory. Enabling this setting will enable the Buffer inventory field.

Buffer inventory

Displayed when Use buffer inventory is enabled. Enter an integer number of stock to act as a buffer. Sync quantity passed to LeafLink when updating stock levels will be equal to Actual stock - buffer inventory. When this setting is enabled, Sync quantity and Buffer inventory quantity will be added as fields to the Catalog and Bulk listing tables alongside stock availability.

Note: Once buffer inventory is enabled and specified, it will be applied across all products listed on the Catalog and Bulk listing tabs. However, sync quantities will only be updated in the channel if the user updates a product.

Export shipping information to LeafLink

Enable to export shipping information from Cin7 Core to LeafLink. Enabled by default.      

Tax mapping

Orders will be skipped on download if tax rules are not mapped!

When Cin7 Core processes a pending sale, it creates a sales task with order and invoice lines completed. This setting ensures consistent application of tax rules between LeafLink and Cin7 Core. It is required to map tax rules loaded from LeafLink to tax rules set up in Cin7 Core by selecting the relevant option from the Cin7 Core Tax Rules list.

Tax rules should be tax-exclusive. LeafLink do not provide detailed tax information per line of order, so Cin7 Core distributes taxes across licensed product lines proportionally.

Note: Generally LeafLink only applies an Excise tax to orders in CA, AR and PR (where only medical cannabis is legalized, while US federal taxes are zero). When another tax scheme is applied for customers in other US states, Other excise tax is used. All other taxes (if necessary) are typically handled outside of LeafLink.

  

Map payment methods to payment accounts

Cin7 Core captures payments made against orders in LeafLink and automatically adds payments to a created sale invoice when payment account mapping is configured. This setting is not mandatory – if payment mapping is not completed, orders are still captured and downloaded from LeafLink, but payments must be manually added to invoices in Cin7 Core.

  

Disconnect from LeafLink

When you disconnect from your LeafLink store, Cin7 Core removes all associations between this Cin7 Core shop and LeafLink, including all logs and product catalog. Please take care when disconnecting from your LeafLink shop, as there is no way you can link Cin7 Core and LeafLink again automatically without going through the initial setup operations again.

  

Catalog

The Catalog tab on the LeafLink integration page is where you manage products and product quantity. From the catalog tab, you can perform the following:

  • download products from LeafLink to Cin7 Core.

  • update (name, description, wholesale price, sale price, retail price) for individual products from Cin7 Core to LeafLink.

  • delete links between Cin7 Core and LeafLink products.

  • update stock levels in LeafLink from Cin7 Core.

  • download customers from LeafLink to Cin7 Core.

 

Search by typing SKU, product name or category into the search field. Refresh shows the most recent catalog data.

  

Downloading products

From the Catalog tab, you can download either new products from LeafLink to Cin7 Core, or update information (name, description, wholesale price, sale price, retail price) about existing products in Cin7 Core based on updated product information from LeafLink.

Downloading a product from LeafLink to Cin7 Core will automatically create a specalized attribute set named LeafLink to store LeafLink specific values. If there is an existing attribute set named 'LeafLink' with attributes that are not exactly as expected an error will be displayed during product download or when adding a new store.

To download products from LeafLink to Cin7 Core:

  1. Under the Catalog tab, click Download → Products.

  2. On the Load products from LeafLink window, click Load from LeafLink.

 

Note: Products are not downloaded as a product family. Each product variation will be downloaded as a separate product.

  

Product field mapping

Cin7 Core field

LeafLink field

SKU

SKU

Product name

Name

Description

Description

Category

Category

Brand

Brand

Unit of measure

Unit of measure

Price tier value for regular price

Regular price

Price tier value for wholesale price

Wholesale price

Price tier value for sale price

Sale price

Images

Images

Product attribute 1 (Licence)

Licence*

Product attribute 2 (Strain name)*

Strain name*

Product attribute 3 (Strain type)*

Strain type*

Product attribute 4 (Product line)*

Product line*

Product attribute 5 (Subcategory)*

Subcategory*

Product attribute 6 (Listing state)*

Listing state*

Product attribute 7 (Unit denomination)*

Unit denomination*

Product attribute 8 (Unit multiplier)*

Unit multiplier*

Product attribute 9 (Minimum order)*

Minimum order*

Product attribute 10 (Maximum irder)*

Maximum order (or maximum available)*

*Cin7 Core will automatically create a specalized attribute set to store these LeafLink specific values.

Downloading customers

From the Catalog tab, you can either create new customers in Cin7 Core with contact information and addresses captured from LeafLink. Downloading customers will also update existing customer information if it has been changed in LeafLink.

To download customer information from LeafLink to Cin7 Core:

  1. Under the Catalog tab, click Download → Customers.

  2. On the Load customers from LeafLink window, click Load from LeafLink.

  

Customer field mapping

Cin7 Core field

LeafLink field

Name, Contact

Name

Currency

Currency (USD only)

ID

ID

Email

Email

BillingAddressState,                                                                                                                   

ShippingAddressState                                                                                                                   

State

BillingAddressCountry, ShippingAddressCountry

Country (United States is the only available country)

BillingAddressLine1, ShippingAddressLine1

Address

BillingAddressPostcode, ShippingAddressPostcode

Zipcode

ShippingAddressSuburb, BillingAddressSuburb

City

Website

Website

Updating quantities

To update product quantities in LeafLink with the currently available quantities in Cin7 Core:

  1. Under the Catalog tab, click Update quantities in LeafLink.

  

Managing the catalog

Due to legal restrictions, products can only be created in LeafLink. Individual products can be updated (name, description, wholesale price, sale price, retail price), unlinked, set to sync stock levels, or removed from LeafLink from the catalog tab.

Update a product

  1. Click on the product in the Catalog tab.

  2. Enable or disable Sync stock level for that product. Disabling means stock levels will NOT synchronize for that product when there is a change in its stock level in Cin7 Core.

  3. In the pop-up window, click Update on LeafLink.

  4. Save your changes.

 

Note: Updating a product from the catalog will update stock level in LeafLink, regardless of the sync stock level setting status.


Unlink a product

  1. Click on the product in the Catalog tab.

  2. Click Unlink from LeafLink.

  3. Click Save.

 

This will unlink the product in Cin7 Core from LeafLink, but not remove it from LeafLink.

Remove a product

  1. Click on the product in the Catalog tab.

  2. Click Remove from LeafLink.

  3. Click Save.

 

This will remove the product from LeafLink (but not in Cin7 Core) by setting the product status to Archived.

Buffer inventory

Instead of showing actual inventory values in eCommerce storefronts, many retailers prefer to display an estimated display quantity where there is a safe buffer stock on their backend to avoid overselling products. Cin7 Core allows for an inventory buffer on stock quantities pushed to LeafLink, both for the whole channel and at the product level.

Buffer inventory levels for the whole channel are controlled from the Setup tab. Update stock levels in LeafLink setting must be enabled.

  • Use buffer inventory: Displayed when Update stock levels in LeafLink is enabled. Allows for an inventory buffer on stock quantities pushed to LeafLink. Enabling this setting will enable the Buffer inventory field.

  • Buffer inventory: Displayed when Use buffer inventory is enabled. Enter an integer number of stock to act as a buffer. Sync quantity passed to LeafLink when updating stock levels will be equal to Actual stock - buffer inventory.

 

When this setting is enabled, Sync quantity and Buffer inventory quantity will be added as fields to the Catalog and Bulk listing tables alongside stock availability. However, sync quantities will only be updated in the channel if the user updates or lists a product.

Buffer Inventory for the whole channel can be overwritten by a product level buffer from either the Catalog or Bulk listing page (Use buffer inventory must be enabled from the channel Setup tab). The product level buffer value will ALWAYS override the value set on the setup tab. If the setup tab buffer inventory value is changed, this will not affect products with product level buffers.

Note: Product level inventory buffer is disabled by default. In the case of wanting to turn off inventory buffer for certain products only, the user will need to enable buffer inventory and enter a value to apply it to the whole catalog, THEN set product level buffer to 0 for those products, then update or list the item to apply changes.

If the user wishes to apply inventory buffer ONLY to one or more specific products, inventory buffer should be enabled on the Setup tab and set to 0. Then, product level buffer inventory can be enabled and configured for products from either the catalog or bulk listing page. You will need to list or update the item to apply changes.

On the Catalog page:

Click on a listed or unlisted item to open a pop-up window and slide Use product level buffer inventory to enable. You can then enter an integer value for Product level buffer which will overwrite the channel buffer value. You will then need to Update or the product for the new stock level quantity to be displayed in the channel. Save and Close to continue.

  

On the Bulk operations page:

Use this to update product level buffer for multiple items at once. Use the search box and filter options to filter items to update in bulk.

The Use buffer inventory menu allows you to Turn on product level setting, Remove product level setting, or Don't update existing setting.

Turning on product level setting allows you to then enter an integer value for Product level buffer. Click Update to overwrite the channel buffer value for the filtered products with the product level buffer.

Selecting Remove product level setting, then Update, will remove the product level setting from the filtered products and return them to the channel buffer inventory value.

Selecting Don't update existing setting will leave all buffer values, including product level buffer values, unchanged when updating listings.

  

Bulk operations

Due to legal restrictions, products can only be created in LeafLink. Products can be updated, unlinked (breaks link without removing product from LeafLink) or unlisted (sets LeafLink product to Archived) from this tab. Press Refresh to update the display.

When Use buffer inventory setting is enabled from the Setup tab, Sync quantity and Buffer inventory quantity will be added as fields to the bulk listing tables alongside stock availability. See Buffer inventory for more information.

  1. Go to the Bulk listing tab.

  2. Select products to update, unlist, or unlink in bulk. You can select products by brand, category, product tag.

  3. Click Update/Unlist/Unlink to carry out the bulk operation.

  

Pending orders

Orders are automatically downloaded when the order is created or order status changes in LeafLink. Generally, you are not required to trigger manual order download. However, if an order was not captured by Cin7 Core or to load historical sales, you can use the Manual order download option available from the Pending orders tab. Cin7 Core allows loading historical sales data a maximum of one year old.

Whenever a sale is captured from LeafLink, it is first place into pending orders and stock is allocated.

If No consolidation is selected, each LeafLink sale is converted into an identical sale in Cin7 Core, keeping the same customer and shipping information. If Daily consolidation is selected, a single daily sale task should be created and use the customer selected in the integration settings for store, so that customer, billing, and shipping information imported from LeafLink is ignored.

Loading pending orders from LeafLink


To download pending orders manually:

  1. Select the Pending orderstab.

  2. Click Load orders.

  3. On the Load orders from LeafLink window, select a date for the sales transactions to be loaded from the calendar, then click Load from LeafLink.Cin7 Core allows loading historical sales data a maximum of one year old.

 

Take note of the following when loading pending orders from LeafLink:

  • Any downloaded order is saved to Pending sales, which is a temporary storage of all sales and payments in Cin7 Core. Only orders matching the defined capture option, with status set to either accepted, paid or completed, are saved.

  • If an order has an entry in logs, or if it was already downloaded before, it will be skipped. This guarantees that Cin7 Core will not create any duplicate sales from previous transactions.

  • While saving an order, Cin7 Core captures customer information, billing and shipping addresses. All line items are captured together with quantities, prices and totals. Total order discounts are applied as additional charges to the whole order, without distribution by lines to reduce any chances of discrepancy.

  • For each line in a sale, Cin7 Core attempts to locate the corresponding product by SKU. If no product is found, Cin7 Core attempts to download product info from LeafLink with the same logic as in the Download Products function. The sale line is then saved to Pending Orders with all data from LeafLink, including tax, quantity and total.

Processing pending orders

After pending sales orders are reloaded from LeafLink, you should process pending orders to generate sales in Cin7 Core.

To manually process pending orders, click Process on the Pending Order tab. Order download includes download of  all lines, payments, related customer and sales rep. If some differences exist in the order total between Cin7 Core and LeafLink orders, then a manual adjustment is added to Cin7 Core sale to correct this.

  

Refunds

Returns and refunds are not yet supported in this integration. Returns and refunds processed through Leaflink will not be captured and synced to Cin7 Core, and no stock will be restocked. Refunds and restocks will have to be manually added to the sale in Cin7 Core.

If your organization has a Cin7 Core as part of its subscription, you can add an RMA Portal where customers can submit their return requests, initiate the Cin7 Core RMA workflow, and view the status of their returns. This includes sales processed through connected eCommerce channels.

Please see detailed instructions at RMA Portal for returns requests.

Please note that refunds/restocked processed in this way will not be automatically exported to the eCommerce channel, and will have to be added manually updated within the channel.

Order field mapping

Cin7 Core field                                                         

LeafLink field                                                         

OrderID

Number

OrderNumber

ShortId

FinancialStatus, OrderState

Status

SalesRepresentative

SalesReps[0] (if empty LeafLink - [shopname])

Date

CreatedOn

CustomerNote

Notes

CustomerReference

Customer.Id

LocationID

from General settings.

ShippingRequiredByDate

ShipDate

ShippingNotes

ShippingDetails

Name

"Shipping - " + ShippingDetails \ product.Name \ “Discount” \ “Discount X%” \ "Additional amount" (Depends on order line from LeafLink)

Quantity

OrderLine.Quantity

Price

ShippingCharge \ Calculated price \ Discount amount calculated

TotalPerLine

Calculated total price

Comment

OrderLine.Notes \ "Manual adjustments"

LineID

OrderLine.Id

Tax

Calculated price (0 if non-licensed)

AdditionalData

product.Description

TaxRuleID

Mapping from incoming tax rule

SKU

product.Sku

Log

Each captured LeafLink order, once saved to Pending Sales, creates a Log entry to enable tracking of the linked sale in Cin7 Core and in LeafLink. This also helps avoid creating duplicate orders when capturing the same order several times during manual order load.

To view log entries, select the Log tab.

Take note of the following considerations when it comes to Log entries:

  • They allow you to see which sales task links to a particular LeafLink sale.

  • You have an option to delete Log entries manually. This will allow you to reprocess an order if required. Deleting log entries will not void or delete sales tasks associated with these entries.

  

Operations Log

Each time the user or Cin7 Core downloads sales, the appropriate record is added to the operations log, which also contains information about results of downloading, including the count of processed, skipped or cancelled orders.

  

Was this article helpful?

Have more questions? Submit a request