| name | noon-exports |
| description | Noon data exports โ Sales report (per country), Transaction View (multi-contract CSV with status enum gotchas), Catalog Exports (Content / Pricing / Stock / Reports). Load when downloading sales, finance, transaction, or catalog data from noon. |
| requires | ["noon-shared"] |
Noon โ Data Exports
PREREQUISITE: Read ../noon-shared/SKILL.md for login, page
structure, and the per-store download directory.
Three export surfaces, each with its own quirks: Sales (per
country), Transaction View (multi-contract, long polling, status
enum), Catalog Exports (typed templates).
1. Sales Export (Per Country)
URL: https://reports.noon.partners/en/sales/?project=PRJ{project_id}
Country Switching
Use the "My Stores" dropdown at bottom-left, NOT the "Destination"
filter in the toolbar. Each store shows a flag icon.
Date Range for Last Month
browser-use input <start-date> "01 Mar 2026"
browser-use input <end-date> "31 Mar 2026"
browser-use state
browser-use click <date-cell>
URL reflects dates: ?from_date=2026-03-01&to_date=2026-03-31.
Export Flow (Verified)
- Click Export button โ modal appears
- Modal shows previous export file with download link (if any)
- Click "New export" to regenerate
- Wait ~10-30s for "Exporting" spinner to finish
- Download link appears with filename:
sales_export_{date}_{time}_{project}_{country}_{seq}.csv
- Click download link
- Close modal
Both Countries
After the first country's export, close modal, switch "My Stores" to the next country, repeat.
2. Transaction View Export
URL: https://noon-payments.noon.partners/en/transaction-view?project=PRJ{project_id}
Left nav: Statements, SOA, Transaction View, Invoices & Creditnotes,
Legacy Exports.
Critical facts (read before acting)
- One unfiltered export covers every contract in the project.
A single Transaction View export for a project that has multiple
country contracts produces one CSV with rows for every
contract โ identifiable by the
Contract / Contract Title
columns (e.g. MPXXXXXXXXEG,Noon EG and MPXXXXXXXXKW,Noon KW). See "Transaction CSV Structure" below. Do not run one
export per country โ run one, then split locally with pandas /
awk. To limit the export to a single country, filter the
Contracts dropdown to that country's contract before clicking
Download.
- Status enum is
Requested โ Exporting โ Processed (not
"Processing โ Completed"). When the panel row reads Processed,
click the Export button on the right of that row โ that is
what actually writes the CSV. The first Download click only
queues the export job.
- Exports can take several minutes, occasionally >5. Do not
re-click Download while a previous export is still
Exporting โ
each click queues a new EXP{โฆ} job that competes for the
same backend and usually extends the wait.
- Download location depends on the browser backend, not on
noon. The file is not guaranteed to land in
~/Downloads. See
"Finding the downloaded file" below.
No data disables the Download button. Date ranges with no
activity show a greyed-out button and no panel appears โ that's
a no-op, not a bug. Skip that range.
Country switching on Transaction View
The top-of-page flag widget (little arrow next to the country
flag) is the country switcher โ not the Contracts dropdown. The
Contracts dropdown lists only contracts for the currently selected
country, so after switching flag the dropdown repopulates.
But since unfiltered Download already covers all contracts, you
usually don't need to switch country at all.
Download flow
browser-use open "https://noon-payments.noon.partners/en/transaction-view?project=PRJ{project_id}"
sleep 2 && browser-use state
browser-use input <start-date-input> "YYYY-MM-DD"
browser-use input <end-date-input> "YYYY-MM-DD"
browser-use click <download-btn>
for i in $(seq 1 70); do
sleep 30
browser-use state | grep -q "Processed" && break
done
browser-use click <export-btn>
API fallback (if page refreshes or panel disappears)
If the browser session disconnects or the page refreshes during
the long wait, do NOT click Download again โ the export job is
still running on Noon's backend. Instead, query the status API
directly and download via curl:
browser-use eval "
var xhr = new XMLHttpRequest();
xhr.open('POST', '/_svc/mp-partner-impex-api/export/status', false);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify({exportCode: '<EXP_CODE>'}));
xhr.responseText;
"
curl -sL -o transaction_view.csv "<download_url>"
This avoids re-triggering the export and lets you recover a
completed export even after a browser disconnect.
Finding the downloaded file
Downloads go to ~/.vibe-seller/downloads/<store-slug>/.
This is a stable per-store directory managed by the CDP proxy
(it overrides browser-use's random temp dirs).
File names for Transaction View exports start with
noon_financeweb_transactionviewreportonitemlevelwithcontractselection
and end with .csv. Repeat downloads get (1), (2) suffixes โ
always take the newest by mtime, then copy into the task
workspace (dropping the (N) suffix). See the amazon-reports
skill's "Download Behavior" section for the general pattern.
Transaction CSV Structure
Header columns (in order):
Contract,Contract Title,Reference Nr,Order Nr,Item Nr,Order Date,
Transaction Date,Title,SKUs,Partner SKUs,Transaction Type,Currency,
Net Proceeds,Referral Fee including VAT,
Fullfilment & Logistics Fees including VAT, โ sic, Noon misspells this
Shipping Credits including VAT,Other Order Fees including VAT,
Order Subsidies including VAT,Non-Order Fees including VAT,
Non-Order Subsidies including VAT,Others including VAT,Total
Contract is the contract code โ 12 chars, MP prefix,
country-code suffix (e.g. MPXXXXXXXXEG, MPXXXXXXXXKW,
MPXXXXXXXXOM). Use the last 2 chars to bucket by country.
Contract Title is the human-readable name (Noon EG,
Noon KW, โฆ).
- Use either column to split a mixed-country export locally:
import pandas as pd
df = pd.read_csv('<exported-file>.csv')
for cc in df['Contract'].str[-2:].unique():
df[df['Contract'].str.endswith(cc)].to_csv(
f'transactions_{cc}.csv', index=False
)
Observed Transaction Type values include order, order_update,
statement_fee, payment, balance_transfer. Noon may add more;
filter liberally when aggregating.
3. Catalog Exports
URL: https://noon-catalog.noon.partners/en/exports?project=PRJ{project_id}
Click "Add Export" โ modal with Type dropdown:
| Type | Description |
|---|
| Catalog Export | Full catalog data |
| Content | Product titles, descriptions, images, attributes |
| Pricing | Current + promotional prices |
| Stock | Inventory levels |
| Partner SKU Generate | Generate partner SKU mappings |
| Reports | Performance/sales report data |
| Global Catalog Export | Global catalog across markets |
Select type โ Create โ wait โ download from Result column when
Status shows "Completed" (1-10 minutes depending on size).
Tips
- Transaction View export covers all contracts by default โ
one click produces one CSV with rows from every country contract.
Don't export twice (see ยง 2).
- Transaction View status enum is
Requested โ Exporting โ Processed, not "Processing โ Completed". Click the Export
button on the panel only after it reads Processed.
- Exports can take up to 35 min โ data-heavy months are
slower. Poll for at least 35 min before giving up. NEVER click
Download again while a previous export is still processing โ it
queues a new job and makes everything slower.
- Export files land in
~/.vibe-seller/downloads/<store-slug>/,
not ~/Downloads.
See also
noon-shared โ login, page structure (prerequisite)
amazon-reports โ Amazon equivalent + general "Download Behavior" pattern