# Feltételes képletek és mennyiségi árkedvezmény

> Ha-különben logika a képletekben, egymásba ágyazott feltételek, és mennyiség szerinti árlépcsők képlettel vagy keresési táblázattal.

## Ha-különben logika a képletben

A képletekben feltételt a hármas (ternary) operátorral adhatsz meg. Ez az Excel `HA()` függvényének megfelelője, más írásmóddal:

```text
feltétel ? érték_ha_igaz : érték_ha_hamis
```

- A **feltétel** a vizsgált állítás.
- A `?` jelentése „akkor”: elválasztja a feltételt az igaz esetben visszaadott értéktől.
- A `:` jelentése „különben”: elválasztja az igaz esetben visszaadott értéket a hamis esetben visszaadottól.

### Felépítés a képletszerkesztőben

1. Nyisd meg a számítás mező **Számítások** fülét.
2. A **Logikai** sorban kattints a **ha-különben** gombra. A `?` és a `:` jel beíródik a **Képlet** mezőbe.
3. Kattints a `?` elé, és írd be a feltételt, például: `{quantity} > 10`.
4. Kattints a `?` és a `:` közé, és írd be az igaz esetben visszaadott értéket, például: `{product_price} * 0.9`.
5. Kattints a `:` mögé, és írd be a hamis esetben visszaadott értéket, például: `{product_price}`.

A teljes képlet, amely 10 darab fölött 10% kedvezményt ad:

```text
{quantity} > 10 ? {product_price} * 0.9 : {product_price}
```

A képlet alatti olvasható sor megmutatja a képlet értelmezését, a mellette lévő jel pedig azt, hogy a képlet érvényes-e.

### Összehasonlító jelek

| Jel | Jelentés |
| --- | --- |
| `==` | egyenlő |
| `!=` | nem egyenlő |
| `<` | kisebb |
| `<=` | kisebb vagy egyenlő |
| `>` | nagyobb |
| `>=` | nagyobb vagy egyenlő |

### Több feltétel összekötése

Az `and`, `or` és `not` összekapcsolja a feltételeket:

```text
{quantity} > 10 and {product_weight} > 5 ? {product_price} * 0.9 : {product_price}
```

Az `and` esetén a kedvezmény csak akkor jár, ha mindkét feltétel teljesül. Ha elég az egyik, cseréld `or`-ra.

### Egymásba ágyazott feltételek

Háromnál több kimenetnél tedd egymásba a feltételeket, mint a táblázatkezelő egymásba ágyazott `HA()` függvényeit:

```text
{quantity} > 50 ? {product_price} * 0.8 : ({quantity} > 10 ? {product_price} * 0.9 : {product_price})
```

Eredmény: 50 darab fölött 20%, 10 darab fölött 10% kedvezmény, különben a teljes ár. A hosszabb képletek nehezen olvashatók, ezért minden újabb feltétel után nézd meg az olvasható előnézetet.

### Több lépésre bontás

Ha egy képlet túl bonyolult, oszd több számítás mezőre. Az első mező részösszeget számol (a 25-ös azonosítójú):

```text
{field_1} * {field_2} * {field_3}
```

A második mező 10% kedvezményt ad, ha a részösszeg 100 fölött van:

```text
{field_25} > 100 ? {field_25} * 0.9 : {field_25}
```

A lánc az oldal újratöltése nélkül frissül, ha a vásárló átír egy értéket. A köztes mezőknél kapcsold be a **Számítás elrejtése?** beállítást, és a felhasznált mező legyen előrébb a csoportban. A láncot tetszőleges hosszúra viheted, a külön lépéseket könnyebb hibakeresni, mint egy hosszú, egymásba ágyazott képletet.

