# PRD — storefront

Evidence date: 2026-10-02. Source: `git@bitbucket.org:overdrive/storefront.git`, `main` at `1f3fb2c`.

Provenance labels: **Documented**, **Implemented**, **Inferred**, **Planned**, **Unknown**.

No formal PRD existed in the repository or in `silicon_ark/storefront/` before this file. The only tracked file is `.gitignore`. The statements below record that absence. They are not a product decision.

## Product purpose

**Unknown / Requires Confirmation.**

The repository slug is `storefront`. No README, page title, route, or comment defines a purpose. The current `.gitignore` describes paths Git should skip. It does not describe a catalogue, cart, checkout, customer, or order workflow.

**Implemented:** a Bitbucket Git repository with two commits. `d1ecaaf` (2025-02-04, Wessels de Wet, "Initial commit") adds a 50-line example `.gitignore`. `1f3fb2c` (2025-02-06, Wessels, "Update gitignore file") replaces it with a 141-line list. The tip tree is that file only.

What a future product should do is out of scope for this document.

## Users and roles

No user, role, permission, or account model is present.

| Role | Evidence | Provenance |
|---|---|---|
| Repository author | Both commits use `wessels@overdrive.co.za`. The first commit's name is Wessels de Wet. The second commit's name is Wessels | **Implemented** as git metadata, not an application role |
| Application user | No source file names a person, role, or login | **Unknown** |
| Shopper, merchant, or admin | Not named | **Unknown** |

Who would use a product in this repository, if one is added later, is **Unknown / Requires Confirmation**.

## Major workflows

No application workflow is implemented. There is no trigger, input, validation, output, or error path in product code.

The only observed repository operations, besides reading the tree, are the two commits:

1. Trigger: initial commit on 2025-02-04.
   - Input: `.gitignore` (50 lines). The header says the patterns are examples and links to `https://www.atlassian.com/git/tutorials/saving-changes/gitignore`.
   - Behaviour: the file is the entire tree.
   - Output: `main` at `d1ecaaf`.
   - Provenance: **Implemented** as git history.

2. Trigger: commit on 2025-02-06.
   - Input: a full replacement of `.gitignore` (141 lines).
   - Behaviour: no other path is added. The starter patterns (Node, Java, Python, Maven, media, and so on) are removed. The new patterns follow a CodeIgniter 4 ignore layout, plus `writable/temp_export/`, `writable/company_orders_xml/`, `writable/company_invoices_xml/`, `uploads/`, `public/log.txt`, and `public/errorLogs/`.
   - Output: `main` at `1f3fb2c`, which is also `origin/HEAD`.
   - Provenance: **Implemented** as git history. This is repository state, not application behaviour.

A clone of `git@bitbucket.org:overdrive/storefront.git` on 2026-10-02 checked out `main` and matched that tip. `git ls-remote` had already printed `1f3fb2cd6580eb93eacd48ae943917aa1a3caa6c` as `HEAD`. Provenance: **Implemented** as remote state on that date.

## Integrations

No integration is declared or called from this repository.

| System | Evidence | Provenance |
|---|---|---|
| Bitbucket Git hosting | Remote URL on `origin`; two commits on `main` | **Implemented** |
| SonarQube | Filenames `sonar-project.properties` and `sonarqube_scan.bat` listed by OVER-292 for the scan-host path. Files not in git and not read. Those names are not ignore patterns | **Unknown** |
| Composer / Packagist | `vendor/` and `composer.lock` are ignore patterns. No `composer.json` | **Unknown** whether Composer was intended |
| CodeIgniter | Ignore sections match the framework's `.gitignore` shape. No framework files are in the tree | **Inferred** as the source of the ignore template. Not an integration |
| `wca_dms` (Admin Overdrive) | Ignore file matches that repo's `.gitignore` at `9f51c26` except `writable/reports/*`, which only `wca_dms` has. No remote URL, import, or API call links the two repositories | **Unknown** whether they were meant to share a product. See `project-plan.md` |
| Any payment provider, catalogue feed, mailer, queue, or storage service | Not present | **Unknown** |

## Constraints

- This PRD must not treat the repository name as a specification of a retail storefront.
- Ignore patterns must not be read as implemented features. A pattern such as `writable/company_orders_xml/*` means Git would skip files in that directory. It does not mean the directory exists or that orders are processed.
- The near-match with `wca_dms` `.gitignore` must not import that application's requirements into this slug.
- Requirements cannot be tested against this repository until code or a written spec exists.
- The scan-host working tree was not available. Filenames reported there are not confirmed file contents.

## Requirements discovered from the implementation

No functional requirements were discovered. There is no command, controller, route, screen, schema, test, or application config to cite.

| ID | Statement | Provenance |
|---|---|---|
| — | No requirement text exists in the repository | **Unknown** |

Nothing is marked **Planned**. A plan would need a document or an issue inside the repository, and there is neither.

## Data the repository manages

None. There is no schema, fixture file, sample order, sample invoice, or catalogue record.

The ignore list names directories that, in `wca_dms`, hold generated XML. Those directories are not in this tree, and this tree does not define the XML.

## Out of scope for this document

- Defining catalogue, cart, checkout, pricing, or customer-account behaviour because the slug contains "storefront".
- Importing EDI pull, company orders, company invoices, roles, or cron behaviour from `silicon_ark/wca_dms/` as requirements of this slug.
- Contents of the two Sonar filenames on the scan host.

## Human confirmation

- Product purpose, users, and workflows, if this repository is meant to hold a product.
- Whether any requirement lives in another system (tracker, wiki, or another repo) that was not linked from this remote.
- Whether the order and invoice paths in `.gitignore` were intended scope for this slug or copied with the ignore file.
- Whether this repository was meant to become a customer-facing front for the Admin Overdrive behaviour documented under `wca_dms`.
