# mageplaza/module-rma-graphql

> Magento 2 RMA GraphQL Extension

`composer require mageplaza/module-rma-graphql`

Canonical URL: https://packagento.com/mageplaza/module-rma-graphql

## At a glance

- **Vendor**: mageplaza (https://packagento.com/mageplaza.md)
- **Latest version**: 1.1.3 — released 2023-05-17
- **Pricing**: Free
- **Package type**: Magento 2 module
- **Status**: active, accepting new buyers

## Installation

Packagento is licence-gated, so even free packages need a licence on a project before Composer can resolve them.

1. **Sign in or create an account** at https://packagento.com/customer/account/.

2. **Add the package to your account.** Open https://packagento.com/mageplaza/module-rma-graphql and complete the free checkout. A licence is minted automatically.

3. **Create or pick a project, then activate the licence on it.**
   - Projects represent the Magento installs you deploy to. Manage them at https://packagento.com/projects/.
   - Activate the new licence on the project you'll deploy this package to. Activation is what generates the Composer credentials scoped to that project.

4. **Add the project credentials to your Magento codebase.**

   Grab the project's public + private key from https://packagento.com/projects/ (open the project, then its Credentials tab), and add them to `auth.json`:

   ```json
   {
     "http-basic": {
       "packagento.com": {
         "username": "ppk_live_...",
         "password": "psk_live_..."
       }
     }
   }
   ```

   Add the Packagento Composer repository to `composer.json`:

   ```json
   {
     "repositories": [
       { "type": "composer", "url": "https://packagento.com" }
     ]
   }
   ```

5. **Install and apply.**

   ```bash
   composer require mageplaza/module-rma-graphql:*
   bin/magento setup:upgrade
   bin/magento setup:di:compile
   bin/magento cache:flush
   ```

## What it does

Magento 2 RMA GraphQL Extension

## README

**Magento 2 RMA GraphQL is now a part of the Mageplaza RMA extension that adds GraphQL features. This supports PWA compatibility.**

[Mageplaza RMA for Magento 2](https://www.mageplaza.com/magento-2-rma/) is a great tool that helps online stores deal with returns effectively. 

With this extension, you can allow non-login customers who haven’t created an account to send requests for returning items they have placed orders. If your store allows guest visitors to place orders, this is incredibly helpful and convenient for them. The RMA link will be displayed clearly at the top or bottom of the homepage, so customers can quickly access it to send requests. 

The store admin can set up the conditions based on the orders or products to apply RMA. Customers with orders matching the configured conditions will be able to send the RMA requests and vice versa. The conditions by orders can be total, subtotal weight, status, purchase point, customer group, payment method, region, or country. The conditions by product attributes can be SKU, category, etc. There is no limit to creating conditions for RMA. 

The extension enables you to handle the return requests for an item, some items, or the entire order. So if customers want to change the request for a specific item to the whole order, it has nothing complicated to do for both customers and store owners. 

Along with the basic order information, such as Order ID, Billing Last Name, Email, RMA information includes details essential to process the returns efficiently. Especially, the store admin can create additional fields for the RMA form, such as reasons for return, solution, and title of the request. Allowing customers to upload images to make their requests more reasonable by enclosing images of the current situation of the items they want to return, refund, or replace. There will be suggested reasons and solutions in the RMA form so that customers can quickly fill in the form and make it easier for store owners to understand customers’ requests and process it quickly. 

Customers will get notification about the status of their requests, which is approved or rejected via email. Store owners and customers can also discuss and negotiate further via email to come to a final agreement. 

### 1. How to install

Run the following command in Magento 2 root folder:

```
composer require mageplaza/module-rma-graphql
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy
```

**Note:** 
Magentp 2 RMA GraphQL requires installing [Mageplaza RMA](https://www.mageplaza.com/magento-2-rma/) in your Magento installation. 

### 2. How to use

To start working with **RMA GraphQL** in Magento 2, you need to:

- Use Magento 2.3.x. Return your site to developer mode
- Install [chrome extension](https://chrome.google.com/webstore/detail/chromeiql/fkkiamalmpiidkljmicmjfbieiclmeij?hl=en) (currently does not support other browsers)
- Set **GraphQL endpoint** as `http://<magento2-3-server>/graphql` in url box, click **Set endpoint**. (e.g. http://develop.mageplaza.com/graphql/ce232/graphql)
- The queries and mutations that Mageplaza support can be used to view the details that customers have requested, create requests, request cancel by customers, ect. Details can be viewed [here](https://documenter.getpostman.com/view/5977924/SzKZqvQE?version=latest#c0b8d573-3278-48e9-9644-5f711e5d033c).

### 3. Devdocs
- [Magento 2 RMA API & examples](https://documenter.getpostman.com/view/10589000/SzS2y8cT?version=latest) 
- [Magento 2 RMA GraphQL & examples](https://documenter.getpostman.com/view/10589000/SzRyzVYU?version=latest) 

Click on Run in Postman to add these collections to your workspace quickly.

![Magento 2 blog graphql pwa](https://i.imgur.com/lhsXlUR.gif)

### 4. Contribute to this module 
Feel free to **Fork** and contribute to this module. 

If you have any ideas to improve this post, create a pull request. We will consider to merge your proposed changes in the main branch. 

### 5. Get support
- If you have any further questions, feel free to [contact us]((https://www.mageplaza.com/contact.html). We're happy to hear from you. 
- If this post is helpful for you, please give it a **Star** ![star](https://i.imgur.com/S8e0ctO.png)

## Changelog

CHANGELOG: https://www.mageplaza.com/releases/rma/

## Recent Versions

| Version | Released |
|---|---|
| 1.1.3 | 2023-05-17 |
| 1.1.2 | 2023-05-04 |
| 1.1.1 | 2023-02-10 |
| 1.1.0 | 2023-01-05 |
| 1.0.0 | 2020-03-31 |

## Quality

Latest release (1.1.3) fails the Packagento QA pipeline. Verdicts below are per-cell (Magento line × PHP version) for the matrixed tools, and run-once for the static / security tiers.


### Compatibility

Each Magento line is installed on its supported PHP versions, then the module is built (DI compile + static-content deploy). Cells show passed / failed / untested; staircase gaps render as `–`.

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | 1 | 1 | – | – |
| 2.4.8 | – | 1 | 1 | – |
| 2.4.9 | – | – | 1 | 1 |


### Code Quality

Advisory checks against the module's source. Never affect the Compatibility verdict — a phpcs finding can't make a module incompatible.

#### Static Analysis

Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.

| Tool | Status | Findings | Summary |
|---|---|---|---|
| PHPCS | Warning | 20 | 20 warnings (ruleset: Magento2) — 18 auto-fixable with phpcbf |
| PHPMD | Pass | 0 |  |
| Cpd | Pass | 0 |  |
| Composer validate | Info | 1 | valid; 1 advisory note (composer validate --strict) |

#### PHPStan

Type-checks the module against a real Magento install. Re-runs per Magento + PHP version because resolvable symbols differ between releases.

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | 70 | 70 | – | – |
| 2.4.8 | – | 70 | 88 | – |
| 2.4.9 | – | – | 88 | 88 |


### Tests

Unit and integration suites run per Magento + PHP cell. Test failures speak to the module's behaviour, not its compatibility with a line, so they're reported here separately.

#### Unit Tests

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | – | – |
| 2.4.8 | – | N/A | N/A | – |
| 2.4.9 | – | – | N/A | N/A |

#### Integration Tests

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | – | – |
| 2.4.8 | – | N/A | N/A | – |
| 2.4.9 | – | – | N/A | N/A |


### Security

Dependency-advisory audit (composer audit) plus a source malware scan. A malware detection fails the version outright.

| Tool | Status | Findings | Summary |
|---|---|---|---|
| Composer audit | Pass | 0 |  |
| Malware scan | Pass | 0 |  |

## Licence and pricing

Free. A licence is still minted on checkout and bound to your project for Composer access — no payment step.

Refundable within 14 days of first purchase via https://packagento.com/account/refunds/.

## Install via Claude Code or any MCP client

The Packagento MCP server can run the licence + project + Composer steps above in one tool call:

```
purchase_and_install_packages(
  composer_names=["mageplaza/module-rma-graphql"],
  project_id="proj_xxx"
)
```

This handles cart, checkout, licence minting, project activation, and writes auth.json credentials. Connect a client with `claude mcp add packagento https://mcp.packagento.com`. Full setup at https://packagento.com/docs/mcp-setup.

## Vendor

mageplaza is a Magento 2 vendor on Packagento. See https://packagento.com/mageplaza.md for their full catalogue.

