This grocery bag holder is one tall tube worked in the round. Lavender shells stack up the body in neat vertical columns, with plum openwork ladders between them. A small plum picot dot runs up the center of each ladder, and a matching plum picot edge finishes the top.
The deep plum and soft lavender give it a calm, vintage-kitchen look. You stuff bags in through the wide top and pull them out one at a time through the small lavender-rimmed opening at the bottom. A short plum strap wraps around a wooden ring for hanging.
The pattern uses US crochet terms. The finished holder is about 6 in (15.2 cm) wide laid flat, 12 in (30.5 cm) around, and 18.5 in (47.0 cm) tall from the bottom opening to the picot edge. With the strap and ring, it hangs about 24 in (61.0 cm) long.
You work from the bottom up. Start with a lavender ring for the opening, increase in plum to full width, then work 24 rounds of a two-round shell pattern. A three-round top rim and a strap worked straight off the last round finish the piece.
Finished Size and Construction
- Finished size: 6 in (15.2 cm) wide flat x 18.5 in (47.0 cm) tall, not counting the strap
- Hanging length with strap and ring: about 24 in (61.0 cm)
- Skill level: Intermediate (color changes in the round, shells, picots)
- Terminology: US
- Yarn weight: Worsted (#4) cotton or cotton blend
- Hook: 5.0 mm (H-8)
- Number of pieces: 1 (the strap is worked directly off the top)
- Layout: Seamless tube with 4 shell columns and 4 plum ladders
- Piece size before top rim: 6 in (15.2 cm) flat x 17.4 in (44.2 cm) tall
- Top rim (border) depth: about 1.1 in (2.8 cm)
- Bottom opening: 6 in (15.2 cm) around, about 3 in (7.6 cm) across laid flat
Materials
Use a smooth worsted cotton or cotton blend. Cotton holds its shape when the tube is full of bags, and it shows the shells clearly. Avoid fuzzy yarns, which blur the openwork. The amounts below assume about 170 m per 100 g.
- Plum (Color A): 120 g, about 204 m
- Lavender (Color B): 70 g, about 119 m
- 5.0 mm (H-8) crochet hook
- One wooden ring, 2 in (5.1 cm) across
- Stitch markers (at least 2)
- Tapestry needle
- Scissors
- Tape measure
The quantities include a margin of about 15% for swatching and color-change tails.
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- sk – skip
- sp – space
- st(s) – stitch(es)
- rnd – round
- RS – right side
Picot: Ch 3, then sl st in the 3rd ch from the hook. A picot is never counted as a stitch and is never worked into.
V-st: (Dc, ch 1, dc) in the same stitch.
Shell: 7 dc in the same stitch or space.
Color change: Work the last dc of the old color until 2 loops remain on the hook. Yarn over with the new color and pull it through to finish the stitch.
Carrying color: Every round is worked with the RS facing, so the tube is never turned. Carry the unused color loosely along the inside of the tube. When you work solid dc, lay the strand on top of the stitches and work over it so it gets caught. Across ch-1 spaces, just let it float behind. The strands stay hidden inside, behind the bags.
Gauge and Checkpoints
Gauge: 16 dc and 8 dc rnds = 4 in (10.2 cm) wide x 5 in (12.7 cm) tall. One dc round is about 0.625 in (1.6 cm) tall, and one sc round is about 0.25 in (0.6 cm) tall.
Pattern gauge: One two-round shell repeat (a V round plus a shell round) = 1.25 in (3.2 cm) tall. One 12-st panel = 3 in (7.6 cm) around.
Use the holder itself as your test piece. Work Rnds 1–7, then lay the tube flat and measure.
Checkpoints:
- After Rnd 2: The opening measures 6 in (15.2 cm) around.
- After Rnd 5: The tube is 6 in (15.2 cm) wide flat and about 2.4 in (6.1 cm) tall.
- After Rnd 13 (4 shells stacked): About 7.4 in (18.8 cm) tall.
- After Rnd 29: About 17.4 in (44.2 cm) tall.
- After Rnd 32: About 18.5 in (47.0 cm) tall.
If the tube is more than 0.25 in (0.6 cm) wider than 6 in (15.2 cm), go down one hook size. If it’s narrower, go up one size. If only the height is off, keep your hook and add or remove shell repeats, two rounds at a time. Never change the stitch counts, because the 12-st repeat locks the round at 48 sts.

Pattern
Bottom Opening (Lavender)
Rnd 1: With B, ch 24 and join with a sl st to the first ch to form a ring, taking care not to twist the chain. Ch 1, sc in each ch around, then join to the first sc. (24 sc)
Rnd 2: Ch 1, sc in each st around, join. (24 sc)
Fasten off B. The opening should measure 6 in (15.2 cm) around.
Base Increases (Plum)
Rnd 3: Join A in any st. Ch 3 (counts as dc throughout), dc in the same st, dc in the next st. 2 dc in the next st, dc in the next st, repeat from * 11 more times. Join to the top of the ch-3. (36 dc)
Rnd 4: Ch 3, dc in the next st, 2 dc in the next st. Dc in each of the next 2 sts, 2 dc in the next st, repeat from * 11 more times. Join. (48 dc)
Rnd 5: Ch 3, dc in each st around, join. (48 dc)
These three rounds form the rounded taper at the bottom. All the joins stack in one line at the center back. Place a marker there and move it up as you go.
Shell Columns (Plum and Lavender)
Each round has 4 panels of 12 sts: a 5-st plum ladder followed by a 7-st lavender shell section. Join B at the first color change in Rnd 6 and carry both colors from then on.
Rnd 6 (V round, set-up): With A, ch 4 (counts as dc + ch 1), sk 1 st, dc in the next st, ch 1, sk 1 st, dc in the next st, changing to B. With B, dc in the next st, ch 1, sk 2 sts, V-st in the next st, ch 1, sk 2 sts, dc in the next st, changing to A. With A, dc in the next st, ch 1, sk 1 st, dc in the next st, ch 1, sk 1 st, dc in the next st, changing to B. Repeat from * 2 more times. Then work one more lavender section, changing to A on its last dc, and join to the 3rd ch of the ch-4. (28 dc + 20 ch-1 sps = 48 sts)
Each lavender section reads dc, ch 1, dc, ch 1, dc, ch 1, dc. That’s 7 sts, and the 4th one is the center ch-1 sp.
Rnd 7 (shell round): With A, ch 4 (counts as dc + ch 1), sk the ch-1 sp, dc in the next dc, picot, ch 1, sk the ch-1 sp, dc in the next dc, changing to B. With B, sk the next 3 sts (dc, ch-1 sp, dc), work a shell in the center ch-1 sp of the V-st, then sk the next 3 sts, changing to A on the last dc of the shell. With A, dc in the next dc, ch 1, sk the ch-1 sp, dc in the next dc, picot, ch 1, sk the ch-1 sp, dc in the next dc, changing to B. Repeat from * 2 more times. Work one more shell, change to A, and join. (40 dc + 8 ch-1 sps = 48 sts, plus 4 picots)
Each shell fans upward from a small eyelet, and each picot sits on the center dc of a plum ladder.
Rnd 8 (V round): With A, ch 4, sk the ch-1 sp, dc in the next dc, ch 1, sk the ch-1 sp, dc in the next dc, changing to B. With B, dc in the 1st dc of the shell, ch 1, sk 2 dc, V-st in the 4th (center) dc, ch 1, sk 2 dc, dc in the 7th dc, changing to A. With A, dc in the next dc, ch 1, sk the ch-1 sp, dc in the next dc, ch 1, sk the ch-1 sp, dc in the next dc, changing to B. Repeat from * 2 more times. Work one more lavender section and join with A. (28 dc + 20 ch-1 sps = 48 sts)
Rnds 9–29: Repeat Rnds 7 and 8 alternately, ending with a shell round (Rnd 29). Each column now has 12 stacked shells, and each ladder has 12 picot dots.
Checkpoint: The tube is 6 in (15.2 cm) wide flat and about 17.4 in (44.2 cm) tall. The shell section (Rnds 6–29) accounts for 15 in (38.1 cm) of that. Cut B.
Border: Top Rim, Picot Edge, and Strap
Border gauge: 16 sc = 4 in (10.2 cm) around, and 4 sc rnds or rows = 1 in (2.5 cm). The rim is worked one-to-one into a 48-st round, so it keeps the same 12 in (30.5 cm) circumference as the body. It won’t flare or pull in.
Rnd 30: With A, ch 3, then dc in each dc and each ch-1 sp around. Join. (48 dc, or 24 per side when laid flat)
Rnd 31: Join B. Ch 1, sc in each st around, join. (48 sc, 24 per side) Fasten off B.
Rnd 32 (picot edge): Join A in the st directly above the marked center-back line. Ch 1, sc in the same st and in each of the next 5 sts (this is the 6-st strap base). Picot, sc in each of the next 3 sts, repeat from * 13 more times. Join to the first sc. (48 sc, plus 14 picots)
Why the math works: The 6-st strap base plus 14 groups of 3 sc gives 6 + 42 = 48 sc, which matches Rnd 31 exactly. The picots are evenly spaced and stop just short of the strap on both sides. The 24 front sts carry 8 picots, and the remaining 6 sit on the back on either side of the strap.
Don’t fasten off.
Strap Row 1: Ch 1, but don’t turn. Sc in the same st as the join and in each of the next 5 sc. (6 sc) Turn.
Rows 2–20: Ch 1, sc in each st across, turn. (6 sc)
The strap is now 5 in (12.7 cm) long and 1.5 in (3.8 cm) wide. Pass it through the wooden ring from front to back. Fold the last 1.5 in (3.8 cm) down behind the strap and whipstitch Row 20 to Row 14. About 3.5 in (8.9 cm) of strap shows above the rim. Fasten off, then weave in all ends on the inside.
Final Blocking
- Soak the holder in cool water, then gently squeeze it out. Don’t wring it.
- Roll it in a towel and press out the extra water.
- Slide a rolled towel inside the tube to support its shape.
- Lay it flat and pat it to 6 in (15.2 cm) wide and 18.5 in (47.0 cm) tall.
- Straighten the shell columns and nudge each fan open.
- Pinch each picot into a round dot.
- Let it dry completely, then remove the towel.
Final Quality-Control Checklist
- Every V round has 48 sts, and every shell round has 48 sts plus 4 picots.
- All 4 shell columns run straight, with 12 shells each.
- Each plum ladder has 12 picot dots.
- Carried strands stay on the inside and don’t pucker the fabric.
- The bottom opening is 6 in (15.2 cm) around and stretches easily.
- The tube is 6 in (15.2 cm) wide flat, within 0.25 in (0.6 cm).
- Rnd 32 has 48 sc and 14 picots, with no picot on the strap base.
- The strap is centered at the back and the ring is firmly sewn in.
Troubleshooting
Shell columns drift sideways: A lavender section has the wrong number of stitches. Each one must use exactly 7 sts in every round, so recount.
The fabric puckers: The carried yarn is too tight. Spread your stitches before you work over the strand, and leave some slack behind the ch-1 spaces.
Lavender shows through the plum: Keep the carried strand at the back of each stitch, and use even tension on both yarns.
The bottom opening is too tight: Rework the Rnd 1 foundation chain with a hook one size larger. Keep the counts at 24 sts.
Picots lie flat or flip inside: Pull each picot to the RS before you make the next ch 1, and reshape them when you block.
The tube is too short: Add one V round and one shell round before Rnd 30. Each pair adds 1.25 in (3.2 cm).
Care
Hand wash in cool water with mild soap and dry flat, reshaped over a rolled towel. Don’t tumble dry, because heat can shrink the cotton and pull the shells out of line.

Final Notes
Here’s how the measurements build. A 24-st lavender opening of 6 in (15.2 cm) grows into a 48-st tube that measures 12 in (30.5 cm) around. That’s four 12-st panels of 3 in (7.6 cm) each. Twelve shell repeats of 1.25 in (3.2 cm) add 15 in (38.1 cm) of body. The 48-st rim brings the holder to 18.5 in (47.0 cm), and the strap and ring give a hanging length of about 24 in (61.0 cm). If you check your gauge at each checkpoint, everything else falls into place.
Happy crocheting!