Project Snapshot
- Client: Bagstore.sk
- Industry: Affiliate fashion catalog — handbags and accessories (Slovakia)
- Engagement: Rescue project — took over from a previous developer and delivered a working Drupal 11 platform
- Timeline: Started early 2025, ongoing
The Client
Bagstore.sk is a Slovak affiliate catalog for designer handbags, wallets, and bags. It is not a traditional e-commerce store. Products are aggregated from merchant feeds via the Awin affiliate network, and visitors click through to the merchant's own site to complete their purchase. The business model is curation plus affiliate commissions, not direct fulfilment.
The Challenge
The project came to WebEvra as a rescue. The original developer had walked away before finishing the build, and what was left behind was not usable.
- Unfinished handover. Code in various states of completion, with no clear path to production.
- No product ingestion pipeline. The whole point of the site is to import thousands of products from Awin feeds automatically. That pipeline did not exist yet.
- Category and brand filtering broken. Visitors landing on the brands page could not actually filter by brand because Drupal's page cache was serving stale results.
- Admin usability gaps. The client team had no simple way to update homepage banners, footer text, or the Pinterest feed without touching code.
The business wanted a working, maintainable Drupal 11 catalog they could run themselves, with the affiliate feed ingestion happening on autopilot.
The Solution
WebEvra took over the build, rebased it on a clean Drupal 11 scaffold, and finished every piece the client needed. The site went from stalled to shipped.
Automated Awin Datafeed Ingestion
The core engineering challenge was turning affiliate CSV and XML datafeeds into first-class Drupal content nodes with images, categories, and brand relationships. We built the ingestion pipeline with Drupal's Feeds ecosystem plus custom modules:
- Feeds + Feeds Ex + Feeds Tamper for the base CSV ingestion and field mapping from the Awin datafeed format into Drupal content types.
- awin_feeds_image — a custom module that downloads product images during the feed import and attaches them to the Drupal
field_image on each product node. Without it, products would point at remote merchant image URLs that could disappear or change.
- xml_import_rules — a custom module with an admin settings form for managing XML-based product feed import rules, used where merchants provide XML instead of CSV.
- field_affiliate_link on each product node — the click-through URL that takes visitors to the merchant's own site to buy. Every product card CTA routes through this field.
The result: new products land on the site automatically whenever feeds update. The client's team does not touch individual products.
Custom Modules We Built
- bagstore_admin — Admin UI for the things the client actually needs to edit: homepage banners, footer text, Pinterest feed URL, favicon, subpage header image, and custom
<head> code for analytics or meta tags. Gives the team independence without shipping code.
- awin_feeds_image — Downloads and attaches product images during the Feeds import pipeline.
- xml_import_rules — Admin settings for configuring XML feed import rules.
- znacky_nocache — Disables Drupal's page cache specifically on the brands ("Značky") page so the
?brand=... query filter actually changes what visitors see. A small module that fixes a very real user-facing bug.
Catalog Architecture
- Product content type with fields for title, image, description, brand reference, category taxonomy, and the affiliate link.
- Multi-level taxonomy for categories: Women's bags (crossbody, mini, clutch, over-the-shoulder), Men's bags (work, travel, waist bags), Travel bags, Backpacks, Accessories, Sale.
- Brand taxonomy with brand entity references on each product.
- Views-powered listings for catalog, search, and brand pages. Plain Views filters with core search, no Solr required at this scale.
- Unified product card template — one
product-card.html.twig is reused across every context (catalog, search results, brand filter pages, homepage featured lists). Consistent rendering with a single maintenance point.
Theme and Frontend
The custom theme bag_store was adapted from the KUMO HTML template, not built from scratch. That was a deliberate tradeoff: the client wanted a modern fashion-retail look without paying for a full custom design. We ported the KUMO markup and styles into a proper Drupal theme with Twig templates, Drupal libraries, and integration with the Paragraphs system, so editors can use Drupal's content modeling rather than fighting a static template.
The site is fully responsive, mobile-first (most fashion catalog traffic comes from phones), and uses core Drupal caching for anonymous users.
Key Contrib Modules
- Feeds — Base feed ingestion framework
- Feeds Ex — Extended parsers for complex feed formats
- Feeds Tamper — Data transformation during ingestion
- Paragraphs — Flexible page builder for homepage banners and editorial sections
- Views — Catalog, search, brand filter, and sale listings
- Pathauto — Clean URLs for categories and brand pages
- Metatag — Per-page SEO metadata for category and brand landing pages
The Results
- From stalled project to production site. The client inherited a project that was going nowhere and now runs a live Drupal 11 catalog.
- From manual product entry to automated Awin ingestion. New products land automatically from the datafeed pipeline without anyone touching a form.
- From broken brand filtering to working filters. Visitors can now narrow down products by brand and the results actually change.
- From developer dependency to self-service admin. The client's team updates homepage banners, footer, and custom head code directly from the Drupal admin.
- From legacy scaffold to current stable. The site is on Drupal 11, the most current stable release, with years of support runway ahead.
Tech Stack
- CMS: Drupal 11
- Scaffold: drupal/recommended-project
- Custom modules: bagstore_admin, awin_feeds_image, xml_import_rules, znacky_nocache
- Feed ingestion: Feeds, Feeds Ex, Feeds Tamper, custom XML import rules
- Affiliate network: Awin (datafeed based)
- Content: Paragraphs for flexible layouts
- Listings: Views with plain database filters (no Solr at this scale)
- Theme: Custom
bag_store theme adapted from the KUMO HTML template
- Hosting: WebEvra managed Drupal hosting (multisite)
Client Testimonial
"Very good experience working with WebEvra so far. Prompt communication and reliable delivery based on what we agreed. The project is progressing well and I can definitely recommend them."
— Bagstore.sk
Need a Drupal rescue or a catalog build?
Bagstore is a common shape of project for us: a stalled Drupal build that needs a senior team to finish it properly, plus a specialized ingestion pipeline wired up to an external data source. If you have a similar problem, book a strategy session and we will scope a rescue plan. See also Drupal support and maintenance for ongoing work after launch.