This extension utilizes Razorpay API and provides seamless integration with Magento, allowing payments for Indian merchants via Credit Cards, Debit Cards, Net Banking, Wallets and EMI without redirecting away from the magento site.
- Extract the attached code.zip
- Go to the "app" folder
- Overwrite content of the "code" folder with step one "code" folder (Note: if the code folder does not exist just place the code folder from step 1).
- Run following command to enable Razorpay Magento module:
bin/magento module:enable Razorpay_Magento
- Run following command to install Magento cron jobs :
bin/magento cron:install
- Run
bin/magento setup:di:compile
to compile dependency code. - Run
bin/magento setup:upgrade
to upgrade the Razorpay Magento module from the Magento installation folder. - On the Magento admin dashboard, open Razorpay payment method settings and click on the Save Config button. Note: If you see this message highlighted in yellow (One or more of the Cache Types are invalidated: Page Cache. Please go to Cache Management and refresh cache types.) on top of the Admin page, please follow the steps mentioned and refresh the cache.
- Run
bin/magento cache:flush
once again.
Install the extension through composer package manager.
composer require razorpay/magento
bin/magento module:enable Razorpay_Magento
You can check if the module has been installed using bin/magento module:status
You should be able to see Razorpay_Magento
in the module list
bin/magento setup:di:compile
bin/magento setup:upgrade
bin/magento cache:flush
Go to Admin -> Stores -> Configuration -> Payment Method -> Razorpay
to configure Razorpay
If you do not see Razorpay in your gateway list, please clear your Magento Cache from your admin panel (System -> Cache Management).
Setup cron with Magento to execute Razorpay cronjobs for following actions:
It will cancel order created by Razorpay as per timeout saved in configuration if Cancel Pending Order is enabled.
Accepts response from Razorpay Webhook for events payment.authorized
and order.paid
and updates pending order to processing.
bin/magento cron:install
Razorpay GraphQL Support added with Magento ver. 2.3.6
Order flow for placing Magento Order using Razorpay as payment method with GraphQL
- set Payment Method on Cart
mutation {
setPaymentMethodOnCart(input: {
cart_id: "{{cart_ID}}"
payment_method: {
code: "razorpay"
}
}) {
cart {
selected_payment_method {
code
}
}
}
}
- Place Magento Order
mutation {
placeOrder(input: {cart_id: "{{cart_ID}}"}) {
order {
order_number
}
}
}
- Create Razorpay Order ID against the Magento Order ID and the checkout page URL as referrer.
mutation {
placeRazorpayOrder (
order_id: "{{order_ID}}"
referrer: "{{referrer}}"
){
success
rzp_order_id
order_id
amount
currency
message
}
}
-
Use Razorpay Order ID
rzp_order_id
and other details from step-3 and create frontend form using razorpay's checkout.js , complete the payment and obtain razorpay_payment_id & razorpay_signature https://razorpay.com/docs/payment-gateway/web-integration/standard/ -
Save Razorpay Response Details against Cart after payment success with Magento orderID, RZP paymentId , orderId and signature
mutation {
setRzpPaymentDetailsForOrder (
input: {
order_id: "{{order_ID}}"
rzp_payment_id: "{{RAZORPAY_PAYMENT_ID}}"
rzp_signature: "{{RAZORPAY_SIGNATURE}}"
}
){
order{
order_id
}
}
}
- Pass the Magento Order ID to reset the cart.
mutation {
resetCart (
order_id: "{{order_ID}}"
){
success
}
}
If you are an existing user, you can upgrade the Magento extension using the composer. Enter the command given below:
composer update razorpay/magento
bin/magento setup:upgrade
- On the Magento Admin Dashboard, Stores > Settings > Order Status.
- In the upper-right corner, click on Create New Status.
- Under Order Status Information section, Insert a Status Code for the internal reference. This field required to contain letters (a-z), the number (0-9) and the underscore, it is required to use letters at first character and the rest can be a combination of letters and numbers.
- Set the Status Label for Admin and storefront.
- Set the Store View specific labels for each store view on your store.
- Save status to complete.
- Un-assign existing status code which is in use.
- If State Code and Title is
processing[Processing]
, thenprocessing
status is already in use for stateprocessing
. - Un-assign this status from existing state code
processing
, so that state will be available for your custom status code.
- If State Code and Title is
- Go to the Order Status page, click on Assign Status to State button.
- In the Assign Order Status to State section,
- From the existing list of the order status, select the Order Status to assign.
- Choose the Order State to include the order status you’ve just assigned. Use Order state as
processing
- Accept the order status as a default status, tick the Use Order Status as Default checkbox.
- Enable the order status on the storefront, please tick the Visible On Storefront checkbox.
- Click on
Save Status Assignment
to complete.
- On the Magento admin dashboard, open Razorpay payment method settings.
- At field
Custom Paid Order Status
selectYes
to enable custom order status, selectNo
to disable custom order status. - Insert Custom Paid Order Status value at input field provided with same value which has been used as Status Code while creating custom status.
- Save configuration & refresh the cache.
To rollback, you will be required to uninstall existing version and install a new version again. Following are actions used for rollback & reinstall:
If composer is used for installation, use following commands from Magento installation directory to uninstall Razorpay Magento module
php bin/magento module:disable Razorpay_Magento
php bin/magento module:uninstall Razorpay_Magento
If code.zip is used for installation, to uninstall following steps can be used: Disabled Razorpay Magento module
php bin/magento module:disable Razorpay_Magento
To remove module directory, execute following command from Magento install directory
rm -rf app/code/Razorapy
Remove module schema from MYSQL database
DELETE FROM `setup_module` WHERE `setup_module`.`module` = 'Razorpay_Magento';
To install Razorpay Magento module, follow installation steps provided at this release document. Following are previously released versions 3.7.5 and 4.0.4.
Download the latest code.zip and replace all the contents of the code folder with the new code.zip content. Then follow the same steps which are there for installation through code.zip.
I am getting the following error message "Column not found: 1054 Unknown column 'main_table.rzp_webhook_notified_at' in 'field list', query was: SELECT main_table.entity_id, main_table.rzp_webhook_notified_at FROM sales_order AS main_table."
If you encounter this error message, update the plugin to the latest version to resolve the issue.
Visit https://razorpay.com for support requests or email contact@razorpay.com.