Skip to main content

noon-fbn

Noon Fulfilled-by-noon (FBN) — ASN creation flow, ASN status enum, inventory export, barcode print, and the FBN Reports page for PER-SKU storage / RTV-removal fee reports. Load when scheduling a shipment, managing FBN inventory, creating an ASN, exporting warehouse stock, or pulling per-SKU storage / return fees.

Ir a la instalación

Datos de origen

Repositorio
zpoint/vibe-seller
Última actividad en el origen
4 de agosto de 2026 a las 03:53
Idioma detectado de SKILL.md
inglés
Estrellas
68
Forks
14

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
3 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
noon-fbn
description
Noon Fulfilled-by-noon (FBN) — ASN creation flow, ASN status enum, inventory export, barcode print, and the FBN Reports page for PER-SKU storage / RTV-removal fee reports. Load when scheduling a shipment, managing FBN inventory, creating an ASN, exporting warehouse stock, or pulling per-SKU storage / return fees.
requires
["noon-shared"]
review
{"criteria":"- The ASN was ACTUALLY created: it has an ASN number and appears in\n My ASN & Storage with a valid status; its product list and\n quantities match the request. A \"submitted\" claim without the ASN\n showing in the list is not done.\n- If an inventory export was requested, the CSV exists and is\n non-empty with the expected columns.\n- If per-SKU FBN fees were requested: ALL FOUR Finance reports\n (Monthly Storage, Long Term Storage, Non Saleable Storage, RTV\n Removal) exist for EVERY requested country x service month, each\n as its own file whose name states the country and month. A report\n that was missing on the page and never generated is a gap, not\n \"not applicable\".\n- Empty reports were CLASSIFIED, not waved through. Run\n scripts/check_fee_rows.py over the output folder. A header-only\n rtv_removal file is fine (removals are events; a month can have\n none). A header-only monthly/longterm/nonsaleable storage file is\n NOT fine — storage accrues against held stock, so zero rows means\n the service month is not published yet. Report those as pending\n for the month they belong to; never present one as a delivered\n figure, and never retry them (a second generation returns a\n byte-identical empty file).\n- Every non-empty storage report was OPENED and its own\n `country_code` / `service_month` columns match the country and\n month in its filename. The filename is a manual rename applied\n after the download, so it proves nothing on its own — a\n mis-clicked row yields a perfectly named file full of the wrong\n country's money. Two files for the same report type and month must\n not be byte-identical, and the two ads xlsx must not have equal\n `Spends` totals.\n- The reconciliation in references/fee-reports.md § 4 was actually\n computed and closes: sum(charged_amount) over the four reports for\n service month M-1, x (1+VAT), equals month M's Transaction View\n balance_transfer. An unreconciled pull is not done.\n","verify_by":"Open the FBN ASN page (fbn.noon.partners/.../asn); confirm the new\nASN number + status + shipment contents match. If inventory export\nwas asked, open the CSV and confirm non-zero rows + warehouse/stock\ncolumns. For per-SKU fees: list the output dir and confirm one file\nper (report type x country), each with a sku (or barcode) column and\na charged_amount column; then print the § 4 reconciliation showing\nthe detail total, the VAT gross-up, and the settlement it matches.\n"}
# Noon — FBN (Fulfilled by noon) > **PREREQUISITE:** Read `../noon-shared/SKILL.md` for login, page > structure, and common modals. ASN (Advance Shipping Notice) creation, inventory management, and barcode printing for noon's fulfillment service. ## 1. Overview **URL**: `https://fbn.noon.partners/en-{cc}/asn?project=PRJ{project_id}` Top section shows **Inbound Performance Tier** (Launchpad, etc.) with 90-day delivery score. Best practices: "Avoid creating ASNs with no intention to ship", "Ship ASNs on time", "Ensure delivered quantities match what you scheduled." ## 2. Tabs on My ASN & Storage | Tab | Purpose | |-----|---------| | Shipments (ASN) | List of all ASNs | | Storage | Warehouse storage summary | | Requests | Special requests | | Product Dimensions | SKU dimension overrides | | Serialization Service | Per-unit serial numbers | ## 3. ASN Status Values (verified) From the Status filter dropdown on the Shipments tab: | Status | Meaning | |--------|---------| | Created | ASN drafted, not submitted | | Cancelled | ASN cancelled | | Pending | Awaiting noon review | | Sealed | Sealed for shipment | | Scheduled | Delivery scheduled | | Handed Over | Handed to courier/noon | | Receiving | Being received at warehouse | | Putaway In Progress | Being stocked | | GRN Completed | Goods Receipt Note completed (fully stocked) | ## 4. Filters - Search by ASN # - Status multi-select dropdown - Auto Generated / Manual / 70 Active checkbox toggles ## 5. Create ASN — Full Flow **URL**: `https://fbn.noon.partners/en-{cc}/asn/createasn?project=PRJ{project_id}` Button entry points: - "Create ASN" link in left nav - "Create ASN" button at top-right of Shipments tab - "Add FBN Stock" button on product edit page (see `noon-listing § 2.3`) ### Step 1 — Product Selection Method Two options: 1. **Choose from Your Catalog** — searchable product list 2. **Upload CSV File** — download template, fill, upload ### Step 2 — Select Products (if "From Catalog") Table columns: Product Name, SKU, Quantity (editable), Volume, Storage Type, Size Classification. Click a row checkbox to select, then adjust quantity. Bottom bar shows "N items selected" with: - **Add Serialization** button - **Continue** button ```bash browser-use <<'PY' # select the product row (qty=1 default) — match its checkbox by row text js("Array.from(document.querySelectorAll('tr')).find(r=>/SKU-100234/.test(r.textContent))?.querySelector('input[type=checkbox]')?.click()") js("Array.from(document.querySelectorAll('button')).find(b=>/continue/i.test(b.textContent))?.click()") PY ``` URL advances to `?type=catalog&step=1`. ### Step 3 — Penalty Warning Modal Before quota reservation, a modal appears: > **Penalty Warning** > You selected these items for delivery: > Products Selected: N > Selected Quantity: N > Sellers who consistently deliver as committed are not affected. > [Cancel] [Agree & Proceed] **Clicking "Agree & Proceed" reserves quota** — noon counts this against your inbound quota allocation. Only click if you actually intend to ship. For exploration without committing, click **Cancel**. ```bash # exit without reserving: browser-use <<'PY' js("Array.from(document.querySelectorAll('button')).find(b=>/cancel/i.test(b.textContent))?.click()") PY # OR reserve quota & continue: browser-use <<'PY' js("Array.from(document.querySelectorAll('button')).find(b=>/agree.*proceed/i.test(b.textContent))?.click()") PY ``` ### Remaining Steps (after Agree) - Shipping details (warehouse destination, carrier) - Box & pallet details - Appointment scheduling - Review & submit → generates ASN # (format: `ASN-B-{digits}N` or similar) ## 6. My Inventory Export **URL**: `https://fbn.noon.partners/en-{cc}/inventory?project=PRJ{project_id}` Summary cards: Total Stock, Saleable Stock (count + %), Non-Saleable. Tabs: All Warehouses, Saleable, Non-Saleable. Export button triggers direct CSV download (no modal). ```bash browser-use <<'PY' new_tab("https://fbn.noon.partners/en-<cc>/inventory?project=PRJ{project_id}") wait_for_load() print(page_info()) # Export triggers a direct CSV download (no modal) — click by text: js("Array.from(document.querySelectorAll('button')).find(b=>/export/i.test(b.textContent))?.click()") PY ``` Warehouse codes follow a `<CITY-ABBR><NN><OPTIONAL-SUFFIX>` shape (e.g. a 3-letter city code like `XYZ##S`). Read the exact code from the page; don't hardcode. ## 7. Print Barcodes The My ASN & Storage page has a **Print Barcodes** button at the top to generate printable barcodes for FBN shipments. ## 8. FBN Reports — per-SKU storage & RTV removal fees **URL**: `https://fbn.noon.partners/en-{cc}/fbnreports?project=PRJ{project_id}` The Transaction View export gives the month's FBN storage as **one lumped `balance_transfer` row with no SKU attribution**. This page is where the per-SKU breakdown lives — four Finance reports that together reconcile exactly to that settlement: | Report | Key | Gives you | |---|---|---| | Monthly Storage Charge | `sku` | per-SKU monthly storage fee + average stock | | Long Term Storage Charge | `sku` | per-SKU long-term (aged 6m/12m) storage fee | | Non Saleable Storage Charge | `sku` | per-SKU non-saleable ageing storage fee | | RTV Removal Charge | `barcode` | per-barcode removal/return fee + `shipped_qty` | Four things that will bite you, each covered in the reference: 1. **No country field in the modal** — country comes from the `en-{cc}` URL segment. The report *list* is project-wide, so you only switch URL to generate, not to download. 2. **Downloads are named by report type only** (no country, no month) — rename each file immediately or SA/AE overwrite each other. 3. **`charged_amount` is ex-VAT and the settlement lags by one month** — month M's settlement is service month M−1, grossed up by VAT (SA 15% / AE 5%). 4. **RTV Removal has no `sku`** — join `barcode` → the storage reports' `pbarcode` → `sku`. And FBN/ads SKUs are noon-internal (`Z…Z-<n>`), NOT the seller codes in the Transaction View's `Partner SKUs`; that export's `SKUs` column is the bridge. > **Read `references/fee-reports.md`** before generating or downloading > anything here — it has the generation flow, the download/rename > pattern, the reconciliation formula, and the join keys. ## Tips - **Don't "Agree & Proceed" ASN unless committing** — it reserves quota that counts against your allocation. - **A country can be missing a fee report entirely.** Reconcile (see the reference § 4); if the sum doesn't close, generate the missing report rather than assuming rounding. ## See also - `noon-fbn/references/fee-reports.md` — per-SKU fee reports in full - `noon-shared` — login, page structure (prerequisite) - `noon-listing` — Add FBN Stock from listing edit page - `noon-exports` — Transaction View (the settlement + the SKU bridge) - `noon-ads` — per-SKU ad spend (same keyspace trap)
Ver en GitHub