> For the complete documentation index, see [llms.txt](https://docs.ecommerce.seb.ee/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ecommerce.seb.ee/integration/web-plugins/opencart/testing-and-go-live.md).

# Testing & go-live

End-to-end test flow and go-live checklist for the SEB E-commerce Payment Gateway module for OpenCart

## Test in Sandbox

Prerequisites: extension [installed](/integration/web-plugins/opencart/installation.md) and [configured](/integration/web-plugins/opencart/configuration.md) with Environment = *Sandbox*, sandbox credentials, callback URL registered in the Merchant Portal at <https://merchantportal.ecommerce.sebgroup.com>.

For test cards and magic values, see [Sandbox test data](/guides/sandbox.md).

The end-to-end test script:

1. **Place an order** in the storefront (create a customer account if needed) and pick *Online Payment*; confirm the order. You are redirected to the SEB E-commerce Payment Gateway payment page and the order appears as *Pending* ("Payment initiated").
2. **Pay with a test card:** the payment page opens on a method-selection screen (Google Pay / Click to Pay / Bank account) rather than a direct card form — choose **Pay with Click to Pay**, then **Enter card manually**. Use the card number for successful authorization, any cardholder name, any valid future expiry date (e.g. 12/28) and any 3-digit CVV (e.g. 123). A 3D Secure test-challenge appears next — approve it. You return to the store and reach the success page.
3. **Verify the order** in **Sales → Orders**: this sandbox authorizes but doesn't capture automatically, so the order rests at *Pending* with a pre-authorization comment — *Processing* is the outcome after a capture (step 5), not the immediate state. History comments record each transition. OpenCart's order screen doesn't display the gateway payment ID itself; match it against the Merchant Portal via `egw_checkout.log` (**System → Maintenance → Error Logs**) if needed.
4. **Verify the callback**: repeat, but close the browser right after paying. The order must still update within a few minutes — otherwise the callback URL isn't reachable.
5. **Capture** (pre-authorization shops): capture in the Merchant Portal; the order must move to *Processing*.
6. **Fail one on purpose:** either cancel on the payment page, or pay with the test card for declined authorization, which always fails authorization. The order must be *Cancelled* and you must land back at checkout with a message.

![The storefront checkout with Online Payment selected, and beside it Sales → Orders showing the resulting order at Pending.](https://1157570179-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuBDtfypkI85zidcVwaDj%2Fuploads%2FGGPHGPuXHo0nG9DOyiDX%2Foc-checkout-and-orders.png?alt=media)

## Go-live checklist

* [ ] Sandbox script fully passed
* [ ] Live OAuth2 credentials obtained from the Merchant Portal → **Settings → Shop Settings → Technical Information**
* [ ] **Environment** switched to *Live*, credentials saved
* [ ] Callback URL registered for the live shop; the callback route reachable from outside (no cache/WAF block)
* [ ] **Session Samesite Cookie** set to *Lax*, and after a test payment as a logged-in customer you land on the order confirmation page still logged in, with no error message
* [ ] Title/Description reviewed in all store languages
* [ ] One real low-value order: paid → verified

For support: extension version, OpenCart version, order ID, payment ID, and relevant lines from `egw_checkout.log` (**System → Maintenance → Error Logs**) → SEB support.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.ecommerce.seb.ee/integration/web-plugins/opencart/testing-and-go-live.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
