Repository navigation
FAQ
Direct answers to common questions about Clone Sheet, including troubleshooting.
MariaDB and MySQL, local or remote. The app connects with the Sequelize mariadb dialect and the setup wizard uses
mysql2 to create the database.
No. The token it asks for has only read scopes, and Clone Sheet only reads from the Selldone API. All writes go to your local database.
Check that the database server is running and that host, port, username and password are correct. The wizard connects without selecting a database first, so the user needs permission to create the database if it does not exist yet. Fix the values in the form and submit again.
npm start uses the values in .env. The .env in the repository is an example (DB_PORT=4000, DB_NAME=test).
Run node setup.js once, or edit .env to match your server. See Setup and Configuration.
The wizard starts the app on the Application Port (default 3010) or the next free port. npm start uses PORT
from .env, or 3000 if it is not set. The setup wizard itself runs on port 3000 or the next free port.
Connect first: in the Setup tab paste the token and shop ID and click Save & Connect. See Syncing Data.
The token is invalid, expired or revoked, or it was created for another shop. Create a new token with Create Access Token and connect again. If a sync stops with an error later, the same check applies; the Sync tab shows the error message for each resource. Manage tokens at selldone.com/developer/access.
Clone Sheet keeps one shop at a time. Connecting a different shop ID clears the synced tables and sync times first. Use a separate database (run the wizard with another database name in another copy of the project) to keep several shops.
Open the Database tab and click Clear All Data, then run Sync All Resources. Without sync times, every record is downloaded again.
Yes. While the app is running, call the sync endpoints, for example
curl -X POST http://localhost:3010/products/fetch-products, from cron or another scheduler. The full list is in
Syncing Data.
Inside Docker, localhost is the container itself. Use host.docker.internal as the host and your database port
(default 3306).
The app has no login of its own and its endpoints are not authenticated, and the access token is stored in the
key_values table. Run it on a trusted machine and do not expose its port to the internet.