Case study
A Card Catalog Organized by Moment, and a Quick-Order Sheet for Wholesale Buyers
Parameter built It Takes Two a storefront organized around the moments its cards are for, a quick-order sheet and reorder portal for wholesale accounts, and the custom Fiery integration that turns paid orders into print jobs.
- Client
- It Takes Two
- Platform
- Odoo
- Services
- Odoo
- Since
- ittakestwo.com (opens in a new tab) · 2024
Results
About 1,600
Products published
On ittakestwo.com, October 2026
9
Categories with written introductions
Each with its own search title and description
13
Product codes generated
From three numbering rules confirmed by the team
Fiery
Print integration
Paid orders create print jobs on the Fiery server
Operational improvements
Shoppers start from the moment they need a card for. Wholesale buyers order a whole category from one sheet and reorder from past orders. Paid orders create print jobs with settings chosen from a fixed list.
Business impact
It Takes Two has a storefront built around how people look for its cards, a quick path for the shops that stock them, and print jobs created from orders with consistent settings. The results of the October search work have not been measured yet.
01 · The situation
What was going on before we started.
What was breaking
The storefront ran on a purchased theme, organized like a generic shop rather than around what a card is for. Wholesale buyers who stock racks by the case went through the same product-by-product path as shoppers. Search engines saw several addresses per product, and print settings were typed as free text.
What was at risk
A shopper looking for a pet-loss card should not have to browse a general catalog to find one, and a shop restocking forty designs should not have to open forty product pages. Duplicate addresses also split each product's search presence.
The business
It Takes Two is a greeting card publisher founded in 1984 in Minnesota, known for Georgia Rettmer's torn-paper art. It makes greeting cards, note cards, bookmarks and two-year pocket planners and sells them online and by the pack to card and gift shops, veterinary clinics, churches, hospice and care teams, and real estate offices. Today it is based in Jacksonville, Florida.
Existing stack
BigCommerce stores, with a Parameter-built integration that sent paid orders to the Fiery print server. The business then moved to Odoo, where the storefront first ran on a purchased theme.
Scale
About 1,600 products published on ittakestwo.com (October 2026), sold at list price to anyone and by the case through wholesale accounts. One Odoo website with its own storefront design.
Constraints
Orders ship every day, and the print floor depends on jobs arriving correctly. Existing product addresses had to keep working. Wholesale buyers order by the case and need a faster path than shoppers.
02 · Approach & solution
The decisions behind the build.
Why this approach
Organize the catalog around moments, because that is how people look for these cards, and give wholesale buyers a sheet instead of a shop. Odoo already held the catalog, the orders and the print integration, so both could be built on it.
Alternatives considered
Keeping the purchased theme and adjusting it was the smaller job, but it could not be organized around moments or give wholesale buyers their own path.
Tradeoffs
A storefront theme of its own and a custom quick-order sheet are more code to maintain than a purchased theme. In return the catalog, the wholesale path and the search settings belong to It Takes Two.
Constraints
Old product addresses redirect to the new ones. The quick-order sheet had to respect case quantities and wholesale pricing.
03 · Workstreams
Five pieces of work, in order.
Cards by moment
What was done
Organized the catalog by the moment a card is for. The Cards menu opens on a moments block, category pages filter by moment, theme and season, and each product page carries a color-coded moment tag and ends with a grid of more cards for the same moment.
Why it mattered
People look for these cards by occasion: a loss, a pet, a hard week. The catalog now starts there.
What it replaced
A generic shop structure on a purchased theme
Wholesale quick order
What was done
Built a quick-order sheet for wholesale accounts: the line as a sortable table, best-sellers first, with server-side paging, real thumbnails and quantities by the case, added to the cart in one step. A Past orders view lists the cards the account has bought before, and every category page links to the sheet with its filters applied. A wholesale portal home offers order history and an interactive reorder.
Why it mattered
A shop restocking a rack orders dozens of designs at once, and a sheet is faster than a shop for that.
What it replaced
Product-by-product ordering for wholesale buyers
A storefront of its own
What was done
Built It Takes Two's own Odoo theme: a gallery-wall homepage, mega menus, an editorial footer, and product pages that show the front and inside wording and credit the artist and the verse writer. A public wholesale page and an application that asks for a resale or tax-exemption certificate came with it.
Why it mattered
The cards are the product, so the site is built to show them. The purchased theme it replaced has been uninstalled.
What it replaced
A purchased storefront theme
A catalog search engines can read
What was done
Gave each product one canonical address, redirected old numeric category addresses to named ones, wrote introductions with their own search titles and descriptions for nine categories, kept login, cart and account pages out of search results, and limited the sitemap to real, dated pages.
Why it mattered
Search engines should see one clear page per product and per category. This work went live on October 12, 2026, and nothing is measured yet.
What it replaced
Several addresses per product and numeric category addresses
Print jobs and item codes
What was done
Built the custom Fiery integration that turns a paid order into a print job, first for BigCommerce and then on Odoo, with imposition chosen from a fixed list instead of typed. Built an item code generator: thirteen product codes from three numbering rules the team confirmed.
Why it mattered
Print jobs and product codes that follow fixed rules come out the same way every time.
What it replaced
Free-text imposition codes
04 · Execution
The stack and the decisions behind it.
- Odoo on Odoo.sh
- itt_theme (storefront theme module)
- itt_products (moments and catalog data)
- Quick-order sheet and wholesale portal
- Custom Fiery print integration
- Odoo eCommerce, Sales and Inventory
- ShipStation
Technical decisions
The storefront is a theme module of its own
The storefront is a theme module of its own. Moments are part of the product data, so the menu, the filters, the tags and the related grids all read from one source. The quick-order sheet pages on the server, so it stays quick across the whole line. The Fiery integration takes its imposition settings from a fixed list.
Turning points
Organizing by moment
Organizing by moment. Once the catalog had moments, the same data drove the menu, the category filters, the product tags, the related grids and the quick-order sheet's filters.
Unexpected issues
What did not go to plan
The public sitemap had been listing far more product pages than were really for sale. Filtering it to real, dated pages was part of the October search work, so earlier page counts are not a guide to the catalog.
The full story
The project start to finish, in one read
It Takes Two began in 1984 as a mother-and-daughter company in Minnesota. Georgia Rettmer made the art, from torn paper she made and dyed herself, and her daughter Kimberly Rinehart wrote the verses. Today the company publishes greeting cards, note cards, bookmarks and pocket planners, sold to anyone online and by the pack to card and gift shops, veterinary clinics, churches, hospice teams and real estate offices.
The catalog runs deep in the cards that are hardest to find: sympathy, pet loss, encouragement and faith. So the new storefront is organized by moment. The Cards menu opens on a moments block, category pages filter by moment, theme and season, and every product page carries its moment as a tag and ends with more cards for the same moment.
Product pages show the card’s front and inside wording in full and credit the artist and the verse writer. For these cards the words matter as much as the picture.
Wholesale buyers get a faster path. The quick-order sheet lists the line as a sortable table, best-sellers first, with real thumbnails and quantities set by the case, and adds everything to the cart in one step. Every category page links to the same sheet with its filters applied, and the wholesale portal home lets a buyer open a past order, pick items and reorder.
Behind the storefront, Parameter built the custom Fiery print integration, first against the company’s BigCommerce stores, and moved it to Odoo with the business: a paid order creates a print job, with imposition chosen from a fixed list. In October the catalog was also cleaned up for search, and thirteen product codes are now generated by three rules the team confirmed.
05 · Takeaways
What carries over to other projects.
Who this applies to
Publishers and product companies with a large catalog sold to both shoppers and trade buyers, especially where trade buyers order by the case and the step from paid order to production job is worth automating.
Patterns observed
Organize the catalog the way customers search, and one piece of data can drive the menu, the filters and the related products. Trade buyers want a sheet, not a shop.
When to consider this
When customers look for products by occasion rather than by category. When wholesale buyers order dozens of items at a time through a retail shop. When orders are retyped into a print or production system.
Next step
Want this kind of clarity on your own stack?
If your site, store, or business system is carrying silent risk, we can map the problem, choose the right approach, and turn it into something steadier.