Best Practices & FAQ
Follow these best practices to ensure your logistic app provides the best experience for EasyStore merchants and their customers.
Best Practices
1. Show "Print AWB" Button on Fulfillment Success Page
After a successful fulfillment, display a "Print AWB" button directly in your success page. This provides a smoother operation flow for merchants, allowing them to immediately print shipping labels without navigating away.
💡 This approach bypasses the AWB URL defined in EasyStore and provides a seamless workflow within your app.
2. Ensure CURL API Responds Within 5 Seconds
Your Shipping CURL endpoint must respond within 5 seconds:
- Requests exceeding 5 seconds will be timed out by EasyStore
- This ensures a smooth checkout experience for customers
- Consider caching shipping rates or optimizing your logistics API calls to meet this requirement
⚠️ Important: If your endpoint consistently times out, customers will see an error and may abandon their checkout.
3. Handle Errors Gracefully
- Always return meaningful error messages when something goes wrong
- Use the
messageresponse type to display user-friendly errors - Log errors on your end for debugging purposes
4. Secure Your Endpoints
- Always verify the HMAC signature on incoming requests
- Use HTTPS for all endpoints
- Validate the
Easystore-Shop-Domainheader matches expected stores
5. Implement Idempotency
- Handle duplicate requests gracefully (e.g., network retries)
- Use unique identifiers to prevent creating duplicate shipments
- Return consistent responses for the same request
Frequently Asked Questions
Q: Do I need to integrate all the functionalities?
A: No, you can decide which core functionalities you wish to provide. For example, you may choose to only implement shipping rates calculation, or only fulfillment and AWB printing. Select the features that best match your logistics platform's capabilities.
Q: How do I register my fulfillment and AWB URLs?
A: Currently, fulfillment and AWB URLs need to be registered manually by the EasyStore team. Email dev@easystore.co with your app name and the endpoint URLs you want to register.
Q: Can I use different URLs for single and bulk operations?
A: Yes, you can register different URLs for single and bulk operations. This allows you to implement different UI flows or processing logic for each scenario.
Q: How do I test my integration without affecting real orders?
A: Use a Development Store for testing. Development stores are sandbox environments where you can safely test all features without affecting real merchant data.
Q: What happens if my shipping rate endpoint is slow or down?
A: If your endpoint takes more than 5 seconds to respond or returns an error, EasyStore will not display your shipping options at checkout. Customers will see other available shipping methods or an error message. Ensure your endpoint is reliable and fast.
Q: Can I update tracking information after fulfillment?
A: Yes, use the Update Fulfillment API to update tracking numbers, URLs, and delivery status at any time after the initial fulfillment.
Q: How do I handle COD (Cash on Delivery) orders differently?
A: Register separate CURL endpoints for shipping/list/cod and
shipping/list/non_cod topics.
This allows you to return different shipping options or rates for COD orders.
Getting Help
If you need assistance with your logistic app integration:
- Email the development team at dev@easystore.co
- Check the Public API documentation for detailed API references
- Review the Getting Started guide for general API concepts
Summary
You've now learned how to build a complete logistic app for EasyStore:
- Overview - Introduction and getting started
- Shipping Rates - Display shipping/pickup methods at checkout
- Order Fulfillment - Create shipments from admin panel
- AWB Printing - Generate shipping labels
- Parcel Status - Sync delivery status updates
- Testing - Test and debug your integration
Good luck with your logistic app! 🚀