More
Сhoose

Applied

Engineering

Results

samueltorres.dev

Mexico City

Mexico City, Mexico Available immediately

Availability

Remote and on-site projects MXN · USD

Little Trees Mexico —
WooCommerce store with custom volume-purchase rules

Read the case study
Little Trees Mexico store homepage with the mascot and product formats
E-commerce · WooCommerce · PHP
2025 – Present
Role

E-commerce engineering: WooCommerce and payments setup, custom PHP business rules, transactional email and server.

Core stack

WordPress · WooCommerce · PHP 8.1 (child theme with hooks) · Elementor Pro Forms · YITH Ajax Product Filter · YITH Product Bundles · Mercado Pago · WP Mail SMTP · cPanel/WHM · Let's Encrypt

Team

Visual design and Elementor layout: Conqr Digital Agency's design team.

Context

Little Trees Mexico is the authorized distributor of Little Trees air fresheners in the country. Its store sells mostly in volume — boxes of 12, 36, 72 and 144 pieces, displays and master cases — to retailers and distributors, while still serving end consumers. They needed a 54-product catalog with 20+ fragrances that was easy to browse, payments in pesos, volume-purchase rules WooCommerce doesn't support out of the box, and a way to onboard distributors without manual work.

What I did

1. Catalog and checkout in pesos

+
-

Set up WooCommerce to sell in MXN with taxes and guest checkout, using Mercado Pago — the payment method Mexican shoppers use most. The catalog is browsed through AJAX filters by format and category (Fiber Can, Master Case, Best Sellers) without page reloads, with variant tables and mixed boxes built as bundles.

2. Volume-purchase rules in a child theme

+
-

WooCommerce can't enforce a per-product minimum quantity, and the commercial plugins had to stay untouched so they could keep receiving updates. I built the logic in a custom child theme with hooks: a woocommerce_add_to_cart_validation check that enforces each product's minimum, a script that shows cart errors in a modal instead of the default notice, and a tweak so mixed bundles start with their quantities at zero.

3. Automated distributor onboarding

+
-

So adding distributors wouldn't depend on someone logging into the admin, I wrote a hook on elementor_pro/forms/new_record: when the sign-up form comes in, it creates the WordPress account with the customer role and a unique username, and sends the welcome email.

4. Transactional email and server

+
-

All store email — orders, new accounts and welcome messages — goes out through authenticated SMTP rather than the server's mail() function, so it reaches the inbox. The site runs on PHP 8.1 with auto-renewing Let's Encrypt SSL and scheduled backups.

Result

The store runs at littletrees.com.mx with 54 published products, 20+ fragrances and peso payments through Mercado Pago.

Evidence from the live store

Screenshots from the production site: the filtered catalog, volume sales and distributor sign-up described above.

Little Trees shop with AJAX filters by product format

Shop with AJAX filters by format, no page reloads — point 1.

Fiber Can product page for a 72-piece box at MX$3,600

Fiber Can in a 72-piece box at MX$3,600: the volume sales behind the minimum-quantity rule — point 2.

Little Trees authorized distributor network page

Distributor network page: the entry point to automated account creation — point 3.

Little Trees fragrance catalog with a photo for each scent

Catalog of 20+ fragrances, designed by Conqr's design team.

Little Trees shop on mobile with the filters button

The same filters on mobile, behind the Filters button — point 1.

Little Trees product page on mobile

The product page on mobile.

Little Trees distributor sign-up on mobile

Distributor sign-up on mobile — point 3.

I work with national and international clients. Rates in USD and MXN.

Have a project that needs an engineer who delivers?

Professional contact:

Mexico City

Mexico City, Mexico Available immediately

Availability

Remote and on-site projects MXN · USD

© 2026 Eng. Samuel Torres. Applied Engineering.

Versión en español