> For the complete documentation index, see [llms.txt](https://ctracker-docs.keywordrush.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ctracker-docs.keywordrush.com/coupons/adding-coupons-manually.md).

# Adding coupons by hand

Imported coupons cover most shops, but not all of them. A merchant you deal with directly, an exclusive code negotiated for your members, or an offer the network never published — those you add yourself.

`Cashback Tracker` → `Coupons`

### Adding one

Press **Add coupon** and fill in:

* **The shop** it belongs to. A coupon must belong to a shop with a page — that is where it appears.
* **A title** — what the offer actually is. *20% off everything* beats *Discount*.
* **A code**, if there is one. Leave it empty for a deal that needs no code.
* **An expiry date**, if it has one.
* **A description**, if the offer has conditions worth stating.

### Codes and deals

The difference is only whether there is a code:

* **A coupon with a code** shows a button that reveals it when pressed.
* **A deal** has no code — the discount applies through the link. Its button goes straight to the shop.

Both are tracked links, so both earn you commission either way.

You can change what those two buttons say — see [Coupon display settings](/coupons/coupon-display-settings.md).

### Editing and deleting

The Coupons screen lists everything you hold, imported and hand-made alike, and you can edit or delete any of them.

{% hint style="warning" %}
**Editing an imported coupon is temporary.** The next import for that shop overwrites it. If you need a permanent change, add your own coupon instead and delete the imported one — or leave both, if having two makes sense.
{% endhint %}

Hand-made coupons are never touched by an import. They stay until you remove them.

![Editing an imported coupon: only the fields you change are kept](https://3545740495-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M69sU0hfZj3QsteYxmI%2Fuploads%2Fgit-blob-04c0cdda53b2f5da1294d6d48578f4b735d0e4c8%2Fcoupon-edit-modal.webp?alt=media)

### Where yours appear in the list

**Coupons you added by hand come first**, above everything imported, on the shop page and in the `[cashback-coupons]` list alike. You typed it in for a reason, so it does not have to compete with the feed for a place.

Below that the order is unchanged: best-voted first, then newest.

Two things worth knowing:

* **It holds even if the coupon is voted down.** The pin is not conditional — if members report your code as dead, hide or delete it rather than expecting the list to bury it for you.
* **An explicit sort wins.** If you have written `[cashback-coupons sort="title"]` you get a genuinely alphabetical list, with nothing floated above it.

Expired coupons are never pinned. They cannot appear in the live list at all — they move to the **Recently expired** section, which is ordered by what lapsed most recently.

![The Coupons screen](https://3545740495-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M69sU0hfZj3QsteYxmI%2Fuploads%2Fgit-blob-00fff1d0f244ba91416849b3c1451a4608714617%2Fcoupons-screen.webp?alt=media)

### Exclusive codes

A code negotiated for your members is the best thing on a coupon site. It is already at the top of the list, so the remaining job is to make it *read* as exclusive: put *Exclusive* in the title, so it says so in the list and on the shop page.

### Expiry

A coupon with an expiry date stops showing on that date. It is kept for a while afterwards — see **Delete expired coupons after** in [Importing coupons](/coupons/importing-coupons.md) — and then removed.

A coupon with no expiry date runs until you remove it. That is right for a standing offer and wrong for a seasonal one; a forgotten Christmas code still on the site in March costs you trust.

{% hint style="info" %}
If you are not sure whether a code has expired, put the date in anyway. A coupon that disappears on time is better than one a member tries and finds dead.
{% endhint %}

### Related

* [Importing coupons](/coupons/importing-coupons.md)
* [Where coupons appear](/coupons/where-coupons-appear.md)
* [Coupon votes](/coupons/coupon-votes.md)
