Bulk data uploads to your database should be managed by support professionals or advanced end users.
How do I create products in bulk using admin operations?
Follow these steps
You can enter product data into an Excel spreadsheet and import it into GlobalTill to create or edit products in bulk.
To create products in bulk using admin operations, follow these steps.
Step 1: prepare your product spreadsheet
Whether you have exported product data from another POS or are entering it manually into an Excel spreadsheet, use the following information as a guideline to properly formatting your upload file.
- Use an Excel spreadsheet, only XLSX format is accepted.
- Headers must be an exact match and are case sensitive.
- Field values are case sensitive. For example, if you enter size as 750 mL and 750 ml, two sizes will be created.
- "sku" is the only required field, do not include headers or columns for fields that do not require updates.
- One unique SKU per product, no two products can reference the same SKU.
- If a SKU is listed in your upload file twice, the product is updated by the second occurrence.
- Any existing inactive SKUs in your GT database that are on your upload sheet are set to active upon import.
- Some formatting, like hidden rows, merged cells, and data tables, may cause the import to fail. See the article How to troubleshoot or fix load files.
Examples of an incorrect product upload spreadsheet
Example of a correct product upload spreadsheet
Here are the accepted headers that can be used to create your product upload spreadsheet
Remember, these are case sensitive and must be an exact match.
- sku – The unique product identifier, max length 40 characters. Use caution when creating SKUs with leading 0s, as leading 0s are auto-removed from numbers in Excel.
- name – A descriptive name for the product, max length 85 characters.
- size – A description for the size of the product, max length 60 characters.
- category – The product's top-level product category.
- subcategory – The product's subcategory.
- subsubcategory – The product's subsubcategory.
- inventoried – 1 if the product is inventoried, 0 if it isn't. By default, all products are inventoried.
- taxable – 1 if the product is taxable, 0 if it isn't. By default all products are taxable.
- discountable – 1 if the product is discountable, 0 if it isn't. By default all products are discountable.
- deposit – The container deposit for the product, applicable to stores which sell beverage products.
- brand – The product's brand.
- barcode – The barcode or UPC for the product. Products can be assigned multiple barcodes, but each barcode can only be assigned to one product. If the barcode already exists in your database and is assigned to another product at the time of upload, the barcode is removed from the existing product and re-assigned to the new product on your upload sheet. For cannabis clients, note that the barcode referenced in the automated compliance reports is captured under a separate field entitled compliance_code.
- supplier – The name of the product's supplier. If matching to an existing supplier in GlobalTill, this must have the exact same spelling, including case and punctuation, or a new supplier will be created.
- supplier_sku – The primary identifier of the product used by the supplier.
- sub_vendor – Used for suppliers that use a secondary vendor to supply product, the name of the secondary vendor. Max length 40 characters.
- default_units_per_case (formerly case pack size) – The number of individual units in a case pack when purchasing from the specified supplier, e.g. a case of wine ordered from a supplier containing 12 bottles would be assigned a value of "12" under default units per case.
- minimum_desired_quantity – The minimum on hand inventory level, in units, that is referenced in automated ordering.
- ordering_multiplier – If you must order in specific multipliers for this vendor, this ensures products on purchase orders for this vendor are generated using the multiplier specified here.
- unit_cost – The per unit cost that the store pays for the product, aka, the wholesale cost of each unit. Number up to 5 decimal places. Should not include tax & deposit.
- cost_average – The average per unit cost that the store has paid for the product historically, often used if importing from another POS system or if cost needs to be adjusted. Should not include tax & deposit.
- current_cost – The optional artificial cost of a product used to calculate price book prices.
- current_retail_cost – The optional artificial cost of a product used to calculate retail pricing rule prices.
- retail_pricing_rule_name – The retail pricing rule attached to this product. Retail pricing rule must be created first.
- unit_sell – The retail price for the product. Number up to 2 decimal places. Should not include tax & deposit.
- membership_sell – The membership price for the product. Number up to 2 decimal places. Should not include tax & deposit. Requires a GlobalTill plan that supports membership pricing.
- premium_membership_sell – The additional premium membership price for the product. Number up to 2 decimal places. Should not include tax & deposit. Requires a GlobalTill plan that supports paid membership plans.
- current_price – The promotional price referenced for products that are on sale. We don't recommend you use this during the initial upload unless you transfer a store during an active promotion. The promotional price overrides the unit_sell at the POS. Number up to 2 decimal places. Should not include tax & deposit.
- extra_description_one – This allows for extra text-based product description lines that are optional and will vary from product-to-product. Can contain numbers and characters. Often used in cannabis to record the estimated THC Range for the given product, e.g. "Est. THC: 180 - 240 mg/g".
- extra_description_two – This allows for extra text-based product description lines that are optional and will vary from product-to-product. Can contain numbers and characters. Often used in cannabis to record the estimated CBD Range for the given product, e.g. "Est. CBD: <20 mg/g".
- extra_description_numerical_one – This allows for extra numerical product description lines that are optional and will vary from product-to-product. Must contain numerical values only. Often used in cannabis to record the absolute THC percentage value for the product, e.g. a product with 24% THC would reference "24" in this field.
- extra_description_numerical_two – This allows for extra numerical product description lines that are optional and will vary from product-to-product. Must contain numerical values only. Often used in cannabis to record the absolute CBD percentage value for the product, e.g. a product with 8% CBD would reference "8" in this field.
- compliance_reporting_weight – Used in cannabis, the weight that is referenced in the Health Canada and Stats Canada reporting (CTLS Reporting).
- compliance_code – Used in cannabis, the barcode for the product that will be reflected in the compliance reports. Max length 20 characters.
- equivalent_g – Used in cannabis to reflect the grams that count towards the 30-gram legal purchase limit. Equivalent Grams is required for accurate compliance reports. If this field does not have a value greater than 0.01, the product will not be included in some compliance reports.
- strain_name – Used in cannabis to indicate the strain name for a given product. The strain name is displayed in select areas only and is primarily used with integrations.
- strain_type – Used in cannabis to indicate the strain type for a given product. The strain type is displayed in select areas only and is primarily used with integrations. Must be one of HYBRID, SATIVA, INDICA, CBD, INDICA_HYBRID, or SATIVA_HYBRID.
- strain_subtype – Used in cannabis to indicate the strain subtype for a given product. The strain subtype is not displayed in most GT products at this time, and is primarily used with integrations. Must be one of INDICA_DOMINANT, SATIVA_DOMINANT, CBD, or BALANCED.
- other_category – An additional category often used in cannabis to record the designated category referenced in the Health Canada and Stats Canada reporting (CTLS Reporting). Unlike category and subcategories, the other category is not reflected in most reports.
- web_name – The consumer-friendly product name displayed on the web and select signage. When left blank, the name field is referenced by default.
- long_description – A detailed product description, up to 1500 characters.
- image_url – The assigned web url for the product image.
- shipping_weight – The weight in kg or lbs for the packaged product, used for integrations with shipping providers and eCommerce.
- shelf – The physical shelf location of a product held in inventory. Typically used in warehouse locations to organize storage locations and shelving for easier access.
- shelf2 – Additional field for a secondary physical shelf location of a product held in inventory. Typically used in warehouse locations to organize storage locations and shelving for easier access.
- notes - Additional product notes.
- adjust_to_quantity – Changes the on-hand inventory quantity to the number specified here.
- adjust_by_quantity – Changes the on-hand inventory quantity by the number specified here.
- child_sku – The repackaged child product associated with this SKU (if applicable).
- is_active – FALSE to change the product to inactive status. By default all SKUs on the import file are activated upon import.
Step 2: upload your product spreadsheet
- Go to Admin Operations at the URL we've provided you with and select Import Products or Import Products (Background) if you have more than 500 products on your upload file.
- Select Choose File, and select your completed product upload spreadsheet. Then select Submit.
Frequently asked questions
- Can I use numbers, letters, and special characters (such as . !.*^#) in my SKU?
Yes. Any character (numbers, letters, or special characters) can be used in a SKU. This includes spaces. Using spaces in SKU numbers often creates confusion for cashiers. As a best practice, we advise against creating SKUs with spaces.
- What if I don’t have SKUs?
We recognize not all retail industries use or have standardized SKUs. In the liquor industry, for example, SKUs are usually standardized for each province and set by the appropriate liquor board. No matter what your industry, GlobalTill requires a unique SKU for each and every product, even if that means you simply number each product in your spreadsheet (1, 2, 3, 4…) or invent a format that works for your store.
- How long can my SKUs, Product Names, and other field names be?
Long SKUs and product names are possible in GlobalTill but not always practical. We recommend keeping things as short and descriptive as possible. There are areas in the POS and the GT Backend where long SKUs or product names will result in wrapping or truncation. This may make GT more difficult for the cashiers to find products, or for things like creating labels and navigating the dashboards. In practice, we suggest SKUs no longer than 10 characters and product names no longer than 40 characters.
- Does the case (such as lowercase, UPPER CASE, Title Case) matter?
YES, it matters. The first row of the product upload, which contains the headers, must be lowercase! The case matters for the values in your data as well. Be careful as you format your products in the template. If you have a category called “Beer” but you enter Beer, BEER, and beer under category throughout your template, you will end up creating three different categories (Beer, BEER, and beer), not one. Pick a case and use it consistently throughout your template. Double check your case before uploading the template into GlobalTill.
- Do I have to use all the fields in the upload template?
No. Only the SKU is required. If you do not need or are not going to use a particular field, we recommend you delete the entire column from the spreadsheet.
- Does it matter what order the headers are placed in the Excel sheet?
No, the order of the headers doesn't matter. As a best practice, we recommend placing SKU in column A as it keeps the file cleaner.
Please sign in to leave a comment.