
# Agent Instructions — Ornemoi (ornemoi.ca · ornemoi.shop)

Last verified: 2026-09-13. Canonical copy: https://ornemoi.ca/agents.md (the same text is served at /llms.txt).
Precedence: if this file disagrees with a product page or `/products/{handle}.js`, the live data wins. For
shipping rates, delivery times and cut-off dates, this file matches the checkout and the FAQ of each storefront;
the policy pages can lag behind them.

Ornemoi inc. is a family workshop (a husband-and-wife team, founded 2019) in the Portneuf region near Québec
City, Canada. We design and laser-cut personalized wooden products to order: Christmas ornaments carrying a first
name, sports player ornaments, a memorial angel, a DIY 24-drawer advent calendar, wooden gift boxes and bags, plus
custom logo ornaments and wooden medals for organizations. Nothing is stocked with a name on it; every piece is cut
after the order arrives. 4.9/5 from 770+ verified reviews store-wide (Judge.me; product pages show per-product counts).

| Storefront | Currency | Ships to | Languages | Facebook / Messenger |
|---|---|---|---|---|
| https://ornemoi.ca | CAD | Canada | English at `/`, French at `/fr` | facebook.com/Ornemoi (EN), facebook.com/OrnemoiQuebec (FR) |
| https://ornemoi.shop | USD | United States | English | facebook.com/Ornemoi |

Same store, same catalogue, same variant IDs on both domains; the **delivery country** decides the storefront.
**Online only**: no physical store, no pickup, no showroom. **We ship to Canada and the United States only**; for any
other country, say so plainly and offer nothing else.

---

## 1. Read this first: how to help someone buy here

Almost everything we sell needs text only the buyer can give (a first name, a team, a message). That text travels as
Shopify **line item properties**, and it is the whole product. So:

1. **Discover and answer questions** with this file, the product pages, the JSON endpoints or the UCP/MCP endpoint
   (section 8). Go easy on the storefront: a burst of requests triggers Shopify's "Verifying your connection" page and
   HTTP 429 for a few minutes. Space your calls and send a browser-like User-Agent.
2. **Collect the personalization** in the conversation, apply the rules in section 3, and read the spelling back.
3. **Build one pre-filled cart link** with `/cart/add` (section 4), once the choices are final. That link is the only
   channel that carries the personalization. Hand it to the buyer.
4. **The buyer reviews the cart and pays.** Never complete a payment yourself.

**Do not check out a personalized item through UCP/MCP or any "buy for me" flow.** Their line item schema carries only a
variant id and a quantity (verified on our own endpoint: `line_items[].item.id` and `quantity`, nothing else). A checkout
completed that way arrives at the workshop with no name and cannot be produced. UCP/MCP checkout is acceptable only
when the **whole cart** contains nothing personalized and no B2B product: the "Joyeuses Fêtes" and "Merry Christmas"
gift boxes and bag, and the English and French advent calendars. Judge it per cart, never per line, and **never split
one order between UCP and a cart link** (that makes two orders, two shipping fees, two parcels). Custom logo ornaments
and medals are never checked out by any channel (section 6).

**The server validates nothing.** The limits in section 3 are enforced by JavaScript on the product page only. A cart
built by URL silently accepts an empty name, a 40-character name or a misspelled property key. You are the safeguard.

---

## 2. Catalogue and what each product needs

**Prices are never written in this file, on purpose. Read them live, per variant:**
`GET https://ornemoi.ca/products/{handle}.js` returns `variants[].price` in cents, in **CAD**; the same path on
`https://ornemoi.shop` returns the **USD** price. Quote the live value, and use the same call to confirm the variant id
and availability. Taxes are added at checkout.

