Create a product

Create units one at a time, as rows typed by hand or from a CSV file, and preview what will be written on chain.

On this page

This is where new units are created, one at a time, as rows typed by hand, or from a file. The carrier you choose decides what follows: chipped rows go into the tag preparation queue, rows with a printed code only go to the mint.

The product creation screen, with its three tabs and the authentication method selector

#What the screen shows

Three tabs: "Single product", "Batch (multiple products)" and "From CSV". A blue banner, "Metadata auto-generated", recalls that the metadata goes to IPFS and that its URI is written on chain.

In single mode: product name, brand, category, product model (optional) and a selector for NFC, QR or NFC + QR.

In batch mode: a numbered table, one row per unit, with an "Add row" button.

In CSV mode: the required and optional columns, a preview of the first 5 accepted rows, the count of valid rows and refused rows, and the choice of mint mode. At most 20 refused rows are detailed, the following ones are summed up by a count.

After the submission, a green banner counts separately the rows sent to encoding and those sent to the mint.

#What you can do here

"Preview what will be written on-chain" shows the cover image, the exact metadata JSON and warnings: missing model, model without an image, missing category, no active contract registered. The preview sends nothing on chain and uploads no file, it calls the same computation functions as the mint. One reserve: the image appears there under its original address, whereas the mint first pins it on IPFS and writes the ipfs:// address instead.

You can add and remove rows in the batch mode table. In CSV mode, load a CSV file, correct the file from the refusals numbered by row, then import. The required columns are product_name, brand_id and category_id, the optional ones external_ref, metadata_uri, owner_email, product_model_id, product_batch_id and auth_method. You choose the default authentication method for the rows that do not state one, then the mint mode: one transaction per product, or a grouping announced up to 50 products per transaction. That choice travels with the request and holds for this import only, it modifies no server setting.

Preparing a batch creates its items with the ready_to_scan status.

#What conditions access

The create button stays inactive as long as the name, the brand and the category are not filled in, and in batch mode a single incomplete row is enough to keep it inactive. The preview button stays inactive as long as no brand is chosen. The last row of the batch mode table cannot be removed. The "Encode NFC tags" link in the success banner is reserved for certain brand profiles. The form draft and the active tab are kept, a return to the sign-in page does not erase them.

At the mint, the server checks, brand by brand, that the plan is active, that the monthly product quota is not exceeded, and that the requested authentication method is allowed by the plan. For rows with a printed code only, the identifier is generated by the server, it is never accepted from the browser.

#What the screen refuses

  • A missing name, before submission: "Product name is required for each row." A missing brand: "Brand is required." A missing category: "Category is required."
  • More than 10 000 rows in one submission: 400, with the instruction to split the file.
  • An authentication method the plan does not allow: 403, code AUTH_METHOD_NOT_ALLOWED, with the list of allowed methods.
  • A quota overrun: 403, code QUOTA_EXCEEDED, with the current count, the requested number and the monthly ceiling.
  • A CSV missing a required column: "CSV is missing required columns", and nothing is imported. A CSV in which two columns carry the same name once spaces are removed is refused entirely.
  • A CSV row with an unreadable value: it is listed with its row number, its column and the value written in the file, and it is not imported.

When an error mentions the plan, a link to the billing page of the brand concerned is added under the message.

Your answer opens a pre-filled email in your mail app, addressed to contact@sealtrust.io. You read it over before sending it.

Suggest a correctionReport a problem