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

# WooCommerce checkout plugins

> Three official WordPress plugins, three payment flows. Pick one. Never install two.

TagadaPay ships **three WooCommerce plugins**. They are not interchangeable. Each one owns a different part of checkout.

<Warning>
  Install **exactly one**. `tagada-checkout` hijacks `/checkout` before any Woo gateway can run. If it is active, the gateway plugin never sees the order.
</Warning>

## The three plugins

|                                     | **1. Full checkout redirect**                              | **2. Hosted payment gateway**                             | **3. Inline card** *(coming soon)*                                  |
| ----------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------- |
| **Zip / plugin**                    | `tagada-checkout.zip` → `tagada-checkout`                  | `tagada-gateway.zip` → `tagada-gateway`                   | same `tagada-gateway` **1.1+**, enable **Tagada Pay (Inline card)** |
| **CRM name**                        | Full Checkout Redirect                                     | Payment Gateway                                           | Inline card (docs; not a funnel zip)                                |
| **Download**                        | Funnel editor → WooCommerce step                           | Funnel editor → WooCommerce step                          | Official plugin `1.1+` (`apps/woocommerce-gateway`)                 |
| **Template**                        | `public/assets/php/woocommerce/tagada-checkout-plugin.php` | `public/assets/php/woocommerce/tagada-gateway-plugin.php` | `apps/woocommerce-gateway` (`tagada_inline`)                        |
| **Who owns the cart**               | Woo, until checkout                                        | Woo                                                       | Woo                                                                 |
| **Who owns checkout UI**            | **Tagada funnel**                                          | Woo (address, shipping, tax)                              | Woo                                                                 |
| **Who owns the amount**             | Tagada catalogue + recon                                   | Tagada catalogue + `wc_total_reconciliation`              | **Woo order total**                                                 |
| **Card UI**                         | Tagada hosted page                                         | Tagada hosted page after Place order                      | Card fields **on** the Woo page                                     |
| **Needs a funnel step**             | Yes (baked into the zip)                                   | Yes (baked into the zip)                                  | No. Charge is `payments/process`                                    |
| **Tax / Kintsugi / Discount Rules** | Recalculated on Tagada                                     | Recalculated on Tagada                                    | Whatever Woo already put on the order                               |
| **GWP / upsells / funnels**         | Yes                                                        | Limited (hosted pay page)                                 | No                                                                  |

```mermaid theme={null}
flowchart LR
  cart[Woo cart]
  cart --> A[1 tagada-checkout]
  cart --> B[2 tagada-gateway redirect]
  cart --> C[3 tagada_inline]
  A --> funnel[Tagada funnel checkout]
  B --> wooForm[Woo checkout form]
  wooForm --> hosted[Tagada hosted pay]
  C --> wooForm2[Woo checkout + card fields]
  wooForm2 --> process["payments/process Woo total"]
```

***

## 1. Full checkout redirect — `tagada-checkout`

Use this when Tagada must own the **whole** checkout: address, shipping, payment, GWP, upsells.

**Customer path**

1. Shopper adds products on Woo.
2. Checkout or Buy Now hits the plugin.
3. Browser goes to the Tagada funnel bound in the zip (`funnelId` + `stepId`).
4. Payment happens on Tagada. Order is pushed back to Woo.

**CRM**

Storefront → Funnels → WooCommerce step → **Download Redirect Plugin** (`format: 'plugin'`).

The zip is generated per store/funnel. Re-download after you change redirect-on-cart / redirect-on-product.

***

## 2. Hosted payment gateway — `tagada-gateway` (`tagada`)

Use this when the shopper must stay on **Woo checkout** for address and shipping, then jump to Tagada **only to pay**.

**Customer path**

1. Shopper fills Woo checkout (Woo shipping zones, Woo tax plugins).
2. They pick **Tagada Pay**.
3. Place order creates a Woo order and redirects to a Tagada hosted payment page.
4. Return to the Woo thank-you page.

**Amount caveat**

Tagada re-prices from the synced catalogue and can add `wc_total_reconciliation`. Dynamic prices (Discount Rules Pro filters, theme sale filters) are **not** the Woo order total. That is a different bug from inline.

**CRM**

Same WooCommerce step → **Download Gateway Plugin** (`format: 'gateway'`).

Enable **Tagada Pay** under WooCommerce → Settings → Payments. Do not also enable Inline card.

***

## 3. Inline card — `tagada-gateway` 1.1+ (`tagada_inline`) <sup>coming soon</sup>

<Warning>
  **Coming soon.** The 1.1 plugin is built and tested but not yet distributed to merchants. Contact your Tagada account manager if you want early access. Modes 1 and 2 are available today.
</Warning>

Use this when Woo must stay the **source of truth for the charged amount**. Card fields sit on the Woo page. The only redirect is 3-D Secure.

**Customer path**

1. Shopper fills Woo checkout + card fields.
2. Browser tokenizes with `@tagadapay/core-js`. It does **not** call `payments/process`.
3. Woo creates the order. PHP charges `amount = $order->get_total()` with an `Idempotency-Key`.
4. Success → `payment_complete`. 3DS → return `?tgd_3ds=1`, poll, then `payments/continue` only if still pending.

No Tagada checkout session. No funnel zip. Kintsugi / coupons / Discount Rules apply **if they already landed on the Woo order**.

**Install** (once released)

1. Install `tagada-gateway` **1.1.0+** (not the older CRM `1.0.x` zip, which has no Inline method).
2. WooCommerce → Settings → Payments → enable **Tagada Pay (Inline card)** only.
3. Store ID + processing key (`tp_sk_…`). Optional payment flow id.

<Note>
  The CRM funnel download still ships the **1.0.x redirect gateway**. Inline is the official 1.1 plugin. Enable one gateway id: `tagada` **or** `tagada_inline`.
</Note>

***

## Which one?

| You need                                                                    | Pick                                                                          |
| --------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| Tagada funnels, GWP, hosted upsells                                         | **1. tagada-checkout**                                                        |
| Keep Woo checkout, accept a hosted pay page                                 | **2. tagada-gateway `tagada`**                                                |
| Keep Woo checkout **and** Woo totals (tax plugin, Kintsugi, Discount Rules) | **3. `tagada_inline`** (coming soon)                                          |
| Custom storefront, not Woo                                                  | [Headless SDK](/developer-tools/headless-sdk/introduction), not these plugins |

***

## CRM mapping (easy to mix up)

The integrations setup guide and the funnel editor use different words than this page:

| This page              | CRM card               | Zip                               | `woocommerceScript` `format` |
| ---------------------- | ---------------------- | --------------------------------- | ---------------------------- |
| Full checkout redirect | Full Checkout Redirect | `tagada-checkout.zip`             | `plugin`                     |
| Hosted payment gateway | Payment Gateway        | `tagada-gateway.zip`              | `gateway`                    |
| Inline card            | Inline card            | official 1.1 plugin (coming soon) | none                         |

***

## Related

* Woo product / coupon **sync** is the OAuth integration, not a checkout plugin.
* Shopify equivalent: [Shopify checkout script](/developer-tools/shopify/checkout-script).