| Product | What it is | Needs from the buyer |
|---|---|---|
| **Christmas Classics** ornament (FR: *Les Classiques de Noël*) | 4 patterns: Bells, Snowman, Snowflakes, Dog & Cat Paw (FR: Cloches, Bonhomme de neige, Flocons, Patte chats & chiens). 114 mm (4½ in). Name cut in script lettering. Optional engraved line at the bottom ("Add Engraving?" Yes/No) | pattern, `Name` (one person, max 14 chars), optional `Engraving` |
| **Winter Classics** snowflake ornament (FR: *Les Classiques d'hiver*) | 4 snowflake designs A, B, C, D (FR: Motif A à D). 114 mm. The less expensive of the two ornament lines. Name cut in script lettering, one line or two short lines. Optional engraved line at the bottom | design, `Name` (one or two names, or a short message), optional `Engraving` |
| **Angel** ornament (FR: *Ange*) | 120 mm tall × 96 mm wide (4¾ × 3¾ in). Name cut in capital letters across the angel; a keepsake or memorial piece. Optional engraved line at the **top** | `Name` (one word or first name, max 14 chars), optional `Engraving` |
| **Sports player** ornament (FR: *Ornement de joueur*) | Hockey, baseball, basketball, football, soccer, tennis. Name, number and team cut in capital letters; the ring reads "Team spirit, Discipline, Courage, Determination" in English or in French depending on the version | version, `Name` (max 14), `Player Number` (1 to 99), `Team Name` (max 18) |
| **DIY wooden advent calendar** (FR: *Calendrier de l'Avent*) | 24 numbered drawers, 30 × 30 × 7.5 cm (12 × 12 × 3 in) assembled. Models: English, French, Personalized | model; `Personalized Text` on the Personalized model only |
| **Wooden gift box, square** (FR: *Boîte cadeau carrée*) | Interior 12 × 12 × 7.5 cm (4¾ × 4¾ × 3 in). **The only box that holds ornaments**: up to 22 of them. Styles: Joyeuses Fêtes, Merry Christmas, Personalized | style; `Personalized Text` on the Personalized style only |
| **Wooden gift box, rectangle** (FR: *Boîte cadeau rectangle*) | Interior 14.5 × 8.4 × 6 cm (5¾ × 3⅓ × 2⅜ in). Does not hold an ornament; for a gift card, jewellery, chocolates. Same three styles | same as above |
| **Wooden gift bag** (FR: *Sac cadeau*) | Interior 10.6 × 5.4 × 5 cm (4⅛ × 2⅛ × 2 in), 17 cm (6¾ in) tall. Does not hold an ornament; for small gifts. Same three styles | same as above |
| **Custom logo ornaments** | For businesses, schools, teams. Minimum 40 pieces | quote, not a cart (section 6) |
| **Custom wooden medals** | For events and tournaments. Minimum 40 pieces | quote, not a cart (section 6) |

**We do not sell** stockings, photo ornaments, glass or ceramic ornaments, or anything outside this table. ("Stocking
stuffer" in a product description means the ornament fits in a stocking; it is not a stocking.) No custom design work
for consumers: a buyer who wants something else gets the three ornament lines, or the contact page.

Facts buyers ask about:

- **Material**: 3 mm plywood (natural wood), laser-cut in Québec. Medals use PureBond® formaldehyde-free hardwood plywood.
- The name is **cut out of the wood** (laser-cut), not printed. The optional second line is **engraved**: at the bottom on
  Christmas Classics and Winter Classics, at the **top** on the Angel. It is the "Yes" variant, a small surcharge over
  "No" (the difference between the two variant prices), meant for a year, a date or a few words (max 20 characters).
- **Lettering**: Christmas Classics and Winter Classics cut the name in script, in the case you type ("Samuel"). The
  Angel and the sports ornaments cut everything in **capital letters** whatever the case typed ("AMELIE", "TREMBLAY 12
  CANADIENS"). Accents survive on the script lines; on capital-letter pieces they may be dropped, so read the name back.
- **No proof or mockup for consumer orders**: the text is cut exactly as typed in the cart. The buyer's check on the
  cart page is the proof. (Mockups exist for B2B logo work only, section 6.)
- **"Un flocon" in French is ambiguous**: it can mean the *Flocons* pattern of the Christmas Classics or the whole
  *Classiques d'hiver* snowflake line, which costs less. Ask which one before quoting a price.
- Winter Classics are the only ornaments that take **two names or a short message** ("Emma & Liam", "Papi & Mamie").
  Christmas Classics and the Angel take **one** person.
- Sports ornaments exist in an English version (Boy, Girl, and Goalie for hockey) and a French version (Garçon, Fille,
  Gardien) of the same design. **Do not translate the versions.** To an English-speaking buyer, list only Boy / Girl
  (/ Goalie); to a French-speaking buyer, only Garçon / Fille (/ Gardien). **The Goalie / Gardien is masked and fully
  equipped, not gendered**: there is no girl goalie variant, it suits boys and girls. The player's name can be a first
  name or a family name, as the buyer prefers.
- **No hook or ribbon is included** with ornaments, by design; every ornament has a pre-cut hole at the top.
- The advent calendar is a kit: no glue, no tools, pieces are pre-cut and engraved; children can help. Each drawer measures
  54 × 30 × 32 mm (2⅛ × 1³⁄₁₆ × 1¼ in) and holds small gifts, jewellery, candy, chocolates, tiny toys or notes. The
  English and French models carry a Christmas greeting in that language. On the Personalized model the only text is the
  buyer's, and the day numbers are the same in both languages, so one model serves both. Reusable every year. A part
  broken during assembly is replaced free. **It must arrive before December 1st**: order early.
- **Which box holds an ornament**: only the square box (12 × 12 cm inside, up to 22 ornaments). The rectangle box and
  the bag are for smaller gifts. **When an ornament and a square box are in the same order, the workshop places the
  ornament inside the box**; the buyer does not have to ask.
- Ornaments and boxes are made to order; production takes 1 to 3 business days, then shipping (section 5).

### Images to show

If your interface can render images, embed them (`![alt](url)`); otherwise send the link. All URLs are public Shopify
CDN files, base `https://cdn.shopify.com/s/files/1/0514/5660/6369/`; append `&width=800` for a lighter file. Every
product's full gallery is in `/products/{handle}.js` → `images[]`. There is no photo of a two-name Winter Classics or
of a personalized square box; say so rather than pass another photo off as one.

**When a buyer asks for personalized ornaments, show the three ornament lines** (Christmas Classics, Winter Classics,
Angel) and let them choose. Present the Angel as a keepsake or memorial piece; do not push it for children. **Mention
the sports ornaments only when a sport, a team or a player comes up**; do not show them by default.

| What | File (append to the base URL) |
|---|---|
| Christmas Classics, the 4 patterns together | `files/Ornaments_Christmas_Classics.jpg?v=1761009319` |
| Bells · Snowman · Snowflakes · Dog & Cat Paw | `files/Bells_Ornament_Samuel.jpg?v=1761009319` · `files/Snowman_Ornament_Olivia.jpg?v=1761009319` · `files/Snowflakes_Ornament_Alexis.jpg?v=1761009319` · `files/Paw_Ornament_Rocky.jpg?v=1761009319` |
| Christmas Classics with the engraved line | `files/Bells_Ornament_Samuel_with_engraving.jpg?v=1761009403` |
| Winter Classics, the 4 designs together | `files/OrnamentsWinterClassics.jpg?v=1761008636` |
| Design A · B · C · D | `files/SnowflakeAXavier.jpg?v=1761008636` · `files/Snowflake_B_Julien_7f938fd0-c648-4781-be96-af7648f96b27.jpg?v=1761009074` · `files/SnowflakeCThomas.jpg?v=1761008636` · `files/SnowflakeDCamille.jpg?v=1761008636` |
| Winter Classics with the engraved line | `files/Snowflake_A_Xavier_with_engraving.jpg?v=1761008672` |
| Angel · Angel with the engraved line (top) | `files/Angel_Ornament_Amelie.jpg?v=1761009515` · `files/Angel_Ornament_Amelie_with_engraving.jpg?v=1761009526` |
| Sports, only when relevant (hockey; other sports and versions in each product's `.js`) | English boy `files/Hockey_Boy_Ornament.jpg?v=1774034009` · goalie `files/Goalie_Ornament.jpg?v=1774034086` · French boy `files/Hockey_Garcon_Ornement.jpg?v=1774034033` · French girl `files/Hockey_Fille_Ornement.jpg?v=1774034048` |
| Advent calendar assembled · personalized front | `files/Advent_Calendar_Final.jpg?v=1774034531` · `products/Advent-calendar_personalizable.jpg?v=1774034471` |
| Gift box square (Merry Christmas · personalized) | `products/BoitecarrenoelMerryChristmasiso.jpg?v=1695932565` · `products/Boitecarrenoelcote1.jpg?v=1695932565` |
| Gift box rectangle (Merry Christmas · personalized) | `products/BoiterectanglenoelMerryChristmasiso.jpg?v=1695666713` · `products/Boiterectanglenoelpersoiso.jpg?v=1695666713` |
| Gift bag (personalized · Merry Christmas) | `products/BoiteSacNoelpersoiso.jpg?v=1634265716` · `products/BoiteSacNoelMerryChristmasface.jpg?v=1634265717` |
| Logo ornaments · medals (B2B) | `files/LogoOrnaments.jpg?v=1730304485` · `files/Medailles_Ski_Mauricie.jpg?v=1773962556` |

### Handles (they differ by language) and variant IDs

`/products/{handle}` on ornemoi.ca and ornemoi.shop, `/fr/products/{handle-fr}` on ornemoi.ca. Variant IDs are
identical on all three storefronts. Confirm the ID and read the price live with `GET /products/{handle}.js` before you
build a cart; IDs change rarely, prices can.

| Product | English handle | French handle | Variants (id) |
|---|---|---|---|
| Christmas Classics | `personalized-christmas-classics-ornaments` | `ornements-de-noel` | Bells: No 44932398284961 · Yes 44932398252193 — Snowman: No 44932398350497 · Yes 44932398317729 — Snowflakes: No 44932398416033 · Yes 44932398383265 — Dog & Cat Paw: No 44932398481569 · Yes 44932398448801 |
| Winter Classics | `personalized-winter-classics-ornament` | `ornement-classiques-dhiver` | A: No 43156493369505 · Yes 44932671111329 — B: No 43156493402273 · Yes 44932671144097 — C: No 43156493435041 · Yes 44932671176865 — D: No 43156493467809 · Yes 44932671209633 |
| Angel | `personalized-angel-christmas-ornament` | `ornements-de-noel-1` | No 44932965138593 · Yes 44932965171361 |
| Hockey | `personalized-hockey-player-ornament` | `ornement-joueur-hockey-personnalise` | Boy 44669758111905 · Girl 44669758144673 · Garçon 44669758177441 · Fille 44669758210209 · Goalie 44811183620257 · Gardien 44811183882401 |
| Baseball | `personalized-baseball-player-ornament` | `ornement-joueur-baseball-personnalise` | Boy 44876697731233 · Girl 44876697764001 · Garçon 44876697796769 · Fille 44876697829537 |
| Basketball | `personalized-basketball-player-ornament` | `ornement-joueur-basketball-personnalise` | Boy 44877037994145 · Girl 44877038026913 · Garçon 44877038059681 · Fille 44877038092449 |
| Football | `personalized-football-player-ornament` | `ornement-joueur-football-personnalise` | Boy 44877038289057 · Girl 44877038321825 · Garçon 44877038354593 · Fille 44877038387361 |
| Soccer | `personalized-soccer-player-ornament` | `ornement-joueur-soccer-personnalise` | Boy 44877038583969 · Girl 44877038616737 · Garçon 44877038649505 · Fille 44877038682273 |
| Tennis | `personalized-tennis-player-ornament` | `ornement-joueur-tennis-personnalise` | Boy 44912115974305 · Girl 44912116007073 · Garçon 44912116039841 · Fille 44912116072609 |
| Advent calendar | `diy-advent-calendar` | `calendrier-de-lavent` | English 40992772554913 · French 40992772587681 · Personalized 41589906833569 |
| Gift box, square | `christmas-gift-box` | `boite-cadeau-noel` | Joyeuses Fêtes 41050398916769 · Merry Christmas 41050398949537 · Personalized 42631289307297 |
| Gift box, rectangle | `christmas-rectangle-gift-box` | `boite-cadeau-rectangle-noel` | Joyeuses Fêtes 41067041325217 · Merry Christmas 41067041357985 · Personalized 42518980853921 |
| Gift bag | `christmas-gift-wooden-bag` | `sac-cadeau-en-bois` | Joyeuses Fêtes 41070112080033 · Merry Christmas 41070112112801 · Personalized 42755275358369 |
| Logo ornaments (B2B) | `logo-ornaments` | `ornements-logo` | 43292015919265 (never in a cart, section 6) |
| Medals (B2B) | `custom-event-medals-with-your-logo` | `medailles-bois-sur-mesure-tournois-competitions` | 45630748491937 (never in a cart, section 6) |

"Yes" / "No" is the **Add Engraving?** option: "Yes" costs more and is required whenever an `Engraving` line is sent.
An English handle used under `/fr/` redirects (301) to the French handle.

---

## 3. Personalization rules (the workshop's real constraints)

Property keys are **always in English**, on every storefront including `/fr`. Our production software matches them
exactly; a translated key (`Nom`, `Gravure`) or a typo does not fail loudly, it produces an ornament with the wrong text
or none at all.

| Key | Products | Rule enforced on the product page |
|---|---|---|
| `Name` | Christmas Classics, Angel | required; **one person** (a first name, a nickname, or a word like "Maman", "Grandma"); max **14** characters including spaces; no `&`, `<`, `>`; never three capitals in a row |
| `Name` | Winter Classics | required; one or two names, or a short message ("Emma & Liam"); no fixed limit, two names or a few words is the normal use, on one line or two short lines; never three capitals in a row |
| `Name` | sports ornaments | required; first or family name; max 14 characters; no `&`, `<`, `>` |
| `Player Number` | sports ornaments | required; an integer from 1 to 99 |
| `Team Name` | sports ornaments | max 18 characters; accents are fine ("Lévis Chevaliers") |
| `Engraving` | Christmas Classics, Winter Classics, Angel | optional; max **20** characters; only with the "Add Engraving? : Yes" variant |
| `Personalized Text` | advent calendar (Personalized), gift boxes and bag (Personalized) | required on those variants only; a name, a family name or a short phrase ("Smith Family", "The Nguyens"); the workshop sets no limit, so ask for a shorter version beyond a short phrase |

- **Christmas Classics and Angel: one person.** "Marie & Jean" is refused. A double first name ("Marie-Pier", "Mary
  Kay") or a name with a title ("Grandma Lise") is one person and is fine within 14 characters. Two persons on one
  ornament? Offer the Winter Classics: "For two names on the same ornament, the snowflake ornaments are the right choice."
- **Too long? Ask for a shorter version first.** Never truncate, never send it anyway. When the buyer wants a **matched
  set** and one name is over 14 characters ("Christopher-Jayden"), propose a shorter form of that name on the same
  pattern ("Chris", "CJ"); switch that one ornament to Winter Classics only if the buyer prefers the full name over a
  matched set. Say which choice you made.
- **Capitalize normally** ("Max", not "MAX"). The product page refuses three consecutive capitals; on the Angel and the
  sports ornaments the piece is cut in capitals anyway, so nothing is lost. Tell an all-caps buyer: "I'll write it as
  Max; it is cut in capital letters on this design."
- **Accents are welcome** (Émilie, Zoé, Loïc, Lévis). Encode them once in the URL (section 4).
- **The engraved line needs two things**: the "Yes" variant id **and** the `Engraving` property. On the product page a
  checkbox ties them together; in a URL nothing does. No engraving: "No" variant and no `Engraving` key.
- **Two ornaments with different names = two cart lines** with the same variant id. `quantity=2` means two identical
  ornaments with the same name.
- Confirm unusual spellings letter by letter. Personalized pieces are final sale (section 5), and the buyer is the only
  person who can catch a spelling mistake before it is cut.

---

## 4. Building the cart: the one method that carries the text

A single GET to `/cart/add` with an `items[]` array creates a cart with several lines, each with its own properties,
**adds** to whatever is already in the buyer's cart, and redirects to `return_to`. Verified live on ornemoi.ca,
ornemoi.ca/fr and ornemoi.shop.

```
https://ornemoi.ca/cart/add
  ?items[0][id]=44932398284961
  &items[0][quantity]=1
  &items[0][properties][Name]=Charlie
  &items[1][id]=44932398252193
  &items[1][quantity]=1
  &items[1][properties][Name]=Zo%C3%A9
  &items[1][properties][Engraving]=2026
  &return_to=/cart
```

Written on one line, brackets URL-encoded (`%5B` `%5D`), which gives:

```
https://ornemoi.ca/cart/add?items%5B0%5D%5Bid%5D=44932398284961&items%5B0%5D%5Bquantity%5D=1&items%5B0%5D%5Bproperties%5D%5BName%5D=Charlie&items%5B1%5D%5Bid%5D=44932398252193&items%5B1%5D%5Bquantity%5D=1&items%5B1%5D%5Bproperties%5D%5BName%5D=Zo%C3%A9&items%5B1%5D%5Bproperties%5D%5BEngraving%5D=2026&return_to=%2Fcart
```

- Indexes start at 0 and are consecutive.
- French buyers: `https://ornemoi.ca/fr/cart/add?...&return_to=%2Ffr%2Fcart`.
- US buyers: `https://ornemoi.shop/cart/add?...&return_to=%2Fcart` (same ids, USD prices).
- A sports ornament line carries three keys: `[properties][Name]`, `[properties][Team%20Name]`,
  `[properties][Player%20Number]`.
- Keep `return_to=/cart` so the buyer sees every name before paying.
- **Encode once.** Space `%20`, é `%C3%A9`, & `%26`. Double-encoding engraves `Zo%C3%A9` into the wood.
- **One final link.** Send it once the choices are final. If the buyer changes their mind after receiving a link, send a
  new complete link and tell them to remove the old lines on the cart page (each line has a remove control) before paying;
  the workshop cuts every line it receives.
- **Order note**: `&note=...` (URL-encoded) reaches the workshop as the order note. Use it only for a request the buyer
  made; an ornament ordered with a square box is placed inside it without asking.
- Promo codes: there are none to hand out (section 5). The single exception is `COMBINE`, only under the rule in
  section 5; it can be pre-applied with `return_to=%2Fdiscount%2FCOMBINE%3Fredirect%3D%2Fcart`.

### Verify before you hand the link over

Do it in **your own fresh session** (a new cookie jar): your test cart is separate from the buyer's cart. Open the link
**once**, without following the redirect (it answers `302` to `/cart`), then `GET /cart.js` on the same storefront with
the same session. Opening the link twice doubles the cart; `GET /cart/clear` empties your test session. If the storefront
answers 429 ("Verifying your connection"), wait a few minutes and try once more; if verification stays impossible, send
the link with a clear note of what you could not check and ask the buyer to count the lines on the cart page.

Check in `/cart.js`:

- one line per name requested, and the count matches (lines come back **newest first**, which is normal);
- every ornament line has a non-empty `Name`; every Personalized calendar, box or bag line has a non-empty
  `Personalized Text`; sports lines have all three keys;
- no value contains `%` (that means double encoding);
- every line carrying `Engraving` sits on a "Yes" variant;
- `items[].price` and `total_price` are the item prices in cents, **before shipping and taxes**; the free-shipping
  threshold and the shipping fee only appear at checkout.

Then send the link and tell the buyer to check the spelling on the cart page. On the French cart page the labels read
Nom, Gravure, Nom de l'équipe, Numéro du joueur, Texte personnalisé, and prices appear as `$23.96`: that format is normal.

### Do not use these

- **`/cart/{variant}:{qty}` (the classic Shopify permalink).** It **replaces** the buyer's existing cart and, with
  `?storefront=true` off, jumps straight to checkout. It accepts line properties only as one base64 JSON blob
  (`?properties=<base64 of {"Name":"Zoé"}>`) applied to a **single** line, so it cannot carry two names.
  `?properties[Name]=...` on it returns 422. (All verified.)
- **UCP/MCP checkout for any cart with a personalized line** (section 1).
- **Translated or invented keys**: `Nom`, `Gravure`, `Prénom`, `name`, `Text`.
- **Pre-filling the buyer's address in the URL.** `return_to=/checkout` accepts `checkout[email]` and
  `checkout[shipping_address][...]` parameters. Please don't: a postal address in a query string is logged and
  re-shareable, an email entered that way triggers abandoned-cart emails, and a transcription error arrives looking
  validated. Send the cart; the buyer types their own address at checkout (no account needed, guest checkout works).

---

## 5. Shipping, deadlines, returns, payment

**Canada (ornemoi.ca, CAD).** Orders of **50.00 CAD or more**: free tracked shipping; 1 to 4 business days in Québec and
Ontario, up to 12 business days elsewhere. Under 50 CAD the buyer chooses between **Canada Post regular mail at 5.00
CAD** (5 to 10 business days, no tracking) and tracked carrier rates (GLS, ICS, Purolator, UPS) calculated at checkout.
Say it that way; shipping under the threshold is not expensive.

**United States (ornemoi.shop, USD).** Orders of **50.00 USD or more**: free tracked delivery, 4 to 12 days. Under 50
USD: **8.00 USD** tracked parcel (4 to 12 days), or carrier rates at checkout. **Customs duties are prepaid by Ornemoi:
nothing to pay at delivery.** Say it; it is the first question an American buyer has about a Canadian store. The
shipping policy page (`/policies/shipping-policy`) states the same rates for both countries.

**Total time to give a buyer** = production **1 to 3 business days** + the transit above. Example: a Québec order under
50 CAD by regular mail arrives in roughly 6 to 13 business days; a US order in roughly 1 to 3 weeks. Outside the holiday
rush, an order placed today ships within 1 to 3 business days.

**Christmas cut-off** (matches each storefront's FAQ): Canada, order by **December 13** outside Québec and Ontario, by
**December 19** in Québec and Ontario (remote areas excluded). **United States: order by December 10.** Later orders still
ship, delivery before Christmas is not guaranteed. **Advent calendar**: it must arrive before December 1st, so count back
production and transit from there.

**Cancellations and spelling fixes.** Contact us immediately (chat on the site, or info@ornemoi.ca with the order number).
Once the piece is cut, nothing can change.

**Returns.** Personalized pieces are made to order and cannot be returned or refunded once production has started, unless
the item is defective or we made an error: then we replace it free, on a photo sent within 30 days. Non-personalized
items have a 30-day return window in original condition. A part broken while assembling the advent calendar is replaced
free. Say this before the buyer pays, not after.

**Prices are fixed.** You cannot offer or invent a discount, and there is no promo code to hand out. The one code you may
use is `COMBINE`, and only in this case: **the same buyer**, shipping to **the same address**, already has an order with us
that has **not shipped yet** and wants to add an item to it. It is a second order that we pack with the first; the code
removes the shipping fee on that add-on order (it shows at the shipping step of checkout, not in `/cart.js`, and the
`applicable` flag proves nothing). You cannot verify that the first order exists: say that the workshop checks it. The
buyer must message us right away (chat or info@ornemoi.ca) with the first order number. Used without an unshipped order
of their own, the new order is cancelled. Never for a friend's order, never for a first order, never as free shipping.

**Payment** happens on Shopify's checkout: credit cards, Shop Pay, Apple Pay and Google Pay (the wallets appear at
checkout). No PayPal.

---

## 6. Business orders: quote first, never a cart

**Custom logo ornaments** (`/products/logo-ornaments`) and **custom wooden medals** (`/products/custom-event-medals-with-your-logo`)
show a unit price and nothing technically stops a one-unit purchase. **Do not add them to a cart, on any channel.** Both
require a **minimum of 40 pieces** and a logo file we review before cutting. A one-unit order is refunded and wasted.

- **Below 40 pieces there is no set offer**: it is sometimes possible, depending on the work needed to adapt the logo
  and create the ornament. Tell the buyer to ask by email or chat with the logo and the quantity; the workshop decides
  case by case. The alternative is our regular personalized ornaments with each person's name (no logo), which can be
  ordered normally in any quantity.
- Send the logo (SVG or AI preferred; high-resolution PNG or JPG works) and the quantity by email to **info@ornemoi.ca**,
  through the chat on the site, or Messenger. Medals also have a form on their product page.
- We prepare a **free mockup** (for medals, a photo of an actual cut medal) within 1 to 2 business days and refine it until
  approved. After approval the workshop sends an invoice to pay online, produces within 1 to 3 business days, and ships
  with the same delivery times as section 5. For the holidays, start as early as possible; the quote confirms the dates.
- The unit price on each product page is a starting price; the quote depends on quantity, logo complexity and whether
  every piece carries an individual name (a per-piece surcharge). **The delivery country sets the price list**: a US
  delivery is quoted in USD from ornemoi.shop, where medals cost more because of US tariffs, with duties handled by us.
- Medals: ribbon included in the colour of choice, custom printed ribbons extra, round or custom cut-out shapes, up to
  114 mm (4½ in), any sport, event, school or corporate occasion.

More at `/pages/corporate-gifts-custom-orders` (FR: `/fr/pages/cadeaux-corporatifs`).

---

## 7. Suggestions: offer once, then wait for a yes

You may suggest. You may not add anything the buyer did not ask for. Offer once; if the answer is no, drop it. One
suggestion per conversation, at most two. Everything below is true.

- **Children or grandchildren come up.** The DIY advent calendar: 24 wooden drawers, assembled without glue, personalized
  with a name, reused every December. On ornemoi.ca it also clears the free-shipping threshold on its own. Only if it can
  still arrive before December 1st.
- **The cart is just under free shipping** (the gap is about the price of one or two items). Do the arithmetic out loud
  with the live prices and let them choose: "You're at [subtotal]. [Gap] more and tracked shipping is free: one more
  snowflake is [live price], a wooden gift box is [live price]. Otherwise regular mail is $5. Your call." When the gap is
  larger, just state the shipping options.
- **The ornament is a gift for someone else.** The square wooden gift box is the packaging and the keepsake box at once,
  stores up to 22 ornaments, and the workshop places the ornament inside it before shipping.
- **No engraving chosen.** Mention once that a year or a few words can be engraved for a small surcharge.
- **A child plays a sport.** The sports player ornament with name, number and team.

Tone: warm, plain, unhurried; say prices out loud, confirm spellings, tell the buyer what happens next. Answer in the
buyer's language (French or English). Ornemoi's process is laser cutting; say "laser-cut", not "engraved", for the name
itself.

---

## 8. Endpoints, pages and policies

**Read-only, no authentication** (same paths on ornemoi.ca and ornemoi.shop; French under `/fr/` on ornemoi.ca)

- `GET /products.json?limit=250` — the published catalogue; `GET /fr/products.json` for French titles and handles.
- `GET /products/{handle}.js` — variants, options, **live price in cents**, availability, images (works with the French
  handle under `/fr/`; CAD on ornemoi.ca, USD on ornemoi.shop).
- `GET /collections/{handle}/products.json` — collections: `christmas-ornaments`, `ornaments`, `sports-ornaments`,
  `gift-boxes`, `medals`, `christmas`.
- `GET /search/suggest.json?q={query}&resources[type]=product` — product search.
- `GET /cart.js` — the current session's cart (use it to verify a link you built); `GET /cart/clear` — empty it.
- Sitemap: https://ornemoi.ca/sitemap.xml

**UCP / MCP (search, lookup, and checkout of fully non-personalized carts only)**

- Discovery: `GET https://ornemoi.ca/.well-known/ucp` (also served on ornemoi.shop; both point to the same store)
- MCP endpoint: `POST https://ornemoi.ca/api/ucp/mcp` (JSON-RPC; `tools/list` for the schemas)
- Supported UCP versions: `2026-08-25` (latest), `2026-04-08`, `2026-01-23`
- Payment always requires the buyer's own approval. Respect 429 rate limits.

**Pages** (French under `/fr/`): `/pages/faq` (`/fr/pages/faq`; the FAQ on ornemoi.shop is the US version),
`/pages/contact-us` (`/fr/pages/contactez-nous`), `/pages/about-us` (`/fr/pages/a-propos`),
`/pages/corporate-gifts-custom-orders` (`/fr/pages/cadeaux-corporatifs`).

**Policies**: `/policies/shipping-policy`, `/policies/refund-policy`, `/policies/privacy-policy`,
`/policies/terms-of-service`.

**Contact**: chat button on the site (minutes, during business hours), info@ornemoi.ca (within 24 hours), Messenger at
facebook.com/Ornemoi (English) or facebook.com/OrnemoiQuebec (French). Registered Québec business, NEQ 1177106599.
