Skip to content

Shopify

BrewKeeper Shopify App link

Also integrates with CarrierBot

It is recommended to create your Shopify Products and Variants from BrewKeeper.

If creating your products in Shopify, there are some rules to follow to allow syncing in BrewKeeper

Products:

  • A product must have a product type to be able to sync with BrewKeeper. In general for Breweries, the product type is Beer.

Product Variants:

  • Variants must have skus. CarrierBot returns its rates by looking at SKUS
  • The option name for a variant must be “Title” (not Size, Colour, Matrial, Style, etc…)
    • Examples of (Title) option values: “Can - 350ml”, “Can - 350ml 6 Pack”
      Note: these match our “Variant Type” descriptions
Shopify Product example

There are two ways to stop tracking inventory in Shopify.

  1. Uncheck ‘Track Quantity’ on the variant
  2. Uncheck a location in the ‘Edit locations’ form
    Only applies if you have multiple locations

Uncheck ‘Track Quantity’ on the variant

Before you can view or adjust inventory levels for a product, you need to set up inventory tracking for that product. When you track inventory for a product in Shopify, you can view the history of inventory for that product for up to the most recent 180 days

- Shopify Docs

In Shopify

  1. Open a variant
  2. Scroll down to “Inventory”
  3. Uncheck “Track Quantity”

(Dev notes) As a result:

  • shop_variant.shop_inventory_item.tracked is set to false
InventoryAdjustment historyEdit locationsSKUBarcodeTrack quantity

Uncheck a location on the variant

You can manage inventory for products from multiple locations, which could include one or more store locations as well as one or more fulfillment apps that has multi-managed inventory enabled.

- Shopify Docs

In Shopify

  1. Open a variant
  2. Scroll down to “Inventory”
  3. Click “Edit locations” (a modal will open)
  4. Uncheck a location

This can also be done via the bulk editor

(Dev notes) As a result:

  • shop_inventory_level.available is set to nil
Edit locationsSelect locations that stock the selected variants.Select all1 of 2 selectedlocation 1location 2SaveCancel

If you have a new Shopify Location, and you want BrewKeeper to control the inventory levels, you would link that Shop Location to a Sales Channel

Out of sync inventory levels
Once BrewKeeper is controlling the inventory levels in Shopify, it is possible BrewKeeper and Shopify inventory levels can be different.

A few ways this can happen:

  • In BrewKeeper, user moves stock into sales channel BEFORE it is linked with Shopify (can be common)
  • User changes inventory levels in Shopify (this does not change inventory levels in BrewKeeper)
  • BrewKeeper somehow fails to update the stock levels (maybe Shopify rejects our request to update, this rarely happens)

The ‘sync’ page just shows you if the levels between BrewKeeper and Shopify are different. It is always assumed BrewKeeper has the correct shopify inventory levels

Shipping Rates - CarrierBot Integration (JP only)

Section titled “Shipping Rates - CarrierBot Integration (JP only)”

B2B stores are ‘tax exclusive’ which means tax is added onto the shipping rate

Shopify B2B Settings

B2C stores are ‘tax inclusive’ which means tax needs to be included in the shipping rates

Shopify B2C Settings

We create a CarrierBot enpoint for each Shopify store, and for B2C, we multiply the rates by 1.1 (adding 10%).

# B2B
C306:
hokkaido: 560
north_tohoku: 490
# B2C
tax_rate: 1.1 # this setting is a multiplier
C306:
hokkaido: 560
north_tohoku: 490

Some customers do not want their orders delivered as soon as possible.

This app (~$10 p/m) puts a calendar and time picker on your checkout page

https://apps.shopify.com/deliverydate-production

You can customise the calendar in several ways:

  • minimum date (eg. 3 days from order creation)
  • delivery period (eg. 14 days)

It also understands timeslot codes from different Japanese shipping companies, including Sagawa, Yamato, Japan Post, etc.

Recommended settings if you wish to include pickup and local delivery on top of your current shipping rates:

  • add the date picker, and it is NOT required
  • in BrewKeeper, add ‘hold times’ to sagawa shipping codes which matches the RDD minimum date (eg. minimum date is 3 days, make sure hold time of 3 days)

Further explanation
if you offer pickup, that generally means the customer can pick it up the next day. This isnt possible if the rdd is a required field, and its minimum is 3 days from the order.
In this case, you need to let the user not enter any RDD, which just means ‘send this as soon as you can’. For pickup, you can add 0 hold days so its shipping date is tomorrow, for sagawa add 3 hold days.

Shopify will only share the first 10 addresses of a customer with BrewKeeper (or any integration). A customer will usually do this when they want 1 shopify login for all of their bars.

Shopify does no allow BrewKeeper to access additional customer addresses.

Shipping codes can be assigned to Carriers in BrewKeeper, which determines the shipment it will be added to.

eg.,

  • refrigerated_shipping -> Sagawa
  • custom -> Pickup

When editing an order, Shopify allows you to edit the shipping code.

Doing this adds a second shipping code to the order, which is generally “custom”.

The issue here is, if 1 order has 2 shipping codes, each of which is assigned to a different carrier, which one should BrewKeeper choose?

To keep things simple, BrewKeeper just stays with the first shipping code

BrewKeeper has settings that allow you to set which payment methods contribute to making a monthly invoice.

An order can have two payment methods if the customer tries to use a card and is rejected. In this case, we assume the last payment method is the correct one, since the first is the one that failed.