> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Lokalisierte Preisgestaltung

> Stellen Sie Ihren eigenen Festpreis für jede Währung oder jedes Land ein, anstatt Wechselkurse entscheiden zu lassen. Erheben Sie runde, marktgerechte Preise und führen Sie länderspezifische Aktionen durch.

## Was ist lokalisierte Preisgestaltung?

Jedes Produkt hat einen Basispreis in einer Basiswährung. Mit der lokalisierten Preisgestaltung können Sie diesen Basispreis durch **feste Preise, die Sie pro Währung oder pro Land festlegen**, überschreiben. Aktivieren Sie es, indem Sie eine `pricing_mode` für das Produkt festlegen und dann eine Regel pro Markt anhängen.

Es ist einer von drei unabhängigen Hebeln für internationale Preisgestaltung, die jeweils ein anderes Problem lösen:

| Mechanismus                                          | Was es macht                                                        | Die Zahl, die der Kunde sieht                    |
| :--------------------------------------------------- | :------------------------------------------------------------------ | :----------------------------------------------- |
| **Lokalisiertes Pricing**                            | Ein fester Preis, den Sie pro Währung oder Land festlegen           | Genau der Betrag, den Sie festlegen              |
| [**Adaptive Currency**](/features/adaptive-currency) | Konvertiert automatisch Ihren Basispreis zu aktuellen Wechselkursen | Basispreis zum aktuellen Wechselkurs umgerechnet |
| [**Rabattcodes**](/features/discount-codes)          | Ein prozentualer Abzug vom Basispreis                               | Basispreis minus den Rabatt                      |

<Info>
  Lokalisierte Preisgestaltung und Adaptive Currency arbeiten zusammen. Wenn keine lokalisierte Regel übereinstimmt, fällt das Produkt auf seinen Basispreis zurück — bei Kunden, die sich bereits in Ihrer Basiswährung befinden, direkt abgerechnet oder durch Adaptive Currency umgerechnet.
</Info>

***

## Anwendungsfälle

<CardGroup cols={2}>
  <Card title="Purchasing Power Parity (PPP)" icon="earth-asia" href="/features/purchasing-power-parity">
    In preissensiblen Märkten weniger verlangen, ohne Ihren Heimatmarkt zu rabattieren. Eine `by_country` Regel lässt ein Produkt zu **₹999 in Indien** verkaufen — angepasst an die lokale Kaufkraft, nicht an eine einfache FX-Umrechnung. Die empfohlene, native Methode zur Durchführung von PPP.
  </Card>

  <Card title="Charm Pricing" icon="tag">
    Eine Live-FX-Umrechnung von \$19,99 führt zu einer ungeraden Zahl wie €18,43. Eine `by_currency` Regel setzt den sauberen, psychologisch abgestimmten Preis, den Kunden erwarten — **€9,99**, **¥1.000**, **₹499** — genau wie eingegeben.
  </Card>

  <Card title="Reversible Market-Entry Promotions" icon="rocket">
    Starten Sie in einem neuen Land? Fügen Sie eine `by_country` Regel mit einem Einführungspreis hinzu und **archivieren Sie diese**, wenn die Aktion endet, um auf Basis-/Adaptive-Pricing zurückzufallen. Regeln werden archiviert, niemals gelöscht, sodass Sie einen sauberen Verlauf dessen behalten, was und wann live war.
  </Card>

  <Card title="Competitive Price-Matching" icon="bullseye">
    Befestigen Sie einen einzelnen Markt, um einen lokalen Wettbewerber zu treffen. Eine `by_country` Regel für **£9,00 in Großbritannien** hält diesen genauen Preis unabhängig davon, wie sich der GBP/USD-Kurs bewegt.
  </Card>
</CardGroup>

***

## Kernkonzepte

* **Preisgestaltungsmodi** — Ein Produkt befindet sich zu einem Zeitpunkt in genau einem Modus, festgelegt durch seinen `pricing_mode`:
  * `by_currency`: ein Preis pro Währung, unabhängig vom Land. Jeder, der in EUR zahlt, sieht €9,99.
  * `by_country`: ein landesspezifischer Preis (₹999 in Indien), selbst wenn mehrere Länder eine Währung teilen.
