Skip to content
Mehrdad Pajuhaan edited this page Oct 23, 2026 · 1 revision

FAQ

Answers to common questions about the Sample Connect Provider. If your question is not here, open an issue.

Can I use this project in production?

No. It is a test project. It hard-codes one client, one authorization code and one access token, skips real user login and exposes your secret keys in the browser. Use it to learn the flow and build your own bridge.

Who should build a Connect Provider?

Retail and e-commerce service providers — for example dropshipping suppliers, fulfillment centers and marketplaces — that want Selldone merchants to connect their shops with one click and sync products and orders.

What does it cost to create a bridge?

You need a wallet in USD and a one-time charge of 20 USD to create the connect bridge. Merchants can select your service in Channel > Connect OS only if your provider has a bridge.

Why does Selldone need a public server?

Selldone calls your login URL, token URL and webhook URLs from the internet. localhost is not reachable, so deploy the project on a server with a public IP or domain.

php artisan serve fails because public/index.php is missing.

The public/ folder is ignored by Git in this repository. Copy public/index.php and public/.htaccess from the Laravel 8 skeleton, then build the front end with npm run dev or npm run watch.

npm watch does not work.

Use npm run watch (or yarn watch). The scripts are defined in package.json.

Every webhook returns 403 Invalid signature!

Check that SD_PROVIDER_WEBHOOK_SIGN_KEY matches the sign key on Selldone > Your provider > Webhooks. The bridge verifies Selldone-Sign-Hash as a Bcrypt hash of {sign key}:{Selldone-Sign-Id}.

Webhooks return 403 Invalid access token!

The sample only accepts Authorization: Bearer {SAMPLE_ACCESS_TOKEN}. Connect the shop again through the OAuth flow so Selldone stores that token, or change the check to look up your own tokens.

The token exchange fails with "method does not exist".

routes/web.php maps POST /auth/token to Controller::class, while the token() method is implemented in AuthorizationController. Point the route to AuthorizationController::class in your copy.

After granting access, I land on a wrong or placeholder URL.

Set SD_PROVIDER_RETURN_URL to the Return URL from Selldone > Your provider > Auth. The default in config/selldone.php is only a placeholder.

Which webhooks do I have to implement?

It depends on your connect mode. For example, Dropshipping needs notify shop, fetch categories, fetch products, create, confirm, get and cancel order.

What should I do before going live?

Regenerate your API key and webhook sign key, replace all sample credentials and tokens, implement real login and token storage, and remove secrets from the front end.

Related

Clone this wiki locally