Develop an EasyKash Shopify App
Budget: $30 – $250 USD
I want to create a shopify plugin that does the following
## Merchant install + setup flow
* Merchant goes to Shopify App Store and installs the **EasyKash Shopify app** through the normal app install flow. Shopify apps can add admin settings and backend logic for the store. ([Shopify][1])
* Merchant opens the EasyKash app inside Shopify admin.
* Merchant logs into EasyKash or connects their EasyKash merchant account.
* Merchant enters/configures:
* EasyKash API credentials
* callback/webhook URL settings
* redirect URL behavior
* whether unpaid orders should expire after X hours
* Merchant enables a **manual payment method** in Shopify and names it something like **“EasyKash”**. Shopify supports custom/manual payment methods for payments received outside standard checkout. ([Shopify Help Center][2])
* Merchant optionally customizes the label/instructions shown to the buyer, such as:
* “Place your order, then complete payment with EasyKash”
* Merchant saves settings and activates the EasyKash post-order payment flow.
## What happens when the buyer orders
* Buyer adds products to cart and goes to Shopify checkout.
* At payment step, buyer selects the merchant’s manual payment option named **EasyKash**.
* Buyer places the order.
* Shopify creates the order in **unpaid / pending payment** state because it is a manual payment flow. Shopify manual payments are intended for payments completed outside the standard checkout process. ([Shopify Help Center][2])
* EasyKash app receives the new order details from Shopify.
* EasyKash app creates an EasyKash payment session/link using:
* order ID
* amount
* currency
* customer info
* merchant/store reference
* EasyKash app stores:
* Shopify order ID
* EasyKash payment session ID
* Shopify order status URL / return destination for that order
* On the Shopify order status / thank-you experience, the EasyKash app shows:
* order amount
* “Pay with EasyKash” button
* payment status such as pending / paid / failed. Shopify’s Order Status Page is designed for customer-facing extensions and post-order functionality. ([Shopify][1])
## What the buyer does to pay
* Buyer clicks **Pay with EasyKash**.
* Buyer is redirected from Shopify to the hosted EasyKash payment page.
* Buyer completes payment on EasyKash using the available methods.
* EasyKash processes the transaction and determines:
* success
* failure
* cancellation
* timeout
## What EasyKash does after payment
* EasyKash sends a server-to-server update to your backend.
* Your backend verifies the payment result securely.
* If payment is successful:
* EasyKash calls Shopify Admin API to record a **manual payment** for that order.
* Shopify supports `orderCreateManualPayment` specifically for orders paid outside standard checkout. ([Shopify][3])
* If payment fails or buyer cancels:
* order stays unpaid
* EasyKash stores failed/cancelled status in its own records
* EasyKash then redirects the buyer back to the saved Shopify **order status page** URL.
* When the buyer lands back on Shopify, your app reads the latest payment state and shows:
* **Payment successful**
* or **Payment failed**
* or **Payment still pending**. Shopify’s Order Status Page supports app extensions and customer access to a specific order’s status. ([Shopify][1])
## Final buyer experience
* If successful:
* buyer sees order as paid
* merchant can proceed normally with fulfillment
* If failed:
* buyer sees failed / unpaid message
* buyer can try paying again
* If cancelled or timed out:
* buyer sees pending or cancelled state
* merchant can send the same payment link again later by email or WhatsApp
## Operational flow for merchant after that
* Merchant sees the order inside Shopify.
* If paid successfully, order payment status is updated after EasyKash records the manual payment in Shopify. ([Shopify][3])
* If still unpaid, merchant can:
* wait
* resend payment link
* auto-cancel order after a defined time
* hold fulfillment until paid
## Merchant install + setup flow
* Merchant goes to Shopify App Store and installs the **EasyKash Shopify app** through the normal app install flow. Shopify apps can add admin settings and backend logic for the store. ([Shopify][1])
* Merchant opens the EasyKash app inside Shopify admin.
* Merchant logs into EasyKash or connects their EasyKash merchant account.
* Merchant enters/configures:
* EasyKash API credentials
* callback/webhook URL settings
* redirect URL behavior
* whether unpaid orders should expire after X hours
* Merchant enables a **manual payment method** in Shopify and names it something like **“EasyKash”**. Shopify supports custom/manual payment methods for payments received outside standard checkout. ([Shopify Help Center][2])
* Merchant optionally customizes the label/instructions shown to the buyer, such as:
* “Place your order, then complete payment with EasyKash”
* Merchant saves settings and activates the EasyKash post-order payment flow.
## What happens when the buyer orders
* Buyer adds products to cart and goes to Shopify checkout.
* At payment step, buyer selects the merchant’s manual payment option named **EasyKash**.
* Buyer places the order.
* Shopify creates the order in **unpaid / pending payment** state because it is a manual payment flow. Shopify manual payments are intended for payments completed outside the standard checkout process. ([Shopify Help Center][2])
* EasyKash app receives the new order details from Shopify.
* EasyKash app creates an EasyKash payment session/link using:
* order ID
* amount
* currency
* customer info
* merchant/store reference
* EasyKash app stores:
* Shopify order ID
* EasyKash payment session ID
* Shopify order status URL / return destination for that order
* On the Shopify order status / thank-you experience, the EasyKash app shows:
* order amount
* “Pay with EasyKash” button
* payment status such as pending / paid / failed. Shopify’s Order Status Page is designed for customer-facing extensions and post-order functionality. ([Shopify][1])
## What the buyer does to pay
* Buyer clicks **Pay with EasyKash**.
* Buyer is redirected from Shopify to the hosted EasyKash payment page.
* Buyer completes payment on EasyKash using the available methods.
* EasyKash processes the transaction and determines:
* success
* failure
* cancellation
* timeout
## What EasyKash does after payment
* EasyKash sends a server-to-server update to your backend.
* Your backend verifies the payment result securely.
* If payment is successful:
* EasyKash calls Shopify Admin API to record a **manual payment** for that order.
* Shopify supports `orderCreateManualPayment` specifically for orders paid outside standard checkout. ([Shopify][3])
* If payment fails or buyer cancels:
* order stays unpaid
* EasyKash stores failed/cancelled status in its own records
* EasyKash then redirects the buyer back to the saved Shopify **order status page** URL.
* When the buyer lands back on Shopify, your app reads the latest payment state and shows:
* **Payment successful**
* or **Payment failed**
* or **Payment still pending**. Shopify’s Order Status Page supports app extensions and customer access to a specific order’s status. ([Shopify][1])
## Final buyer experience
* If successful:
* buyer sees order as paid
* merchant can proceed normally with fulfillment
* If failed:
* buyer sees failed / unpaid message
* buyer can try paying again
* If cancelled or timed out:
* buyer sees pending or cancelled state
* merchant can send the same payment link again later by email or WhatsApp
## Operational flow for merchant after that
* Merchant sees the order inside Shopify.
* If paid successfully, order payment status is updated after EasyKash records the manual payment in Shopify. ([Shopify][3])
* If still unpaid, merchant can:
* wait
* resend payment link
* auto-cancel order after a defined time
* hold fulfillment until paid