* **Feste Beträge in der kleinsten Einheit** — Ein `amount` einer Regel ist eine Ganzzahl in der kleinsten Einheit der Währung, wie überall sonst in der API: `99900` ist ₹999,00, `999` ist €9,99. Es ist ein Preis, den Sie festlegen, niemals ein umgerechneter Wert.
* **Wenn keine Regel übereinstimmt** — Das Produkt behält sein bestehendes Verhalten bei: Kunden in Ihrer Basiswährung zahlen den Basispreis direkt; alle anderen erhalten es umgerechnet durch die [Adaptive Currency](/features/adaptive-currency).
* **Gebühren sind inklusive, wenn eine Regel zutrifft** — Der Kunde zahlt **genau** den Betrag, den Sie festgelegt haben. Die [Adaptive Currency](/features/adaptive-currency#choose-who-bears-the-fee) FX-Gebühr wird von Ihnen übernommen (behandelt als gebühreninklusive für diese Transaktion), anstatt zusätzlich erhoben zu werden, sodass Ihr angegebener lokaler Preis immer der tatsächlich berechnete Preis ist.

***

## Setup im Dashboard

<Steps>
  <Step title="Open the product form">
    Gehen Sie in Ihrem Merchant-Dashboard zu **Produkte** und erstellen Sie ein Produkt (oder öffnen Sie ein bestehendes zur Bearbeitung). Legen Sie den Basis **Preis** und die Währung wie üblich fest.
  </Step>

  <Step title="Enable Localized Pricing and choose a mode">
    Im Abschnitt **Preisgestaltung** aktivieren Sie **Lokalisierte Preisgestaltung** und wählen dann **Nach Land** oder **Nach Währung**.

    <Frame>
      <img src="https://mintcdn.com/dodopayments/hpHKp5MybOFgIhM2/images/localized-pricing/pricing-section.png?fit=max&auto=format&n=hpHKp5MybOFgIhM2&q=85&s=933fc68155db9639d36d624c0f84dfee" alt="Lokalisierte Preisgestaltung auf dem Produktformular mit Nach Land ausgewählt" style={{ maxHeight: '450px', width: 'auto' }} width="850" height="580" data-path="images/localized-pricing/pricing-section.png" />
    </Frame>
  </Step>

  <Step title="Add a price for each market">
    Klicken Sie auf **Länderpreis hinzufügen** oder **Währungspreis hinzufügen**, füllen Sie das **Lokalisierte Preisgestaltung** Panel aus und klicken Sie auf **Hinzufügen**. Jeder hinzugefügte Markt erscheint in der Überschreibungstabelle, wo Sie ihn später bearbeiten oder entfernen können.

    <Tabs>
      <Tab title="By Country">
        Wählen Sie ein Land, wählen Sie die Währung und geben Sie den Betrag ein (zum Beispiel ₹999 für Indien), und klicken Sie dann auf **Hinzufügen**.

        <Frame>
          <img src="https://mintcdn.com/dodopayments/hpHKp5MybOFgIhM2/images/localized-pricing/add-country-override.png?fit=max&auto=format&n=hpHKp5MybOFgIhM2&q=85&s=62ae6975abd9c023655126a02fab611d" alt="Hinzufügen einer 999 INR Überschreibung für Indien" style={{ maxHeight: '360px', width: 'auto' }} width="1052" height="660" data-path="images/localized-pricing/add-country-override.png" />
        </Frame>

        Das Land erscheint nun in der **Länderüberschreibung** Tabelle, wo Sie es bearbeiten oder entfernen können.

        <Frame>
          <img src="https://mintcdn.com/dodopayments/hpHKp5MybOFgIhM2/images/localized-pricing/country-overrides-table.png?fit=max&auto=format&n=hpHKp5MybOFgIhM2&q=85&s=1ef8ef7f6368448896015febccd11b58" alt="Länderüberschreibungstabelle mit Indien bei 999 INR" style={{ maxHeight: '360px', width: 'auto' }} width="526" height="430" data-path="images/localized-pricing/country-overrides-table.png" />
        </Frame>
      </Tab>

      <Tab title="By Currency">
        Wählen Sie eine Währung und geben Sie den Betrag ein (zum Beispiel €9,99 für EUR), und klicken Sie dann auf **Hinzufügen**.

        <Frame>
          <img src="https://mintcdn.com/dodopayments/hpHKp5MybOFgIhM2/images/localized-pricing/add-currency-override.png?fit=max&auto=format&n=hpHKp5MybOFgIhM2&q=85&s=8f4b14e3c0ba37b2162cc45fc7b199eb" alt="Hinzufügen einer 9,99 EUR Überschreibung" style={{ maxHeight: '360px', width: 'auto' }} width="1052" height="640" data-path="images/localized-pricing/add-currency-override.png" />
        </Frame>

        Die Währung erscheint nun in der **Währungsüberschreibung** Tabelle, wo Sie sie bearbeiten oder entfernen können.

        <Frame>
          <img src="https://mintcdn.com/dodopayments/hpHKp5MybOFgIhM2/images/localized-pricing/currency-overrides-table.png?fit=max&auto=format&n=hpHKp5MybOFgIhM2&q=85&s=ed713ac592444f1685f2fa75de2e8b3f" alt="Währungsüberschreibungstabelle mit EUR bei 9,99" style={{ maxHeight: '360px', width: 'auto' }} width="1052" height="860" data-path="images/localized-pricing/currency-overrides-table.png" />
        </Frame>
      </Tab>
    </Tabs>
  </Step>

  <Step title="Save the product">
    Speichern Sie mit **Produkt hinzufügen**. Lokalisierte Preise gelten sofort für zukünftige Checkouts.

    <Check>
      Führen Sie einen Testcheckout mit einem Rechnungsland durch, das eine Regel hat, und bestätigen Sie, dass der lokalisierte Betrag angezeigt wird.
    </Check>
  </Step>
</Steps>

***

## Verwaltung über die API

Lokalisierte Preisgestaltung ist vollständig über die API verfügbar. Setzen Sie zuerst den Preisgestaltungsmodus des Produkts und fügen Sie dann Regeln an.

### Setzen Sie den Preisgestaltungsmodus

Setzen Sie `pricing_mode`, wenn Sie das Produkt erstellen (oder ein bestehendes aktualisieren). `null` bedeutet nur Basis, das bestehende Verhalten.

<CodeGroup>
  ```typescript theme={null} theme={null}
  import DodoPayments from 'dodopayments';

  const client = new DodoPayments({
    bearerToken: process.env.DODO_PAYMENTS_API_KEY,
    environment: 'test_mode',
  });

  const product = await client.products.update('pdt_premium_plan', {
    pricing_mode: 'by_country',
  });
  ```

  ```python theme={null} theme={null}
  import os
  from dodopayments import DodoPayments

  client = DodoPayments(
      bearer_token=os.environ.get("DODO_PAYMENTS_API_KEY"),
      environment="test_mode",
  )

  product = client.products.update(
      "pdt_premium_plan",
      pricing_mode="by_country",
  )
  ```

  ```go theme={null} theme={null}
  package main

  import (
  	"context"
  	"os"

  	"github.com/dodopayments/dodopayments-go"
  	"github.com/dodopayments/dodopayments-go/option"
  )

  func main() {
  	client := dodopayments.NewClient(
  		option.WithBearerToken(os.Getenv("DODO_PAYMENTS_API_KEY")),
  	)

  	_, err := client.Products.Update(
  		context.TODO(),
  		"pdt_premium_plan",
  		dodopayments.ProductUpdateParams{
  			PricingMode: dodopayments.F(dodopayments.PricingModeByCountry),
  		},
  	)
  	if err != nil {
  		panic(err)
  	}
  }
  ```
</CodeGroup>

### Fügen Sie einen lokalisierten Preis hinzu

Fügen Sie dem Produkt eine Regel hinzu. Im `by_country` Modus ist `country_code` erforderlich; im `by_currency` Modus muss er weggelassen werden.

<CodeGroup>
  ```typescript theme={null} theme={null}
  // ₹999.00 for customers in India
  const localizedPrice = await client.products.localizedPrices.create('pdt_premium_plan', {
    currency: 'INR',
    country_code: 'IN',
    amount: 99900,
  });
  ```

  ```python theme={null} theme={null}
  # ₹999.00 for customers in India
  localized_price = client.products.localized_prices.create(
      "pdt_premium_plan",
      currency="INR",
      country_code="IN",
      amount=99900,
  )
  ```

  ```go theme={null} theme={null}
  // ₹999.00 for customers in India
  localizedPrice, err := client.Products.LocalizedPrices.New(
  	context.TODO(),
  	"pdt_premium_plan",
  	dodopayments.ProductLocalizedPriceNewParams{
  		Currency:    dodopayments.F(dodopayments.CurrencyInr),
  		CountryCode: dodopayments.F(dodopayments.CountryCodeIn),
  		Amount:      dodopayments.F(int64(99900)),
  	},
  )
  ```
</CodeGroup>

Für ein `by_currency` Produkt, weglassen `country_code`. Zum Beispiel, ein fester `€9.99` für alle, die in EUR bezahlen (`currency: 'EUR'`, `amount: 999`).

### Auflisten, aktualisieren und archivieren

Sie können nur das `amount` einer Regel aktualisieren; Währung und Land sind einmal erstellt festgelegt. Archivierung ist ein idempotentes Soft-Delete, damit die Regel nicht mehr übereinstimmt, aber in Ihrem Verlauf bleibt.

<CodeGroup>
  ```typescript theme={null} theme={null}
  // List all active rules on a product
  const rules = await client.products.localizedPrices.list('pdt_premium_plan');

  // Change the amount (e.g. end a promo)
  await client.products.localizedPrices.update('lcp_india_price', {
    product_id: 'pdt_premium_plan',
    amount: 119900,
  });

  // Archive a rule
  await client.products.localizedPrices.archive('lcp_india_price', {
    product_id: 'pdt_premium_plan',
  });
  ```

  ```python theme={null} theme={null}
  # List all active rules on a product
  rules = client.products.localized_prices.list("pdt_premium_plan")

  # Change the amount (e.g. end a promo)
  client.products.localized_prices.update(
      "lcp_india_price",
      product_id="pdt_premium_plan",
      amount=119900,
  )

  # Archive a rule
  client.products.localized_prices.archive(
      "lcp_india_price",
      product_id="pdt_premium_plan",
  )
  ```

  ```go theme={null} theme={null}
  // List all active rules on a product
  rules, err := client.Products.LocalizedPrices.List(context.TODO(), "pdt_premium_plan")

  // Change the amount (e.g. end a promo)
  _, err = client.Products.LocalizedPrices.Update(
  	context.TODO(),
  	"pdt_premium_plan",
  	"lcp_india_price",
  	dodopayments.ProductLocalizedPriceUpdateParams{
  		Amount: dodopayments.F(int64(119900)),
  	},
  )

  // Archive a rule
  err = client.Products.LocalizedPrices.Archive(
  	context.TODO(),
  	"pdt_premium_plan",
  	"lcp_india_price",
  )
  ```
</CodeGroup>

<Card title="API Reference" icon="code" href="/api-reference/products/post-products-localized-prices">
  Sehen Sie die vollständigen Produktlokalisierungspreisendpunkte: erstellen, auflisten, abrufen, aktualisieren und archivieren.
</Card>

***

## Anwendung im Checkout

Lokalisierte Preisgestaltung wird pro Warenkorbposition gelöst und nur für Produkte, die ein `pricing_mode` gesetzt haben. Dodo Payments liest zwei Signale aus der Anfrage: das **Abrechnungsland** des Kunden und eine optionale **`billing_currency`** (wenn nicht angegeben, wird eine Währung aus dem Abrechnungsland abgeleitet).

* **Nach Land**: sucht nach einer Regel, die mit dem Abrechnungsland übereinstimmt. Wenn dies der Fall ist, wird beim Kunden die Betragsregel in der Währung der Regel berechnet.
* **Nach Währung**: sucht nach einer Regel, die mit der Währung des Kunden übereinstimmt (die `billing_currency`, oder die Währung, die aus ihrem Land abgeleitet wird). Wenn dies der Fall ist, wird der Kunde in dieser Währung zum Regelbetrag belastet.
* **Keine Übereinstimmung oder kein `pricing_mode`**: Der Basispreis gilt, der direkt berechnet wird, wenn die Währung des Kunden der Basiswährung entspricht, andernfalls umgerechnet durch [Adaptive Currency](/features/adaptive-currency).

Jede Warenkorbposition wird für sich gelöst, sodass Sie ein Produkt lokalisieren und andere beim Basispreis im selben Checkout belassen können. Wenn eine Position mit einer lokalisierten Regel übereinstimmt, wird die gesamte Transaktion zwangsweise gebühreninklusive durchgeführt (siehe [Kernkonzepte](#core-concepts)).

***

## Wichtige Verhaltensweisen

| Verhalten                                            | Detail                                                                                                                                                                                                                                                                     |
| :--------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Beträge vor Steuern**                              | Ein lokalisierter Betrag ist der Preis *vor* Steuern. Bei steuerexklusiven Produkten wird die Steuer beim Checkout aufgeschlagen, sodass der lokalisierte Betrag nicht die endgültige Summe ist. Siehe [Steuerinklusive Preisgestaltung](/features/tax-inclusive-pricing). |
| **Nicht für Bezahle, was du willst**                 | Lokalisierte Regeln gelten niemals für Produkte, bei denen der Kunde den Betrag wählt.                                                                                                                                                                                     |
| **Währungsbezogen unterscheidet sich vom Basiswert** | Eine `by_currency` Regel muss eine Währung nutzen, die sich von der Basiswährung des Produkts unterscheidet.                                                                                                                                                               |
| **Eine Regel pro Markt**                             | Ein Produkt kann höchstens eine aktive Regel pro Währung (nach Währung) oder pro Land (nach Land) haben.                                                                                                                                                                   |
| **Alle Produkttypen**                                | Gilt für einmalige, abonnementbasierte und nutzungsbasierte Produkte.                                                                                                                                                                                                      |

<Info>
  Änderungen an lokalisierten Regeln lösen keine eigenen Webhooks aus. Der aufgelöste Betrag erscheint auf der resultierenden Zahlung oder dem Abonnement wie jeder andere Preis.
</Info>

***

## Best Practices

* **Halten Sie einen sinnvollen Basispreis.** Er ist das Fallback für jeden Markt ohne Regel, umgerechnet durch Adaptive Currency.
* **Runden Sie auf lokale Attraktivpreise.** Der ganze Sinn eines festen Betrags besteht darin, eine saubere Zahl zu erhalten, wie ₹999, €9,99 oder ¥1.000, nicht ein FX-Ergebnis.
* **Wählen Sie den Modus für die Aufgabe.** Verwenden Sie `by_country` für kaufkraftbasierte Preisgestaltung; verwenden Sie `by_currency`, wenn ein Preis pro Währungszone ausreicht.
* **Archivieren, nicht neu erstellen, für Aktionen.** Das Archivieren einer Regel stellt den Markt auf Basis-/Adaptive-Pricing zurück, wobei die Historie erhalten bleibt; später neu erstellen oder neu bewerten, wie nötig.
* **Achten Sie auf die Steuerlinie, bevor Sie einen Gesamtbetrag bewerben.** Bei steuerexklusiven Produkten zahlt der Kunde den lokalisierten Betrag *plus* Steuer, also geben Sie es nicht als endgültigen Preis in Anzeigen an.

***

## Verwandte Themen

<CardGroup cols={2}>
  <Card title="Purchasing Power Parity" icon="money-bill-trend-up" href="/features/purchasing-power-parity">
    Native lokalisierte Preisgestaltung vs. standortbasierte Rabattcodes für PPP.
  </Card>

  <Card title="Adaptive Currency" icon="money-bill-transfer" href="/features/adaptive-currency">
    Automatische FX-Umrechnung und die Gebührenhandhabung, auf der die lokalisierte Preisgestaltung aufbaut.
  </Card>

  <Card title="Tax-Inclusive Pricing" icon="receipt" href="/features/tax-inclusive-pricing">
    Steuern kontrollieren, ob Ihre Preise inklusive Steuern sind.
  </Card>

  <Card title="Pay What You Want" icon="hand-holding-dollar" href="/features/pay-what-you-want">
    Lassen Sie Kunden den Betrag wählen. Lokalisierte Regeln gelten dort nicht.
  </Card>
</CardGroup>
