Wocart

Known limitations

Cloudflare

  • Workers on workers.dev cannot call each other (error 1042). Put at least the API server on a custom domain (Deploy).
  • A D1 database lives in one region, and has Cloudflare's size limits per database. Check Cloudflare's current D1 limits for your plan.

Carriers

Every carrier integration is tested against the carriers' recorded answers, and the handoff, sync and webhook paths run end to end on a real database.

  • EcoTrack couriers: verified live on an EcoTrack test account — home and stop-desk parcels, bulk creation, edits, notes, labels, validation, cancelling, history and status sync. Not yet seen live: a parcel delivered, refused or returned, so returns are verified only against EcoTrack's documented API.
  • The 2019 wilayas (49–58): Wocart's commune list still files their communes under their former wilaya, and each new wilaya holds only its capital. Carriers on the 58-wilaya split (EcoTrack, Yalidine) refuse a parcel to such a commune — about 60 of them. About 110 more communes are spelled too differently from EcoTrack's list to be matched; Sync delivery zones on the company lists them.
  • ZR Express lets a company rename its states; a name ZR's standard workflow does not know is recorded as an unknown status until the merchant maps it in the company's settings.
  • NOEST, Guepex and the EcoTrack couriers send no webhooks. They are checked every five minutes: up to 20 open parcels per company per run, each at most every 30 minutes, and at once with Sync.
  • Carrier payouts (a carrier paying the merchant the cash it collected) are kept but not reconciled.

Orders and shipments

  • An order has at most one shipment. Shipping it again means voiding the first, which is possible only before it is out for delivery or after the carrier cancelled it.
  • Handing off in bulk takes up to 100 orders at a time.

Meta, webhooks and Telegram

These deliver through the same tested event engine, but have not yet run against real Meta pixels, merchants' own systems or merchants' bots in production.

  • Meta: an order from a store with no domain set is sent without its page address (event_source_url).
  • Webhooks: an endpoint is refused when it is not https, carries credentials or names a private address — judged by its name, not by what it resolves to. Attempts run one after another, each up to 15 seconds, so many slow endpoints delay the others until the next run.
  • Telegram: one private chat per store; groups and channels are not supported. Telegram allows about one message a second to a chat, so a burst (a carrier sync delivering twenty parcels) may be retried a few minutes later. Changing bots leaves the old bot's webhook set; its updates are refused.