GuidesImport from CSV
Import your catalog
from a spreadsheet.
The import reads CSV files made from anyshop's templates, shows you what each row would do before it writes anything, and never duplicates on a second run. License keys you issued elsewhere keep working: buyers check them against anyshop's license API.
The templates
Download them from Settings, Import. Each has a header row and example rows; keep the header, replace the examples with your own rows, and save the file as CSV (from Excel or Numbers, export as CSV first). Commas, semicolons and tabs all work as separators.
| File | One row is | Columns |
|---|---|---|
products.csv | One option of a product. Rows with the same product_id are one product | product_id, name, type, option, price, currency, description, visible, delivery_instructions, devices_per_license, license_days, file_url, file_name, file_sha256 |
stock.csv | One unsold key | product_id, key |
coupons.csv | One coupon | code, percent_off or amount_off, products, usage_limit, starts_at, ends_at |
customers.csv | One customer | email, name, marketing_consent, consent_date |
licenses.csv | One license key | product_id, license_key, devices_limit, expires_at, customer_email, active |
product_idis your own ID for the product. Keep it the same every time you import: it is how a second import finds the product it made the first time, and how stock, coupons and licenses name their product.typeisserial,license,file,serviceordynamic.priceis written like79.00, andcurrencyis an ISO code such asUSD. A store sells in one currency, so rows priced in another are skipped.- File products name an
httpsaddress infile_url, and the import copies the file from there. - Coupons apply to every product when
productsis empty, or to theproduct_ids you list, separated by|. Dates such as2026-12-31are read as UTC. - Marketing consent is
yesonly when the person agreed to marketing email,nowhen they did not, and empty when you do not know. - Licenses keep their device limit and expiry date; an empty
devices_limitmeans no limit and an emptyexpires_atmeans never.
Run the import
- In anyshop, open Settings, Import, choose CSV, and add your files, up to 4 MB together. One file holds at most 50,000 rows; split larger stock files and import them in parts.
- Choose Preview the import. Every product, key, coupon, customer and license is listed as new, an update, unchanged, held for review or skipped, with the reason. Nothing is written yet.
- Choose Run. A store runs one import at a time; running the same files again later adds what is new and changes nothing twice.
Only a store's owners and admins can import.
What the import checks
- Keys are encrypted on arrival. Repeats inside your files, and keys already in your store's stock, are skipped, so no key is added twice.
- Listings are screened. A product that matches a prohibited term is imported held for review, off your storefront until a person at anyshop releases it, and the preview names the term.
- A file that cannot be read is refused with the line number of the problem. Messages never repeat a key.