Online fishing tackle shop
A WooCommerce fishing tackle shop, designed from scratch in Figma: a catalogue filtered by tackle specs, ready-made kits, Omnibus-compliant sale prices and a one-page checkout with parcel lockers. The shop is fictional — the site and its code are real.
- Client
- wedkujemy.com — a fictional client, webmotion demo project
- Industry
- Online fishing tackle retail
- Timeline
- October 2026
- Services
- Design, Development, Maintenance, Security
- Team
- One — Figma design and WordPress build
- Live at
- wedkujemy.webmotion.io
What the project had to solve
The problem as it stood, and the decision that answered it.
A shop that answers like an angler, not a wholesaler
Anglers don't look for "a reel" — they look for a 2500 reel for a 2.40 m pike rod. The shop had to filter by length, casting weight and number of sections, suggest ready-made kits and get to checkout without an account, while meeting Polish rules: the lowest 30-day price next to every sale, VAT invoices and 30-day returns.
- Filters by tackle specs, not just price and brand
- Sale prices that comply with the Omnibus directive
- Parcel locker, invoice and consents in one checkout form
WooCommerce underneath, a bespoke shop on top
The cart, orders and stock stay in WooCommerce, but every view — from the product tile to the thank-you page — is a Blade template built from the design. The features shops usually add plugins for, such as a wishlist, back-in-stock alerts, cart reminders and review requests, are small services in the theme.
- Wishlist, stock alerts and reminders without plugins
- A price history written on every price change
- Kits are ordinary products with a list of items
The stack we built it on
The same benchmark every webmotion project starts from, plus WooCommerce and the few pieces a shop needed.
- WordPress CMS and block editor
- WooCommerce Cart, orders and stock
- ACF Pro 15 custom blocks and the product fields
- PHP 8.2+ Typed shop services
- Sage 11 Roots theme scaffolding
- Acorn 6 Laravel container inside WordPress
- Blade WooCommerce templates rebuilt from the design
- Alpine.js Filters, mini-cart and wishlist
- Tailwind CSS v4 Tokens taken from the Figma variables
- Lexend Self-hosted, Latin Extended
- Lenis Smooth scrolling
- Swiper 11 Product and video carousels
- Vite 6 Asset build and HMR
- ddev / Docker Identical local environments
- GitLab CI + Deployer Tests, then deploy
- LiteSpeed + LSCache Production server and page cache
What we connected it to
Each card names the system, what it does in this shop, and which way the data moves.
-
Delivery
InPost
Pick a parcel locker on a map right inside the checkout, next to the InPost courier; the chosen point is saved on the order and shown on the thank-you page.
Shop ⇄ InPost -
Newsletter
MailerLite
Sign-ups from the newsletter block and the opt-in ticked at checkout go through the API into the chosen subscriber group.
Shop → MailerLite -
Video
TikTok
Videos shown as thumbnails with a pinned product; the TikTok player only loads after a click and consent to external content.
TikTok → site -
Omnibus
Price history (Omnibus)
Every price change is appended to the product history, and on a sale the lowest price from the 30 days before the reduction appears next to the struck-through one.
Price → history → product page -
E-mails
Action Scheduler
Abandoned-cart reminders after 1 h and 24 h (opt-in only), a review request once an order is completed, and an e-mail when a product is back in stock.
Shop → customer -
GDPR
Cookie consent
A banner with categories — analytics, marketing, external content — holds back scripts and embeds until the visitor agrees to them.
Visitor → scripts
Colours and type it ships with
The client's palette, applied as tokens — every swatch below is a variable the theme exports.
- Blue #2B5BD7 Buttons, links, active filters
- Ink #0E1D24 Text and headings
- Mist #F5F7FB Page
- Blue-grey #E9EEF7 Panels, the kits section
- Orange #C2410C Sales and discounts
- Green #1E7A4C In-stock status
- Regular 400
- Medium 500
- SemiBold 600
- Bold 700
- Pike season is on
- 56 / 1.1 / −1.5
- Ready-made kits
- 40 / 1.15 / −1
- 249,00 zł
- 22 / 1.2 / 700
- Body copy sets at sixteen over 1.6
- 16 / 1.6 / 400
- Add to cart
- 16 / 1 / 500
- 8px Inputs, small buttons
- 12px Product cards, panels
- 16px Hero, large sections
- 999px Category chips, counters
The product itself
Captured from the live shop. Every tile opens in a lightbox at full size.
What we actually built
The six pieces the shop stands on — the ones buyers see on every order.
-
01
Filters by spec, not just by price
Rod length, casting weight, number of sections, brand, stock and sale. Every filter is a URL parameter, so a result can be linked and the listing still uses the page cache.
-
02
Omnibus-compliant prices
Every price change goes into the product history. On a sale the shop works out the lowest price from the 30 days before the reduction and shows it under the price.
-
03
A live delivery estimate
"Order within 16 min — delivered tomorrow" accounts for the dispatch cutoff, weekends and Polish public holidays. The browser works it out, so it holds behind the page cache.
-
04
Kits and "cheaper as a bundle"
A kit is an ordinary product with a list of items: it has its own price, stock and cart line, and the product page shows how much the buyer saves.
-
05
A cart without reloads
A mini-cart with quantity steppers, a cart page that updates in the background with toast notices, and confetti when the order passes the free-delivery threshold.
-
06
Accounts are optional
Guest checkout, then a one-click account after the order: order history, online returns, saved addresses and the wishlist carried over from the cookie.
What it changed
Measured on the live site rather than estimated — the note under each figure says where it came from.
What the shop team can run without opening the codebase.
- Thirteen views designed in Figma for desktop and mobile
- 15 ACF blocks and WooCommerce templates in Blade
- Filtered catalogue, product page, cart and checkout
- Customer account with online returns and a wishlist
- A guides section with articles linked to products
- Pest tests for Omnibus, NIP, returns and filters
Have a project that should work like this one?
Send the brief, or book a call and talk it through. We answer with scope and a range, not a template.