# WooCommerce B2B Guzzini — shell + API

## URL

- Shop: `https://b2b-guzzini.mypantarei.net`
- Admin: `https://b2b-guzzini.mypantarei.net/wp-admin/`
- REST WC: `https://b2b-guzzini.mypantarei.net/wp-json/wc/v3/`
- VTE target (fase successiva): `https://vteguzzini.mypantarei.net`

## Stack

| Voce | Valore |
|------|--------|
| DocumentRoot | `/var/www/html/b2b-guzzini/` |
| DB | `b2b_guzzini` (utente omonimo) |
| PHP | 8.3-FPM |
| Tema | Botiga 2.4.9 (palette bianco/nero Guzzini-like) |
| WooCommerce | 11.x IT / EUR |

## Credenziali

File (chmod 600, non in git pubblico):

- [`b2b-guzzini-install.env`](b2b-guzzini-install.env) — admin WP, DB, Consumer Key/Secret
- [`b2b-guzzini-db.cnf`](b2b-guzzini-db.cnf) — client MySQL
- [`b2b-guzzini-credentials.env`](b2b-guzzini-credentials.env) — riepilogo per VteSync

## DNS pubblico (obbligatorio per Let’s Encrypt e accesso esterno)

Oggi TLS è **self-signed** (`/etc/ssl/b2b-guzzini/`) e `/etc/hosts` punta a `127.0.0.1` su questo server.

Su Aruba DNS di `mypantarei.net` creare:

```
b2b-guzzini.mypantarei.net.  A  79.10.197.68
```

(stesso IP di `vteguzzini.mypantarei.net`). Poi:

```bash
sudo bash /var/www/html/server-ops/mypantarei/enable-b2b-guzzini-letsencrypt.sh
```

## Collegare VteSync (fase successiva — fuori scope attuale)

In VTE Guzzini → Impostazioni → Sincronizzazioni:

1. External system: **WooCommerce**
2. Instance URL: `https://b2b-guzzini.mypantarei.net`
3. Auth: HTTP Basic — Username = Consumer Key (`ck_…`), Password = Consumer Secret (`cs_…`)
4. Moduli tipici: Accounts, Products, ConfProducts, Currencies, Taxes, SalesOrder (Out)

Smoke API (dopo DNS/LE):

```bash
source /var/www/html/server-ops/mypantarei/b2b-guzzini-install.env
curl -s -u "$WC_CONSUMER_KEY:$WC_CONSUMER_SECRET" \
  "$WC_API_BASE/products" | head
```

## Note

- VteSync **non importa immagini** prodotto da WooCommerce.
- Plugin B2B wholesale / listini non installati in questa fase.
- Restart Apache da host (se serve): via DBus su `vpn-cresco` o `sudo systemctl restart apache2`.

## Accesso B2B (gate login)

- Homepage = login stile VTE (sfondo `Sfondo.jpg` + logo custom Guzzini, card bianca, CTA `#b10c28`).
- Catalogo / carrello / checkout solo dopo autenticazione.
- Registrazione pubblica disabilitata (utenti rilasciati dall’azienda).
- Demo rivenditore: vedi `DEMO_B2B_USER` / `DEMO_B2B_PASS` in `b2b-guzzini-install.env`.
- Codice: child theme `botiga-guzzini-b2b` + mu-plugin `guzzini-b2b-access-gate.php`.
