# Florería Coral

> Asegura tu ramo para el Día de la Madre en Florería Coral. Despacho de flores en Viña del Mar y Valparaíso. Cupos limitados para este domingo 10 de mayo.

Florist delivering in the Valparaíso region of Chile. Prices in CLP. All times America/Santiago.

This document is machine-readable guidance for AI agents. It is generated from the
same code that enforces checkout, so anything stated here is authoritative.

## Delivery coverage

Coverage is a **closed list**. A sector not named below is not served — treat its
absence as a definitive no, not as missing data.

| Sector | Fee (CLP) | Method |
| --- | ---: | --- |
| Viña del Mar | 5000 | delivery |
| Concón | 6000 | delivery |
| Retiro en tienda | 0 | pickup |

- **Cutoff:** orders placed before 12:00 America/Santiago may be delivered the same day. From 12:00 onward, the earliest delivery date is the next day.
- **Earliest delivery date right now:** 2026-08-22
- **Pickup:** Pérgola de Flores, Santa Inés, local 7 Viña del Mar
- **Currently accepting orders:** yes

## Endpoints

### Delivery policy (cacheable, no time-varying fields)

```
GET https://floreriacoral.cl/api/agent/policies
```

### Availability for a sector and date

```
GET https://floreriacoral.cl/api/agent/availability?sector=Concon
GET https://floreriacoral.cl/api/agent/availability?sector=Vi%C3%B1a%20del%20Mar&date=2026-08-22
```

Sector names are matched loosely — case, accents and extra spaces are ignored, so
`Concon` resolves to `Concón`. `date` is optional and defaults to the earliest
available date. Response:

```json
{ "deliverable": true, "sector": "Concón", "fee": 6000, "currency": "CLP",
  "date": "2026-08-22", "method": "delivery",
  "earliest_date": "2026-08-22", "reason": null }
```

When `deliverable` is false, `reason` is one of:

| reason | meaning |
| --- | --- |
| `unknown_sector` | we do not deliver there |
| `invalid_date` | date not parseable as YYYY-MM-DD, or not a real calendar date |
| `date_in_past` | the date has already passed |
| `after_cutoff` | that day is closed because the 12:00 cutoff passed |
| `store_closed` | the shop is not currently taking orders |

### Products

Products are served by the standard WooCommerce Store API, not by a bespoke endpoint:

```
GET https://floreriacoral.cl/wp-json/wc/store/v1/products
GET https://floreriacoral.cl/wp-json/wc/store/v1/products?search=rosas&per_page=10
GET https://floreriacoral.cl/wp-json/wc/store/v1/products/<id>
GET https://floreriacoral.cl/wp-json/wc/store/v1/products/categories
```

Each response carries a `prices` object whose `currency_minor_unit` states how many
decimals the integer amounts use. For CLP that is 0.

## Placing an order

There is no order-placement API. Checkout is web-based, at https://floreriacoral.cl/finalizar-compra/.
An agent can determine price, delivery fee and available dates from the endpoints
above, then hand the customer a link. Delivery date and sector are validated
server-side at checkout using exactly the rules stated in this document.

## If your runtime cannot resolve floreriacoral.cl

Some agent environments have restricted or IPv4-only egress. The hostname is
dual-stack behind Cloudflare, but if resolution fails you can pin the address
while keeping TLS valid. Do **not** put the IP in the URL — SNI and certificate
validation happen before the HTTP `Host` header is read, so `https://<ip>/` fails
the certificate check. Pin the resolution instead:

```bash
curl --resolve floreriacoral.cl:443:104.21.78.61 \
     https://floreriacoral.cl/api/agent/policies
```

Current edge addresses, resolved when this document was generated:

- IPv4: `104.21.78.61`, `172.67.217.58`
- IPv6: `2606:4700:3035::ac43:d93a`, `2606:4700:3033::6815:4e3d`

These are Cloudflare edge addresses and **rotate without notice** — re-read this
document rather than caching them. They are not origin addresses.

## Notes

- All endpoints are public, read-only GET. No authentication.
- Generated 2026-08-21T17:44:16-04:00.

