# Pet store step 3: pet food by bag, can, case and weight

> Sell pet food in several bag sizes, by the can and by the case of 24, or loose by weight, with best-before dates and lots for every delivery.

Source: https://docs.smartposhub.com/business-types/pet-store/step-3-pet-food-by-bag-can-and-weight/  
Last updated: 2026-10-30  
Product: SmartPOS Hub (https://smartposhub.com)

Pet food comes in more shapes than almost any other product: dry food in several bag sizes, wet food by the can or the case, and in some stores loose food by weight. Each needs a slightly different setup.

| You sell | Setup | Example |
|---|---|---|
| One recipe in 4 lb, 12 lb, 24 lb bags | Variable product, option **Bag size** | Grain-Free Chicken & Sweet Potato Dog Food |
| A can singly or by the case | Unit **Can** with sub-unit **Case (24 cans)** | Chicken Stew Dog Food 13 oz Can |
| Loose kibble, seed, chews | Weight unit with decimals | Bulk birdseed per lb |

## Before you start

**Enable Sub Units**, **Enable Product Expiry** and **Enable Lot number** are on ([step 1](https://docs.smartposhub.com/business-types/pet-store/step-1-stores-and-modules/)).

## Bag sizes as variants

1. **Products › Add Product** (or edit), name the recipe, choose brand and category (Dog Food › Dry Dog Food).
2. **Variations & pricing**: **Product Type** = **Variable**. In the **Variant builder**, add the option **Bag size** with values 4 lb, 12 lb, 24 lb and click **Generate variants**.
3. Enter each size's purchase and selling price, and the barcode from the bag in each **SKU**.
4. Add a photo per bag size in **Variation Images** if the bags look different. Save.

![Variations & pricing tab of a dog food product with Product Type Variable, TX Sales Tax 8.25%, the Variant builder and the variation table for Bag size](https://docs.smartposhub.com/_astro/pets-dog-food-bag-sizes.Bl00hdDN.png) (web app page: `/products/{id}/edit`)
*One recipe, three bag sizes, each with its own barcode and price.*

## Cans and cases

1. **Products › Units**: add **Can** (no decimals). Add **Case (24 cans)** with **Add as multiple of other unit**, **24** **times base unit**, base unit **Can**.
2. On the product, choose **Unit** = **Can** and pick **Case (24 cans)** in **Related Sub Units**.
3. Buy by the case on purchases; sell by the can or the case at the till by changing the unit on the line.

![Units page with Bag, Can, Case (24 cans) (24 can), Pieces and Service](https://docs.smartposhub.com/_astro/pets-units-can-and-case.DAFkoFFD.png) (web app page: `/units`)
*Case (24 cans) is a multiple of Can, so stock is always counted in cans.*

![Edit product for Chicken Stew Dog Food 13 oz Can with Unit Can (can), Related Sub Units Case (24 cans), brand, category Dog Food and sub category Wet](https://docs.smartposhub.com/_astro/pets-can-product-sub-unit.Ri23ZiOP.png) (web app page: `/products/{id}/edit`)
*The can product with its case sub-unit.*

## Loose food by weight

1. Add a unit **Pound** (short name **lb**) or **Kilogram** with **Allow decimal** = Yes.
2. Add the bulk product with that unit and the price per pound or kilogram.
3. At the till, type the weight as the quantity (2.5). With a label scale, set up scale barcodes so the weight comes from the label ([barcodes, scales and labels](https://docs.smartposhub.com/business-types/mart/step-4-barcodes-scales-and-labels/)).

## Best-before dates

Enter the **Lot Number** and **EXP Date** on every purchase line. Check **Reports › Stock Expiry Report** weekly and move short-dated food to the front or onto an offer. See [Expiry and batches](https://docs.smartposhub.com/inventory/expiry-and-batches/).

**Tip:** 
Set an **Alert quantity** on your best-selling foods. Running out of a dog's usual food sends the owner to another store.

Next: [step 4: grooming services and appointments](https://docs.smartposhub.com/business-types/pet-store/step-4-grooming-services-and-appointments/).

  - [Variable products](https://docs.smartposhub.com/catalog/variable-products/)
  - [Categories, brands and units](https://docs.smartposhub.com/catalog/categories-brands-units/)
  - [Expiry and batches](https://docs.smartposhub.com/inventory/expiry-and-batches/)

## Frequently asked questions

### Bag sizes or sub-units, which do I use?

Bag sizes are different products on the shelf (4 lb, 12 lb, 24 lb), so use a variable product. A case is just 24 of the same can, so use a sub-unit.

### Is the case price always 24 × the can price?

By default the case is priced from the can price × 24. For a case discount, use a discount on the product or a separate case product.

### Can I sell loose kibble or birdseed by weight?

Yes. Add a unit such as Pound (lb) or Kilogram with Allow decimal set to Yes, sell the bulk product in it, and type the weight as the quantity.

### How do I keep track of best-before dates?

With Enable Product Expiry and Enable Lot number on, enter the lot and expiry on every purchase line. Reports › Stock Expiry Report shows what expires soon.

### Do staff see the bag size at the till?

Yes. Each variant is its own product tile and search result, with its size in the name and its own barcode.