Ha a feltétel miatt rejtett mező értékét használja a képlet, és a számítás üres lesz, lásd: [Rejtett mezők és optimalizálás](https://hub.hellowp.io/hu/plugins/product-extras-for-woocommerce/szamitasok-rejtett-mezok-optimalizalas/).

## Mennyiségi árkedvezmény

Mennyiség szerinti árlépcsőt kétféleképpen állíthatsz be: képlettel (kevés lépcsőre) vagy keresési táblázattal (sok lépcsőre vagy sok termékre).

### 1. mód: képlet

1. A termék **Product Add-Ons** fülén vegyél fel egy **Számítás** mezőt, a címkéje legyen például „Egységár”.
2. Nyisd meg a **Számítások** fület, és írd a **Képlet** mezőbe a lépcsőket egymásba ágyazott feltételekkel:

   ```text
   {quantity} >= 50 ? 6 : ({quantity} >= 10 ? 8 : 10)
   ```

3. A **Művelet** legyen **Termék árának beállítása**.
4. Ha nem akarod, hogy a képlet eredménye látsszon a termékoldalon, kapcsold be a **Számítás elrejtése?** beállítást.
5. Mentsd a terméket.

A képlet így értékelődik ki:

| Lépés | Vizsgálat | Ha igaz | Ha hamis |
| --- | --- | --- | --- |
| 1 | A mennyiség legalább 50? | Az ár 6 | Tovább a 2. lépésre |
| 2 | A mennyiség legalább 10? | Az ár 8 | Az ár 10 (alapár) |

Az eredmény:

| Kiválasztott mennyiség | Termékár |
| --- | --- |
| 50 vagy több | 6 |
| 10 és 49 között | 8 |
| 10 alatt | 10 |

![A termékoldal 12 darabos mennyiségnél: az Egységár 8 Ft, a végösszeg az árlépcső szerint számolódik](./kepek/szamitasok-termekoldal-mennyiseg.webp)

*A termékoldal 12 darabos mennyiségnél: az Egységár 8 Ft, a végösszeg az árlépcső szerint számolódik* (https://minta-bolt.hu/product/egyedi-poszter/)

A képen a mennyiség 12, ezért az **Egységár** sor 8 Ft-ot mutat, vagyis a 10 darabtól érvényes lépcső lépett életbe.

### 2. mód: keresési táblázat

A keresési táblázat könnyebben készíthető és olvasható, mint a hosszú, egymásba ágyazott képlet. Az **Advanced Calculations for Add-Ons Ultimate** kiegészítő kell hozzá, telepítve és aktiválva a bővítmény mellett.

1. **A táblázat elkészítése.** Készíts CSV-fájlt, vagy a kiegészítő **Lookup Tables** oldalán a **Termékkiegészítők** menüben építsd fel a táblázatot. A bal oldali oszlopba a mennyiségek, a jobb oldaliba az egységár kerül. A CSV-t Excelben vagy Google Táblázatokban is elkészítheted. A töréspontoknak nem kell minden mennyiséget lefedniük: ha egy mennyiség két töréspont közé esik, a táblázat az alatta lévő legközelebbi töréspontot használja. Az előző példa lépcsői:

   | Mennyiség (bal oszlop) | Egységár (jobb oszlop) |
   | --- | --- |
   | 1 | 10 |
   | 10 | 8 |
   | 50 | 6 |

2. **Mennyiségtükör mező.** A táblázat bemenete egy másik kiegészítő mező lehet, a WooCommerce saját mennyiségmezője nem. Vegyél fel egy **Számítás** mezőt, a címkéje legyen például „Mennyiségtükör”, a képlete `{quantity}`, és kapcsold be a **Számítás elrejtése?** beállítást. Ennek a mezőnek az azonosítóján keresztül érhető el a mennyiség.
3. **Az árazó mező összekötése a táblázattal.**
   1. Vegyél fel egy újabb **Számítás** mezőt.
   2. A **Számítások** fülön kattints a **Keresési táblázat** gombra. Ez beszúrja a `{look_up_table}` címkét, amelynek egyedül kell állnia a képletben.
   3. A „Look Up Table” legördülő listában válaszd ki a táblázatot.
   4. Az „Y Input” legyen a mennyiségtükör mező azonosítója.
   5. Az „X Input” maradjon üres, mert ez a táblázat csak egy tengelyt használ.
   6. A **Művelet** legyen **Termék árának beállítása**.
   7. Ha a teljes árrácsot meg akarod mutatni a termékoldalon, kapcsold be a „Display table” beállítást.
   8. Mentsd a terméket.

Ha a vásárló módosítja a mennyiséget, a bővítmény a táblázatban megkeresi az értéket, és azt használja termékárként.

### Mennyiségi árkedvezmény más kiegészítőkkel együtt

Ha más kiegészítő mezők is módosítják az árat, a táblázatot használó számítás mezőnél a **Művelet** legyen **Megjelenítés költségként**, ne **Termék árának beállítása**. A bővítmény így is a mennyiséghez tartozó alapárat adja vissza, majd hozzáadja a többi kiegészítő költségét, és a termék árát az összegre állítja.

### A két mód összehasonlítása

| | Képlet | Keresési táblázat |
| --- | --- | --- |
| Mikor jó | Kevés árlépcsőhöz | Sok lépcsőhöz vagy sok termékhez |
| Külön kiegészítő | Nem kell | Advanced Calculations |
| Mennyiség megadása | `{quantity}` közvetlenül a képletben | Mennyiségtükör mező, „Y Input”-ként |
| Művelet, ha csak az alapár változik | **Termék árának beállítása** | **Termék árának beállítása** |
| Művelet, ha más kiegészítők is árat adnak | **Termék árának beállítása** | **Megjelenítés költségként** |
| Látják-e a vásárlók a lépcsőket | Nem | Igen, a „Display table” bekapcsolásával |
