# ThanksEasy: Themes, Tips and Troubleshooting

> Theme compatibility, best practices, answers to common thank-you page problems, and the order view.

---

This page is part of the [ThanksEasy guide](/docs/thankseasy). Start there for what the extension does, installation and the frequently asked questions.

## Theme compatibility

ThanksEasy is compatible with **Luma**, **Porto**, and **Hyvä** themes.

- **Luma**: full support; all blocks render using standard Magento layout handles
- **Porto**: full support; the enhanced page layout works within Porto's checkout success handle
- **Hyvä**: full support; background mode values (`full`, `tiled`, `color`) are stored as strings - the module preserves these values and does not cast them to integers, which would prevent the configured background from rendering

If you switch between Hyvä and a non-Hyvä theme on the same store, re-check the **Page: Background** setting and save it from the correct theme context to ensure the stored value matches what the active theme expects.

---

## Tips & best practices

- Keep the **Discounts: Time limit** short enough that you can still combine shipments - 1 hour is the default
- Use **Limits: Per customer per day** on all discount blocks to avoid customers feeling they are being aggressively upsold on every visit
- Set a **Minimum final price** filter on cross-sell popups to avoid offering very low-value products as the main post-purchase pitch
- Use the **Minimum offered price (% of current price)** floor in General to prevent any automated offer from discounting too steeply - 50% is a safe default starting point
- Write countdown title copy that conveys urgency without sounding artificial - `Get {{discount}}% off before {{countdown_promo}} runs out` converts well
- Use the live **Preview order id** field to review every config change before saving; you can iterate quickly without placing test orders
- Set per-store-view translations for the success message and block title fields if you operate in multiple languages - the config is store-view scoped
- Enable the **Guest account creation prompt** on stores where repeat purchase rate matters - inviting guests at the point of peak satisfaction is more effective than a follow-up email

---

## Troubleshooting

### The popup or countdown fields are greyed out in the admin

Popup and countdown features require Pro.

- **Check:** Go to **Stores > Configuration > Moogento > License** and confirm ThanksEasy is showing as active on your current domain
- **Resolution:** Upgrade your ThanksEasy plan on moogento.com, or verify your license key is entered correctly for the right domain

---

### The Delivered By date is wrong

The Delivered By date is calculated as a fixed number of days from the order date, not from a carrier API.

- **Cause:** The default offset (14 days) may not match your actual fulfilment time
- **Check:** Go to **Design: Order Details Section > Delivered By: Period from order**
- **Resolution:** Change the value to match your average delivery window; for carrier-accurate dates, install **TrackEasy**

---

### The background image is not showing on Hyvä

Hyvä stores the background mode as a string value; re-saving from a non-Hyvä context can overwrite it with an integer.

- **Cause:** The `general_background_yn` config value was cast to an integer, which Hyvä does not recognise
- **Check:** Go to **Design: Thanks Page > Design: General > Page: Background** and note the current value
- **Resolution:** Re-select the desired background mode and save config from the Hyvä-themed store view; run `php bin/magento cache:clean`

---

### Cross-sell products not appearing in the popup or page blocks

The popup and inline blocks apply several filters before displaying a product.

- **Cause:** All candidate products were filtered out (out-of-stock, missing product image, discounted price would reach $0, or below the minimum final price threshold)
- **Check:** Verify the ordered products have cross-sell associations set in the product catalogue, that those products have images, and that they are in-stock
- **Resolution:** Add at least one qualifying cross-sell, or switch the strategy to BOGO if cross-sell associations are sparse; lower or disable the minimum final price filter if it is excluding valid products

---

### A page section shows related products instead of the selected category

- **Cause:** ThanksEasy 2.9.52 and earlier only used the category to narrow the cross-sells, then filled empty slots with products outside that category
- **Check:** Under **If empty slots: Include random products?**, the note reads "'Random' will be: In-stock, enabled, with an image" on older versions and "Fills remaining slots with eligible products from the selected category" on current ones
- **Resolution:** Update ThanksEasy to 2.9.53 or later. No settings need to change: keep *Cross-sell products* with your category in **Filter-in by: Category**

---

### The free-shipping offer is not applying in the cart

The ThanksEasy Free Shipping carrier must be enabled separately in Magento's Delivery Methods.

- **Cause:** The carrier was not enabled in Delivery Methods, or the time limit has already expired
- **Check:** Go to **Stores > Configuration > Sales > Delivery Methods** and confirm **ThanksEasy Free Shipping** is set to Enabled = Yes
- **Resolution:** Enable the carrier, save, and clear cache; remind customers the offer is time-limited

---

### Malware scanner flags Helper/Moo.php

- Cause: Your host's malware scanner (often Imunify360 on cPanel hosting) heuristically flags the encoded license-check files that ship inside every paid Moogento extension. The files are genuine and unchanged - the encoding protects the license check from tampering.
- Resolution: Add the files to the scanner's ignore list so the warnings stop, and restore any file the scanner already quarantined. Both steps, plus how to verify the files are byte-for-byte what we shipped, are covered in the [license file protection guide](../magento-guides/moogento-license-file-protection.md).

---

## Order view: How ThanksEasy helped

When ProfitEasy is installed, the admin order view shows a card explaining how ThanksEasy contributed
to a sale: which lines were bought from a thank-you-page offer, a link back to the earlier order that
offer came from, and whether the order used the free-shipping incentive. On the Growth and Pro plans
the card also shows the offer price against the normal price for a genuinely discounted line. There is
nothing to configure; the card only appears when at least one item on the order was bought through a
ThanksEasy offer and your licence is active. ProfitEasy must also be installed, enabled and on
a Pro licence, since only ProfitEasy Pro shows the Sale Source panel, and the admin user needs the
ProfitEasy "Show profit in Order Detail page" permission, before the card can appear. Orders placed with Instant Purchase don't show the card.

The card distinguishes two kinds of line. A line whose offer link carried a signed token is shown as
**"Offered on the thank-you page of order #..."**: this is verified evidence. A seed-plan offer, or a
Growth/Pro offer without a discount badge, doesn't carry a signed token. When the same customer places
another order afterwards that references that earlier order, the card still attributes the line,
worded as **"Probably added from the thank-you page offer on order #..."**. This unsigned attribution
only appears when the earlier order exists, was placed before the current order, and belongs to the
same customer (the same registered customer account, or, for guest orders, a matching email address);
it never shows a price or discount, since none was verified. Whenever any line on the card is unsigned,
the whole card's title reads "How ThanksEasy probably helped" instead of "How ThanksEasy helped", to
flag the lower-confidence evidence. A tampered signed token (its key does not match the order) is
always rejected outright and never attributes the line at all. A signed token that verifies but whose
offer price was not the price actually charged - for example an expired offer completed at the normal
price - falls back to the same unsigned attribution as an unsigned offer, and only appears when the
same-customer and earlier-order checks above pass. A charged price at or below the signed offer price,
including one lowered by an unrelated catalog price drop, still counts as verified.

---

## Other pages in this guide

- [ThanksEasy overview, installation and FAQs](/docs/thankseasy)
- [ThanksEasy: Thank-You Page Setup Tasks and Features](/docs/thankseasy-setup-tasks)

<!-- docs-split: part-of="thankseasy" -->
