The capture inbox is for "capture first, classify later": during the market walk, the agent takes a photo and a voice note of a supplier or product and keeps walking. Later — back at the hotel, or in the office — they process each item to turn it into a fully-filled supplier or product.
Frequently asked questions
What is the capture inbox for?
To avoid breaking the flow of the market walk. Instead of stopping to fill the full form at every shop, the agent opens the container's inbox, takes a photo, optionally adds a voice note, marks whether it's a supplier or a product, and keeps going. Classification and completion happen later.
How is an inbox item processed?
Each item has a Process action:
If it's a supplier: the system opens the supplier form pre-filled with whatever data is available (business-card photo, OCR if enabled).
If it's a product: opens the product form, optionally pre-filled with AI suggestions if enabled.
Once saved, the item is marked solved and linked to the supplier or product that was created.
Can I capture quote requests from the inbox?
Yes — that's a separate kind of item. Only admins create them, from a quotation container — see the quotations FAQ for the full flow.
Is AI active in production?
Right now, no. There are two AI features and both are off in production until we decide to absorb their cost:
Image recognition: product image analysis to suggest description, dimensions, price, etc.
Text recognition: OCR on supplier business cards to extract name, address, contact.
The capture inbox itself works without AI — only the auto-suggestions don't appear.
How are they enabled?
From the app's feature-configuration page (superadmin only). Once enabled, suggestions appear in the processing view for newly-captured items.
If I enable AI, does it apply to existing inbox items?
Not automatically. AI runs when an item is first uploaded. To run analysis on an already-captured item, there's a Re-analyse button in the processing view — but it only appears if image recognition is on.
Are voice notes transcribed?
Not yet. They're kept as audio attachments and the agent listens to them while processing the item. Automatic audio-to-text transcription is a future enhancement.
Who sees a container's inbox?
The organisation's admin and the agent assigned to that container. End customers don't see the inbox, not even of containers where they have a shipping mark.
Available since: 2026-03-21
Customers
Shared links for customers
The end customer reviews their part of a container without having to create an account: the agent sends them a unique link (via WhatsApp, email, whatever), and from there they see their products, can request changes and follow the back-and-forth with the agent. Data isolation is guaranteed: they only see what's assigned to them by shipping mark.
From the container view, in the Shared links section, click "Create link" and pick the customer. The system generates a unique (non-guessable) URL with a configurable expiry. You send it via whatever channel you prefer.
What does the customer see when they open the link?
Only the products in the container that are assigned to a shipping mark of their company. They don't see other customers' products, nor container totals that don't belong to them. The page is public (no login required) but content is scoped to the customer of the link.
Can the customer request changes from there?
Yes. On each product they can change the status to Confirmed or Cancelled, modify the quantity, and leave a comment. The request does not modify the product immediately — it stays as a petition the agent accepts or rejects from their side.
How does the agent respond to a customer's request?
The agent sees a yellow alert on the product view with the requested quantity and comment. They can:
Accept: the system updates the product's quantity or status and records the conversation in the history.
Reject: requires writing a reason (e.g. "the supplier already produced the cartons, can't cancel"). The customer sees the rejection and the reason on their next visit to the link.
The full conversation lives in a change history per product, visible to both parties.
How long do links last?
By default, 2 hours from creation. Each organisation can adjust that expiry in its settings. Expired links show a clear screen with the option to regenerate.
Can I disable a link without waiting for the expiry?
Yes. From the container's Shared links section, any active link can be manually disabled — the customer will see the "link expired" screen the next time they open the URL.
Does the customer see the supplier name?
It depends on configuration. The organisation can hide supplier names by default, and each container can override that decision (always show / always hide / use default). Useful when you don't want the end customer to be able to contact the supplier on their own.
Is there a video showing the full flow?
Yes: the walkthrough linked above. It covers link creation, the customer's request, the agent's accept and reject, and how everything stays documented for both parties.
Available since: 2026-04-03
Purchase Orders
Payments backoffice
Under Reports → Supplier payments you get every payment in the organization in a single list, like the movements on a bank account. It is a read-only view: you look and you filter, you do not edit. Payments are recorded on the container page.
Frequently asked questions
What exactly does it show?
One payment per card, newest first, with the amount and date in large type and, below them, the supplier, the customer(s), the shipping mark(s), the container, the note and the receipts. The container name is a link that takes you straight to that supplier's payments block.
Why can't I edit from here?
On purpose. Recording a payment needs the container's context: what was bought from that supplier, what the total is, what is still owed. This screen is for seeing the whole; to change something, the container link drops you exactly where the change belongs.
What happens if I set no filters?
You see every visible payment in your organization. No filter does not mean no results.
Which filters are there?
Date range (on the payment date), container, supplier, customer and shipping mark. They compose: you can ask for "this shipping mark's payments in July" and both filters apply together.
Aren't customer and shipping mark the same thing?
No, and that is why they are two separate filters. One customer can own several shipping marks. So the distinction stays visible while choosing, each mark is listed as MARK (Customer).
How does the app know which customer a payment belongs to?
It works it out at query time: the payment hangs off (container, supplier), from there it reaches the products, from the products the shipping mark, and from the mark the customer. No copy is stored. It costs the database more, but it can never go stale when you move products between marks later.
What if one payment covers products from more than one shipping mark?
It is listed once, at the full amount, with both marks and a covers N shipping marks badge. The amount is not split across the marks: nobody paid "half a transfer", and splitting it would be inventing data.
So can the total be inflated?
Yes, and the screen tells you. When you filter by customer or shipping mark and any listed payment covers several marks, the total is labelled an upper bound rather than presented as a clean sum.
Why is the total broken out by currency?
Because adding RMB to USD means nothing. There is one line per currency code, and payments whose currency cannot be determined (for example when the supplier's products mix currencies) render as a plain number instead of faking a symbol.
What does "No shipping mark" mean?
That the supplier's products on that container carry no mark at all. It is said out loud instead of leaving the cell empty, so it reads differently from "we don't know". Those payments do not show up when you filter by a mark.
Do quotation containers appear?
No. A quotation carries full prices and zero commitment; it is not money that moved.
Who can get in?
Only the organization admin. Customers cannot, and neither can the platform superadmin: payment data is internal to each organization, and one organization never sees another's payments.
The list is empty and I don't understand why
Either no payments have been recorded yet, or the filters match nothing. The screen says so and leaves a link to the containers, which is where payments are recorded. The tab is always there, whether or not there are movements.
Available since: 2026-07-29
Per-supplier payments
Inside each container, under each supplier's header, there is a Payments panel. It shows the supplier's account number, the possible sources of the total value with the date of each one, and the list of every payment you made to that supplier for that container: deposit, balance, and whatever else came up. The balance is calculated for you.
Frequently asked questions
Where is the payments block?
In the container view grouped by supplier, right under each supplier's header. It renders collapsed, showing Total value and Balance; tap it to expand.
Can I record several payments to the same supplier?
Yes, and that is the normal way to use it: each payment is a real event with its amount, its date, an optional note (for example "30% deposit") and its receipts. They are listed newest first and each one can be deleted on its own.
Do I need a PO generated in the app to use it?
No. The block works even when the container has no purchase order generated here. That is on purpose: containers onboarded with the process already under way have no PO in the app, and the balance still has to work.
Where does "Total value" come from?
From four possible sources, and the block shows all four with the date of each so you can see when they disagree. The first one that is informed wins, in this order:
Manually entered total — what you typed.
Total on the issued PO — the figure that was actually printed on the purchase-order PDF.
Reported PO total — the figure you typed when the PO lives outside the app.
Sum of the products — quantity × unit price of that supplier's active products.
The one being used carries the In use badge.
Why doesn't the PO total change when I detach a product from the order?
Because it is frozen at the moment the PDF was generated. The paper the supplier holds states a number; if you move products afterwards, the live sum changes but the PO does not. That is why both are stored and both are shown.
What is the difference between "Total on the issued PO" and "Reported PO total"?
The first one is set by the app when you generate the PO. The second one you type yourself, and it only applies when the PO was never issued from here. An empty field does not mean "zero": it means nobody informed a figure.
Does the account number belong to this container or to the supplier?
To the supplier. It is that shop's current account and it is used across every container; the block says so above the field. The date next to it shows when the number last changed, because accounts rotate often in China and are worth re-verifying before each payment. Saving the same account again does not move that date.
Who can edit the account number?
An administrator. Agents see it in the block but do not edit it: because the account belongs to the supplier, a change there moves the money's destination on every container that buys from that shop. Agents do record each container's totals and payments.
If the supplier changes accounts, are old payments rewritten?
No. Each payment keeps a copy of the account it actually went to. Changing the supplier's account affects future payments, never the ones already recorded.
Why does the Amount field show a grey number?
It is only a reference (the outstanding balance), not a filled-in value. If you save without typing anything, no payment is recorded: a suggested number that saves itself would turn "not informed" into "informed", which is exactly what we want to avoid.
How do I attach the receipt?
In each payment's form, with Take Photo (phone camera) or Upload Files. You can attach several; they render as thumbnails under the payment and each one can be opened full size or deleted with the small cross.
How is the balance calculated?
Balance = Total value − the sum of every recorded payment. It is shown on the block's bar (even collapsed) and next to the add-payment button.
Do customers see this?
No. Payments are internal: users with the customer role neither see the block nor can modify it, not even through the direct URL.
Where do I see all the payments together?
Under Reports → Supplier payments. See the payments backoffice FAQ.
Available since: 2026-07-29
Per-supplier Purchase Orders (POs)
Each container generates one active PO per supplier: all products from that supplier inside the container are grouped automatically into a single PDF, ready to send to the workshop. When products change, the PO is marked outdated and a click regenerates it with the latest version.
Frequently asked questions
How do I generate a PO?
From the supplier-grouped view of the container, each block has a Generate PO button. Clicking it builds a PDF with all confirmed products from that supplier in this container: reference, description, quantity, unit price, CBM, weight, photos and carton label.
Can I have more than one open PO for the same supplier in a container?
No. There is one active PO per supplier in each container. If an active PO already exists, "Generate PO" opens regeneration instead of duplicating. Versions prior to a regeneration are kept as history.
Why does the PO show as "outdated"?
Because some product changed after the last generation. Any modification to product data marks it as outdated — not just quantity, but also description, price, CBM, weight, dimensions, color, size, brand, material or the carton label text. You'll see an Outdated badge on the PO and a regenerate button.
How do I regenerate an outdated PO?
From the supplier block or from the supplier page (which also lists their recent POs), click the regenerate button. The new PDF replaces the previous one as the active PO; the old version is kept as history.
What does the PO show besides product data?
Header with your organisation's logo, name and address (configurable in My Account → Company).
The customer's shipping mark with diamond.
Carton label with editable text and handling pictograms: this side up, keep dry, no stepping, recycle. Editing the label also marks the PO as outdated.
Carton dimensions (width × height × depth) so packing decisions can be made at the workshop without a second lookup.
Where do I find a supplier's POs?
On the supplier page, below the products section, you'll find the list of their recent POs with an Active / All filter. The supplier-grouped product view of the container also has a direct link to that page.
Is there an equivalent for sending to the end customer (not the supplier)?
Yes: the per-supplier proforma (PDF and Excel) and the full-container export grouped by supplier. The latter can anonymise the supplier groups for sharing with the customer without revealing who each supplier is.
Who can generate and regenerate POs?
Any user with access to the container (admin or assigned agent). End customers do not access the PO flow.
Available since: 2026-04-26
Containers
Product catalog
From a container you can download a PDF catalog with one large photo per product plus the fields the customer cares about: reference, barcode, weight per carton and price. You download the file and send it to the customer over WhatsApp or email — the customer does not log into the app to see it.
Frequently asked questions
Where is the button?
In two places. On the container page, inside the green export menu, Catalog (PDF) produces every product in the container. And in each supplier's menu the same button produces only that supplier's products — useful when you need to discuss something specific and don't want to send everything.
Can I send each customer only their own products?
Yes. If you filter by shipping mark on the container page, the catalog respects that filter and downloads only that mark's products. With no filter you get every product in the container, so if a container holds several customers, that PDF shows one customer what the others bought, prices included. Filter first when you are sending to a particular customer.
Which photo is used for each product?
The one you mark as the main photo. In the product's image gallery (both when editing and when viewing) each photo has a small star at the bottom left; the one you star is the one that goes into the catalog. If you star none, the first photo you uploaded is used.
That same photo is the thumbnail shown in the container's product list, so the moment you click the star you can see the result there without generating the PDF.
Can I change my mind?
Yes. Star another photo and it becomes the main one. Clicking the star on the photo that is already marked clears it, and the product goes back to using its first image.
Is the supplier shown?
It depends on the hide supplier setting, the same one the rest of the app already uses (it can be set for the whole organization or for one container). When it is on, the catalog does not name the supplier: the per-supplier catalog still helps you choose which products go in, but the customer simply receives the products without knowing whose they are.
Can the supplier's contact details leak out?
No. The supplier's phone, WeChat, email, address, shop number and bank account never appear in the catalog, whether or not "hide supplier" is on. The filename does not carry the shop number either. Automated tests check exactly this on every change.
Why is the PDF Letter size and not A4?
Because the readers are merchants in Colombia, and Colombia and the United States use Letter. Most of them will open it on a phone anyway.
How many products fit on a page?
Six, in two columns of three. A container with sixty products is ten pages.
Available since: 2026-07-30
Container closing
When the container is loaded and sealed there is data that used to be recorded outside the app: the seal number, the loading date, the notes, and the photos of the empty container, the loaded container and the seal in place. All of that is now recorded in the app and comes out as a one-page loading report PDF.
Frequently asked questions
Where do I record it?
The container page has a Container closing button. It takes you to a phone-first screen: the three photo groups, each with its own camera button, plus the seal number, the loading date and the loading notes. You save everything in one go.
If anything about the closing is already recorded, the button shows a green check.
Can I take the photos in several batches?
Yes. Every time you save, the new photos are added to the ones already there — nothing is replaced. If you missed a shot of the loaded container, go back in, take it and save.
To delete a single photo, tap the red cross at the top right of its thumbnail.
Why three photo groups instead of one?
Because the report shows them separately and labelled: empty container, loaded container, security seal. If a claim comes up later, that separation is what tells the story — how the container arrived, how it was loaded, and which seal closed it.
Is the loading date the same as the dispatch date?
Not necessarily, which is why they are two different fields. The loading date is the day the container was filled; the dispatch date is the shipping date. They may or may not coincide.
Does the seal number go in the notes?
No need: it has its own field, because the report prints it in the header next to the container number and the carrier. The loading notes are for everything else you want on record.
Where do I download the report?
The container's green download menu has Loading report (PDF), and there is also a direct button at the top of the closing screen.
What is in the report?
The shipping header (D.O., dispatch number, container number, seal, carrier, container class, ports and loading date), the shipping mark drawn inside a diamond, the photos grouped by kind, and the loading notes. Empty fields are not printed, so the page never looks like a half-filled form.
Can I produce the report for a single customer?
Yes. If you filter by shipping mark on the container page, the report follows that filter and comes out with that mark. With no filter, every mark on the container is listed.
Does the report show supplier data?
None at all. Not the name, not the phone, not the shop number. The report is about the container, not about the goods, so there is nothing of the supplier's to redact. Automated tests check this.
The shipping fields print empty — where do I fill them in?
In the container's edit form, Shipping & Logistics section (container number, dispatch, carrier, ports). The closing screen shows them on the right for reference, with a shortcut to edit them if you are an admin.
What happens if I move the container to "Sealed" without recording the closing?
It warns you that the seal number or the loaded-container photos are missing, but it still lets you through. It is a reminder, not a block: sometimes the seal number arrives by WhatsApp a while later.
Can the customer record the closing?
No. A customer-role user can see the container but cannot record or delete the closing.
Does the closing data also appear in the Excel?
The seal number, loading date and loading notes do, in the header of the container's Excel. The closing photos do not — those live in the loading report PDF.
Available since: 2026-07-30
Container Tasks view
The Tasks tab on a container page shows only the products that need attention and, for each one, what to do right now. It's the shortcut for "what's still on my plate in this container?" without scrolling through every product.
Frequently asked questions
Where do I find it?
On the container page, above the products list, there are three tabs: Grouped, Flat and Tasks. The first two are different ways to look at all products (together or grouped by supplier). Tasks filters and reorders to show only the actionable ones.
What counts as a "task"?
Each product falls into one of these buckets, in priority order:
Confirm — pending product; still needs supplier confirmation.
Regenerate OC — product is confirmed but its OC went stale (changes after issuance). Time to reissue.
Order — confirmed product without a PO number yet.
Follow up — past its estimated production date and not yet received at the warehouse.
Complete — received but missing final data (weight, measurements, or receive photo).
Already-delivered products with no pending data don't appear here.
What order are they in?
Starred products (⭐) come first, then by task priority (confirm → complete), then by supplier, then by reference. So whatever you've flagged as urgent rises to the top.
What does the button on the right do?
It's the action matching the task. For "Regenerate OC", the button reissues the OC inline. For the others, it takes you to the product so you can make the change (confirm, fill in data, etc.).
What do the counters at the top show?
A quick summary: how many products fall in each task bucket ("3 confirm · 2 regenerate OC · 5 order…"). Useful for telling at a glance whether the container is current or has a backlog.
What if there's nothing pending?
A green banner appears: "No pending tasks — all products are ordered and on track". It means every product is confirmed, has a current OC, isn't delayed, and (if received) has complete data.
Does this replace the Grouped tab?
No. Tasks is for operational focus (what to do now). Grouped is for reviewing the container's full content by supplier (prices, quantities, totals). Use whichever fits the moment.
Available since: 2026-05-19
Container lifecycle
Each container moves through a series of states from the moment the buyer starts planning it until the shipment reaches its destination. The system uses these states to show the container in the right panel and to enable certain actions (e.g. uploading seal photos or recording dispatch date).
Ordering — products are confirmed; per-supplier POs are generated.
Loading — goods are being received in the warehouse to consolidate the container.
Sealed — the container is closed, with seal photos.
In transit — the container has shipped; dispatch date recorded.
Delivered — arrived at destination.
Plus a special state: Cancelled, which is outside the normal flow but preserves the data.
How do I change state?
From the container page there's a state transition button that offers the valid options based on the current state. The system validates that the container meets the requirements before advancing (e.g. you can't go to "Sealed" without having loaded products).
Is there a separate panel per state on the dashboard?
Yes. The dashboard groups containers by state: Quotations, Planning, Ordering, Loading, Sealed, In transit, Delivered (plus optionally Cancelled with a toggle). This lets you scan at a glance what to handle in each stage.
Can I cancel a container in any state?
Yes. From the container's edit page, there's a Cancel container button available in any state. Cancelling does not delete data, it just changes the state to Cancelled and excludes it from totals. Reactivating is also available from the same view — the container goes back to Planning.
What happens if I delete a container?
Deletion is soft delete: the container disappears from the view but the data stays in the database. A superadmin can recover it from the Admin screen. Products, suppliers and shipping marks are also logically deleted, not physically.
What are container types and what are they for?
Each container has a type (e.g. "40ft High Cube") with a maximum volume and maximum weight. When loaded products exceed those limits, the app shows a visual warning in the container header: "Volume / weight overload". It doesn't block, just warns so you adjust the load.
What about shared containers? What changes?
A shared container is one where multiple shipping marks coexist (multiple customers in one container). It's marked with a flag at creation. In these cases, the volume/weight limits are optional (each customer can have a personal cap or none) and products are grouped by shipping mark in exports.
Who can transition states?
The organisation's admin and the assigned agent. End customers and quotation containers have a separate flow that doesn't use these states.
Is there a video showing the full cycle?
Yes: container_lifecycle_es.mp4. It walks through the creation of a container from Planning to Delivered, showing what changes in each state and which actions become available.
Available since: 2025-09-21
Quotations
Agent ↔ buyer quote flow
The buyer creates quote requests with photo and description inside a container marked as a quotation, and the agent fulfils them by walking the market and registering products with supplier and price. The responses are grouped under each request, sorted by price, so the buyer can compare and pick.
A container used only to ask for prices — it is not a firm order. It shows up on the Quotations panel of the dashboard, separated from the planning containers. Create one with the "+" button on that panel.
How do I request a quote?
Open the quotation container and click + New request in the Quote requests section. Upload photo(s) if you have them, write a description of what you need quoted (for example, "Black water-resistant school backpack, around 25 litres"), and save. Each request becomes its own card.
Who creates the requests, and who responds?
Requests: created by the buyer. They represent what the end customer is asking for.
Responses: loaded by the agents assigned to the container. Each response is a product with supplier, reference, price and photo.
How does the agent respond to a request?
From the request card, the Quote button opens the new-product form already linked to that request. The agent fills in the supplier, reference, unit price, dimensions, etc., and saves. The response is automatically associated with the original request.
Can there be multiple responses per request?
Yes — that's the point. The agent can bring several proposals from different suppliers for the same request. The card will show "3 quotes" and list the prices. The buyer can compare at a glance.
How do I choose between the received quotes?
Responses appear sorted from lowest to highest price under each request, with the supplier's shop number and product reference. Click any of them to open the product detail.
When do I move from quotation to a real order?
Not yet automatically — promoting a quotation container to a firm order is a planned next iteration. For now, once the winning quotes are decided, the buyer creates a new order container and loads the chosen products there.
What do agents who aren't assigned to this container see?
Nothing. Each agent only sees the containers they're assigned to. Other agents' requests and quotes are not visible to each other.
Is there a video showing the full flow?
Yes: the walkthrough linked above (2:13 min, Spanish audio). It covers the 10 scenes: buyer creates the request → agent quotes it twice with different suppliers → buyer sees both responses sorted by price.
Available since: 2026-05-02
Import
Bulk product import from Excel
From a container's page you can upload all products at once with an Excel spreadsheet — with the photos embedded directly in the cells. Useful when the agent prefers to prepare the full product list as a spreadsheet before loading it.
Frequently asked questions
Where is the import?
In the container view, products section, there's an Import products entry. You download a template from that same page, fill it in, and upload it.
Do I have to use the downloadable template, or any Excel works?
You have to use the template. The system validates the column names and rejects the import if required columns are missing. The template is pre-formatted with the right column widths and a sample row so you can see what's expected in each field.
Which columns are required?
Four: supplier_name, product_reference, units_per_carton, and unit_price.
By pasting the image directly into the cell in the sample_photo column. The importer extracts the embedded image and links it to the product on that row. One image per product on import; you can add more later from the edit screen.
What if the supplier doesn't exist yet?
The import looks it up by name among your organisation's suppliers. If not found, that row fails with a "supplier not found" error and the rest of the spreadsheet keeps processing. You need to create new suppliers before importing (manually, or one-by-one from the product form).
Is the shipping mark identified by name or by number?
By exact name, and only marks already assigned to the container are accepted. If the column is empty and the container has a single mark assigned, the system uses that one as default. If there are several and the column is empty, the row fails with a clear message.
What if a row duplicates a product already in the container?
It's reported as a duplicate (nothing is created), with a link to the existing product so the agent can decide whether to edit the original or change the reference. The rule is the same as one-by-one creation: supplier + reference unique within the container.
If a row fails, does the whole import get cancelled?
No. The importer processes row by row and reports at the end how many were created, how many failed and how many were duplicates. You can fix the failures in Excel and re-import — successful rows stay, duplicates keep being reported as such.
Does the import behave the same as manual product entry?
Yes — that's the principle. Validations match the quick product form. If a required column is empty, the row fails. If a number is malformed, same. It is no more permissive just because it came from Excel.
Does the import recognise products that already exist in other containers?
Not yet. That detection is planned as a next iteration. For now the "you already have this product in another container" notice only works for one-by-one creation from the form.
Available since: 2026-04-26
Products
Moving products between containers
When a customer asks you to ship a subset of references consolidated in a different container from the one you already built, you don't need to re-enter the products. From the Products list, select the references to relocate and move them in one step to the target container — existing or newly created.
Frequently asked questions
Who can move products in bulk?
Only organization admins. Agents and end customers don't see the checkboxes or the action bar.
How do I select several products?
In the Products list (/products), each row has a checkbox. Tick the ones you want to move. A fixed bottom bar appears with a counter and the Move to container button. The header checkbox toggles every visible row.
Can I move products from different containers at the same time?
No. The selection must come from a single source container. If you mix sources, the system rejects the move. Filter by container first to make sure every selected row belongs to the same one.
Can I create the target container on the fly?
Yes — this is precisely the "consolidated" case. The modal offers two options: move to an existing container or create a new one. If you pick new, type a name (e.g. "Consolidado ACME") and it's created as a shared container (multiple shipping marks can live together).
What happens to the product's barcode and photos?
They stay. The product is the same record, only its container changes. EAN, sample images, supplier, customer and shipping mark all follow the product.
And the shipping mark — do I have to assign it on the destination container?
No. When a product moves, its shipping mark is automatically linked to the destination container (if not already). It immediately appears in the destination's filters and forms with no extra step.
I had an issued OC for those products — what happens?
The original OC stays in the source container, but the system flags it as needs re-issue ("Necesita regenerar" badge). The OC's product list no longer reflects reality. Re-issue the OC from the source container once you've confirmed which products are still there.
The modal warns you before moving: it shows the active OCs that will be marked stale, with their number and supplier.
Does the product keep its old PO number after the move?
No. On move, the product's purchase_order, order_number and order_date are cleared. The product arrives at the destination "without OC", ready to be picked up by a new OC when one is issued there.
What about the quote request the product came from (if any)?
It's unlinked. The original quote thread stays in the source container where the customer created it. The moved product is now a confirmed reference of the new container.
Does the source container get deleted if it's emptied?
No. Even if you move all products out, the source container keeps existing (empty). If you don't need it anymore, cancel or delete it manually from its page.
Is the operation logged?
Yes. A product.bulk_moved event is recorded in the activity log with the source container, the destination, the moved product IDs and the OCs that were flagged as stale.
Available since: 2026-05-19
Detecting repeated products across containers
When the agent finds a product in the market that they already loaded into a previous container — same shop, same reference — the system recognises it automatically and offers to copy the data from the last entry so the agent doesn't have to retype everything. It's institutional memory between trips.
Frequently asked questions
If I load a product that I already loaded in another container, does the system recognise it?
Yes. On the "New product" form, as soon as you pick the supplier and type the reference, a blue notice appears under the field:
ℹ️ You already have this product in CONT-2025-014(3 months ago)2 photo(s) on the previous capture [📋 Copy data from last]
The notice is just informational. If you ignore it, you can keep loading the product from scratch.
What does "Copy data from last" do exactly?
Auto-fills the empty fields: description, price, units per carton, CBM, weight, dimensions, brand, etc.
If you already typed something in a field, it does not overwrite — your manual input is preserved.
It also brings the photos from the previous product, unless you've already uploaded photos of your own.
What happens if I try to create the same product twice in the same container?
The system rejects it with a clear error: the supplier + reference combination must be unique within a container — it's the same SKU duplicated, you should edit the existing product instead of creating another row.
Can other agents see my data through this recognition?
No. Each agent only sees products from the containers they're assigned to. If you work on container A and another agent works on container B, the system never shows you notices based on container B.
What about across organisations?
Zero contact. One organisation never sees another's data, not even for product recognition.
Do end customers have access to this feature?
No. Recognition is staff-only (admins and agents). End customers do not participate in this flow.
Does this detection work in the Excel import too?
Not yet. It's planned as the next iteration. For now bulk import follows the same rules as one-by-one creation (rejects duplicates within the container) but doesn't offer "copy from last" automatically.
Available since: 2026-05-07
Roles
The agent role
The agent role is for external collaborators who work the market on behalf of a buyer. They have scoped access to specific containers: they can load products, generate POs and respond to quote requests, but they don't see the organisation's global catalog or other agents' data.
Frequently asked questions
How do I create an agent user?
As an admin, go to Settings → Users → New with the "Agent" role. The form lets you, in the same step, assign one or more existing containers to the agent. It also generates an email + password for them to log in. Once created, the agent sees the container in their dashboard the next time they sign in.
How do I assign a container to an agent that already exists?
From the container's edit page (the Assigned agent field), pick the agent from the dropdown. Or from the agent user's edit page, check the containers you want to assign to them.
Only admins can assign or reassign agents.
What does an agent see on their dashboard?
Only the containers they're assigned to. The rest of the organisation's containers are invisible to them, including quotation containers.
What can an agent do inside a container they're assigned to?
Create, edit and delete products.
Create new suppliers on the fly (with "+ New supplier" on the product form).
Generate per-supplier POs.
Respond to quote requests in quotation containers.
View the container's inbox and process items.
Upload product photos.
What can an agent NOT do?
Access the organisation's global pages of suppliers, customers or shipping marks (they're redirected to the dashboard).
See other agents' containers — not even by typing the URL directly.
Create new containers.
Create or manage users.
See data from another organisation.
Why does the agent only see some suppliers when searching?
To avoid exposing the full organisation catalog, the agent's supplier search is scoped to visible suppliers: those that already have at least one product in one of their assigned containers. If they find a new supplier in the market, they use "+ New supplier" on the product form and the system creates that supplier (or silently reuses an existing one if it already had the same shop number).
Can an agent see what products another agent loaded into another container?
No. Cross-container product recognition is scoped per agent: each one only gets notices based on their own assigned containers. There's no information leak between agents.
Can an agent be a customer at the same time?
No. Each user has a single role. If the same person needs to access as both customer and agent, today they're two separate accounts.