This grocery bag holder has an open navy mesh tube with a sturdy cream base and top band. Three bright orange fruit appliqués, each with a pair of deep green leaves, run down the front. A natural wooden ring at the top lets it hang from a cabinet knob or hook.
The look is clean and a little retro: navy, cream, orange, and green on a simple grid. Through the mesh you can see how many bags are inside. The solid cream sections give the holder structure where it gets the most wear.
The pattern is written in US crochet terms. The finished body is about 5 in (12.7 cm) wide when flattened and 20 in (50.8 cm) long. Including the tab and ring, it’s roughly 23 in (58.4 cm).
The construction is simple:
– Start at the bottom with a cream oval cup that has a built-in slot for pulling bags out.
– Switch to navy and work a double crochet mesh in rounds.
– Switch back to cream for the top band and a decreasing dome, then close the top.
– Make a small cream tab to hold the wooden ring, then make the three oranges and six leaves separately and sew them on.
Finished Size and Construction
- Finished size: 5 in (12.7 cm) wide flattened x 20 in (50.8 cm) long body
- Circumference: 10 in (25.4 cm)
- Skill level: Easy to intermediate
- Terminology: US crochet terms
- Yarn weight: Worsted weight (#4) cotton
- Hook: 5.0 mm (H-8)
- Number of pieces: 11 (1 body, 1 hanging tab, 3 oranges, 6 leaves) plus 1 wooden ring
- Layout: One vertical column of 3 oranges centered on the front of the mesh
- Piece size: Orange 2 in (5.1 cm) across; leaf about 1 3/8 in (3.5 cm) long
- Size before top band: 5 in (12.7 cm) wide x 17 3/4 in (45.1 cm) long (base plus mesh)
- Top band depth: 2 1/4 in (5.7 cm)
Materials
Use a smooth, firm cotton or cotton blend. Cotton holds its shape, doesn’t stretch much under a full load of bags, and washes well. Avoid splitty or very soft acrylic for the mesh, because the double crochet posts need to stay crisp.
- Cream: 50 g, about 85 m (base, top band, tab)
- Navy: 70 g, about 119 m (mesh)
- Orange: 20 g, about 34 m (3 oranges)
- Dark green: 10 g, about 17 m (6 leaves)
These amounts include a margin for gauge testing and weaving in ends.
Tools:
- 5.0 mm (H-8) crochet hook
- 1 wooden ring, 2 in (5.1 cm) outer diameter
- Tapestry needle
- 4 locking stitch markers
- Sewing pins
- Measuring tape
- Scissors
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- hdc – half double crochet
- dc – double crochet
- sc2tog – single crochet 2 together
- st(s) – stitch(es)
- sp – space
- beg – beginning
- rep – repeat
Special stitch – mesh square: One dc plus one ch-2. Each mesh square uses 3 sts of the round below. The dc counts as 1 st, and the ch-2 spans 2 sts.
Gauge and Checkpoints
Solid sc gauge: 18 sc x 20 rounds = 5 in (12.7 cm) square.
Mesh gauge: 12 mesh squares around = 10 in (25.4 cm) circumference. 5 mesh rounds = 3 in (7.6 cm) tall.
Make one orange first as your test piece. After Round 4 it should be 2 in (5.1 cm) across. If it’s larger, go down 0.5 mm. If it’s smaller, go up 0.5 mm. Use the same hook for the body.
Checkpoints along the way:
- After base Round 4: the slot opening is about 3 1/2 in (8.9 cm) long and 1 1/4 in (3.2 cm) wide.
- After base Round 11: the base is 5 in (12.7 cm) wide when flattened.
- After mesh Round 5: the mesh is 3 in (7.6 cm) tall.
- After mesh Round 25: the mesh is 15 in (38.1 cm) tall.
- After the top band: the body is 20 in (50.8 cm) long.
If the base is more than 1/4 in (0.6 cm) too wide at checkpoint 2, frog it and go down a hook size. If your mesh rounds come out short, relax your dc yarn-overs instead of adding rounds. That keeps the oranges spaced correctly.

Base (Cream)
The base is an oval cup worked outward from a chain ring. The ring itself becomes the bag slot. Join each round; do not turn.
Each round is split into 4 sections: long side, end, long side, end.
Foundation: With cream, ch 26. Without twisting, sl st in the first ch to form a ring.
Rnd 1: Ch 1, sc in each ch around, sl st to first sc. (26 sts: 11 + 2 + 11 + 2)
Rnd 2: Ch 1, sc in next 11 sts, 2 sc in each of next 2 sts, sc in next 11 sts, 2 sc in each of next 2 sts, sl st to first sc. (30 sts)
Rnd 3: Ch 1, sc in next 11 sts, [2 sc in next st, sc in next st] twice, sc in next 11 sts, [2 sc in next st, sc in next st] twice, sl st to first sc. (34 sts)
Rnd 4: Ch 1, sc in next 11 sts, sc in next 3 sts, 2 sc in next st, sc in next 2 sts, sc in next 11 sts, sc in next 3 sts, 2 sc in next st, sc in next 2 sts, sl st to first sc. (36 sts)
Each end now has 7 sts and each long side has 11, so 11 + 7 + 11 + 7 = 36.
Rnds 5–11: Ch 1, sc in each st around, sl st to first sc. (36 sts)
The increases happen only at the ends, so the frame rises into a cup with the slot facing down and forward. Place a marker at the round start; this line becomes a side edge of the holder. With the slot horizontal, 18 sts face the front and 18 face the back.
At the end of Rnd 11, join navy with the final sl st. Cut cream, leaving a tail.
Mesh Tube (Navy)
Rnd 1: Ch 5 (counts as dc + ch 2), skip next 2 sts, dc in next st, ch 2, skip next 2 sts; rep from * 10 more times, sl st in 3rd ch of beg ch-5. (12 dc + 12 ch-2 sps = 36 sts)*
Rnds 2–25: Ch 5 (counts as dc + ch 2), dc in next dc, ch 2; rep from * 10 more times, sl st in 3rd ch of beg ch-5. (12 dc + 12 ch-2 sps = 36 sts each round)*
Each dc sits directly on top of the dc below. This makes straight vertical bars and an even grid. Count your dc at the end of every round; it should always be 12.
Front placement check: with the base slot facing forward, the front holds 6 mesh squares (18 sts) and the back holds 6 mesh squares (18 sts).
At the end of Rnd 25, change to cream with the final sl st. Cut navy.
Make All Pieces
Make these pieces separately:
- Hanging tab: 1 in cream
- Oranges: 3 in orange
- Leaves: 6 in dark green (2 per orange)
Hanging tab: Ch 10. Sc in 2nd ch from hook and next 7 ch, 3 sc in last ch. Rotate and work along the opposite side of the foundation chain: sc in next 7 ch, 2 sc in same ch as first sc, sl st to first sc. (8 + 3 + 7 + 2 = 20 sts) The tab is about 2 1/2 in (6.4 cm) long and 3/4 in (1.9 cm) wide. Fasten off with a long tail.
Orange (make 3):
- Rnd 1: 6 sc in a magic ring. (6 sts)
- Rnd 2: 2 sc in each st. (12 sts)
- Rnd 3: [Sc in next st, 2 sc in next st] 6 times. (18 sts)
- Rnd 4: [Sc in next 2 sts, 2 sc in next st] 6 times, sl st to next st. (24 sts)
Work in a continuous spiral. The spiral lines give each orange its round, segmented texture. Fasten off with a long tail. Each orange is 2 in (5.1 cm) across.
Leaf (make 6): Ch 6. Sc in 2nd ch from hook, hdc in next ch, dc in next ch, hdc in next ch, sc in last ch, ch 1. Rotate and work along the opposite side of the foundation chain: sc in same ch, hdc in next ch, dc in next ch, hdc in next ch, sc in next ch, sl st to first sc. (10 sts plus the ch-1 at the tip) Each leaf is about 1 3/8 in (3.5 cm) long. Fasten off with a long tail.
Layout grid (front of mesh, top to bottom):
[ cream top band ]
[ leaves V ]
[ ORANGE 1 ] center 2 3/4 in (7.0 cm) below top of mesh
[ navy mesh ]
[ leaves V ]
[ ORANGE 2 ] center 7 1/2 in (19.1 cm) below top of mesh
[ navy mesh ]
[ leaves V ]
[ ORANGE 3 ] center 12 1/4 in (31.1 cm) below top of mesh
[ cream base ]
The orange centers are 4 3/4 in (12.1 cm) apart. Orange 1’s center is 2 3/4 in (7.0 cm) below the top of the mesh, and Orange 3’s center is 2 3/4 in (7.0 cm) above the bottom of the mesh.
Joining the Appliqués and Tab
Method: Whipstitch with the yarn tails, catching only the navy dc posts and chains behind each piece.
Leaves: Lay two leaves in a V with their base ends touching. Stitch the bases together with a few firm stitches. Sew the pair to the top edge of an orange so it overlaps the orange by about 1/4 in (0.6 cm) and the leaves angle up and out.
Oranges: Center each orange side to side over the 2 middle mesh squares of the front 6. Pin it at the height shown in the layout grid. Whipstitch around the outer edge of Rnd 4, going through the back loop of each orange st and around the nearest mesh bar. Anchor the orange to the mesh at least every 2–3 sts.
Tension advice: Keep the sewing yarn snug but not tight. Pulling hard will pucker the mesh behind the orange and bow the grid.
Size checkpoint: After sewing, the mesh should still be 15 in (38.1 cm) tall and 5 in (12.7 cm) wide. If it got shorter, your stitches are too tight. Loosen them and resew.
Top Band (Border)
The cream top band works like a border. It turns the mesh back into solid sc, then closes into a dome.
Border gauge: Same as the base: 18 sc x 20 rounds = 5 in (12.7 cm).
Rnd 1 (conversion): Ch 1, sc in each dc and 2 sc in each ch-2 sp around, sl st to first sc. (12 sc in dc + 24 sc in sps = 36 sts)
Per side when flattened: 6 sc in dc + 12 sc in 6 sps = 18 sts on the front and 18 on the back.
Rnds 2–5: Ch 1, sc in each st around, sl st to first sc. (36 sts; 18 per side)
Rnd 6: Ch 1, [sc in next 4 sts, sc2tog] 6 times, sl st to first sc. (30 sts; 15 per side)
Rnd 7: Ch 1, [sc in next 3 sts, sc2tog] 6 times, sl st to first sc. (24 sts; 12 per side)
Rnd 8: Ch 1, [sc in next 2 sts, sc2tog] 6 times, sl st to first sc. (18 sts; 9 per side)
Rnd 9: Ch 1, [sc in next st, sc2tog] 6 times, sl st to first sc. (12 sts; 6 per side)
Fasten off with a long tail. Flatten the top so 6 sts lie on each side, lined up with the side marker. Whipstitch the opening closed.
Why the math works:
– The mesh has exactly 36 sts (12 dc + 24 chain sts). One sc per dc and 2 sc per ch-2 sp gives back the same 36 sts as the base, with nothing added at the round join.
– Each decrease round removes 6 sts, 3 per side, so the dome stays even.
– Nine rounds at 20 rounds per 5 in comes to 2 1/4 in (5.7 cm).
– Total body length: base 2 3/4 in (7.0 cm) + mesh 15 in (38.1 cm) + top band 2 1/4 in (5.7 cm) = 20 in (50.8 cm).
Attaching the tab and ring: Slip the wooden ring onto the tab and fold the tab in half around it. Center one tab end on the front of the closed top and the other end on the back, overlapping the seam by about 1/2 in (1.3 cm). Sew through all layers. About 1 in (2.5 cm) of tab shows above the dome.
Final Blocking
- Weave in all ends inside the cream sections or along the dc posts.
- Roll a towel to about 10 in (25.4 cm) around, or cut a piece of cardboard 5 in (12.7 cm) wide, and slide it inside the body.
- Pin the oranges flat and smooth the leaves into their V shape.
- Straighten the mesh so each dc bar runs straight up and each round sits level.
- Lightly mist or steam the piece. Don’t press the iron onto the work.
- Let it dry completely, about 6 hours, before removing the form.
Final Quality-Control Checklist
- The base has 36 sts and a clean, even oval slot.
- Every mesh round has 12 dc and 12 ch-2 sps.
- The mesh bars stack straight without spiraling.
- Top band Rnd 1 has 36 sts.
- The body is 5 in (12.7 cm) wide and 20 in (50.8 cm) long.
- The oranges are centered and 4 3/4 in (12.1 cm) apart.
- Each orange has 2 leaves in a V at its top.
- The tab is secure on both sides of the top.
- The ring hangs straight with the oranges facing forward.
Troubleshooting
Mesh is spiraling. Your sl st join is probably landing in the wrong ch. Join into the 3rd ch of the beg ch-5 every time.
Base is flat instead of cupped. Your tension in Rnds 5–11 is too loose. Tighten slightly, or go down 0.5 mm for the base only.
Slot is too tight for bags. Make the foundation chain with a hook 1 mm larger.
Orange is ruffled. Your tension is too loose for this stitch count. Go down a hook size and redo Rnd 4.
Mesh puckers behind appliqués. Resew with looser stitches.
Care
Hand wash in cool water. Reshape over a rolled towel and let it air dry. Don’t use the dryer, and take the wooden ring off before washing if you can.

Final Notes
The whole holder is built around one number: 36.
– The base grows from 26 to 36 sts.
– The mesh holds 36 sts as 12 dc and 12 ch-2 sps.
– The top band converts back to 36 sts before decreasing to 12.
At 18 sc per 5 in (12.7 cm), 36 sts give a 10 in (25.4 cm) circumference and a 5 in (12.7 cm) flat width. Lengths of 2 3/4 in (7.0 cm), 15 in (38.1 cm), and 2 1/4 in (5.7 cm) add up to a 20 in (50.8 cm) body, ready for three bright oranges and a wooden ring.
Happy crocheting!