Appearance
Shopify Integration
Wasal's native Shopify integration automatically turns new Shopify orders into Wasal delivery orders. Merchants can connect a store without copying API credentials, choose how imports behave, offer Wasal delivery rates at checkout when their Shopify plan supports carrier-calculated shipping, and monitor every import from the merchant dashboard.
Status: Available now for connected Wasal merchants. Shopify settings are managed by a merchant administrator.
What to expect
After the integration is configured:
- A customer places an order in your Shopify store.
- Shopify securely notifies Wasal about the new order.
- Wasal maps the customer, delivery address, items, payment method, totals, and Shopify order reference.
- Wasal creates the delivery order under your selected default branch.
- The order appears in Merchant Dashboard → Orders with a Shopify icon.
- You can follow the import result in Settings → Shopify → Activity.
Wasal prevents duplicate delivery orders when Shopify sends the same order event more than once.
Connect your Shopify store
- Sign in to the Wasal merchant dashboard as a merchant administrator.
- Open Settings → Shopify.
- Enter your permanent Shopify domain, such as
your-store.myshopify.com. - Select Connect.
- Review and approve the requested permissions in Shopify.
- Shopify returns you to Wasal, where the page shows the connection status.
- Select a Default Branch and review the import options.
- Select Save.
The connection uses Shopify's authorization flow. You do not need to copy or store a Shopify access token manually.
Integration settings
The Integration tab provides these controls:
Default branch
Every imported order is assigned to this branch for pickup and delivery handling. Automatic imports cannot complete until a valid active branch is selected.
Automatically import Shopify orders
When enabled, new Shopify orders are imported automatically. When disabled, Wasal still records that an event was received but marks it as skipped instead of creating an order.
Import orders as drafts
When enabled, imported orders are saved as drafts for merchant review. You can verify the customer, address, pricing, notes, and payment information before activating the delivery.
When this option is disabled, Wasal can create an active order directly. However, an order is still saved as a draft if the Shopify address identifies the governorate but Wasal cannot confidently identify the neighborhood. This prevents dispatching to an incomplete delivery area.
Enable Wasal rates at Shopify checkout
When available, Shopify checkout can request a Wasal Standard Delivery rate. Wasal calculates the rate using your selected branch and configured delivery pricing.
Shopify plan requirement
Carrier-calculated shipping must be supported and enabled for your Shopify store. If Shopify does not allow the carrier service, automatic order import can still work, but Wasal checkout rates remain unavailable.
The checkout rate uses the governorate-level price as a safe maximum. After the exact neighborhood is confirmed, Wasal may apply a lower configured area price internally, but not a higher one.
Shopify Plus: exact delivery-area selector
Shopify Plus stores can add the Wasal delivery area block immediately below the delivery address. After the customer selects a Kuwait governorate, the block shows the matching second-level areas in English and Arabic. The selected area updates Shopify's City field, refreshes the Wasal carrier rate, and is saved with the checkout.
In Shopify admin, go to Settings → Checkout → Customize, add Wasal delivery area after the delivery address, and enable Allow app to block checkout. This makes the area required before the customer continues.
Other Shopify plans: governorate fallback
Stores without checkout-step UI extensions continue to receive a Wasal rate from the selected governorate. Wasal uses the configured governorate default price even when the City text cannot be matched to a supported area. If City contains an exact supported area, Wasal uses the detailed area price without exceeding the governorate price.
Shopify can request rates in a presentment currency such as USD. Wasal returns its configured KWD delivery rate and Shopify displays the converted checkout amount.
Information imported into Wasal
For a supported order, Wasal imports or derives:
- Shopify order number as the merchant reference
- Customer name, phone, and email when provided
- Kuwait delivery address and mapped Wasal area
- Product names, SKUs, quantities, prices, discounts, and weights when provided
- Currency, subtotal, delivery fee, and order total
- Payment method
- Amount to collect for cash-on-delivery orders
- A formatted delivery address in the driver notes
A Shopify payment gateway containing cash or cod is treated as cash on delivery. Other gateways are treated as prepaid.
Drafts that need merchant review
A Shopify order is created as a draft when:
- The neighborhood could not be mapped from the Shopify address
- The order was intentionally configured to import as a draft
Draft orders can be edited directly in Wasal. Select a complete customer delivery address, correct customer information if needed, save the order, and then activate it. Wasal also sends the merchant a draft notification when an imported order needs review.
Other problems—such as missing required contact information, an unavailable branch, no active delivery partner, or missing delivery pricing—prevent order creation and appear as Needs attention in Shopify Activity.
Shopify activity
Open Settings → Shopify → Activity to see recent Shopify events. The activity table includes the received time, Shopify reference, event type, status, linked Wasal order, and a merchant-friendly result.
| Status | Meaning | Merchant action |
|---|---|---|
| Queued | Wasal accepted the event and will process it shortly. | Wait briefly, then refresh. |
| Processing | The import is currently running. | No action is normally required. |
| Imported | The Shopify order was linked to a Wasal order or draft. | Open the Wasal order and review it if needed. |
| Skipped | Automatic importing was disabled or the event did not require an import. | Review the Integration tab if this was unexpected. |
| Needs attention | Wasal could not complete the import. | Read the result, correct the configuration or order data, then retry when available. |
You can search by Shopify or Wasal order reference and filter by status. When a retry action is available, select Retry import after correcting the reported issue. Wasal also retries eligible processing failures automatically.
Finding imported orders
Imported orders appear in Merchant Dashboard → Orders. A Shopify icon beside the Wasal order number identifies orders that were added automatically from Shopify.
The Shopify order number is preserved as the merchant reference. This makes it easier to compare the order between Shopify and Wasal.
Current synchronization scope
The integration currently focuses on new Shopify order creation and Wasal checkout pricing. After an order is imported, manage its delivery workflow in Wasal.
Do not assume that later Shopify edits or cancellations automatically change the Wasal delivery order unless that behavior is explicitly shown in the activity history. Review or cancel the Wasal order separately when needed.
Disconnecting
Selecting Disconnect removes the active Shopify connection and stops:
- New automatic Shopify order imports
- Wasal carrier-rate responses at Shopify checkout
Existing Wasal orders remain available and continue through their normal delivery lifecycle.
If the Wasal app is uninstalled from Shopify, Wasal also marks the connection inactive.
Troubleshooting
Orders are marked as skipped
Open the Integration tab and enable Automatically import Shopify orders, then save. Skipped historical events do not automatically become orders; place a new test order or contact support if an older order must be imported.
Default branch is required
Select an active branch under Default Branch and save before retrying the import.
Governorate or neighborhood cannot be mapped
Confirm that the Shopify shipping address contains a valid Kuwait province/governorate and clear city or area information. If Wasal created a draft, edit the customer's delivery address in Wasal and select the correct governorate and neighborhood before activation.
Customer phone is missing
Add a valid customer phone number in Shopify. If the customer already exists in Wasal, verify that the saved contact information is correct, then retry the failed activity when available. Wasal does not invent missing contact details.
No delivery price is available
Ask your Wasal account manager to verify delivery pricing for the branch, governorate, and neighborhood.
Checkout rates are unavailable
Automatic imports and checkout rates are separate capabilities. Imports may work even if your Shopify plan does not support carrier-calculated shipping. Check the carrier status shown on the Integration tab.
A failed event cannot be retried
Some completed or expired events no longer retain retry data. Correct the underlying issue and contact Wasal support with the Shopify order reference if the retry button is unavailable.
Security and privacy
- Shopify authorization is completed through Shopify; merchants do not paste access tokens into Wasal.
- Incoming Shopify events are signature-verified before processing.
- Shopify activity is scoped to the connected Wasal merchant account.
- Raw webhook payloads, signatures, credentials, and internal error details are not shown to merchants.
- Disconnect the integration immediately if store access should no longer be permitted.
