Download the PHP package artaza/module-rma without Composer

On this page you can find all versions of the php package artaza/module-rma. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package module-rma

Artaza_Rma

Returns (RMA) for Magento Open Source, which has no native RMA — that feature only ships with Adobe Commerce.

The customer requests a return from their account (or, as a guest, from the order lookup), and the request is exposed over REST so an external system can pull it, decide, and push the outcome back. The storefront then shows the customer where their return stands.

This module decides nothing. It records the request, mirrors a status, and displays it. Every real decision — accept or reject, whether the goods go back to sellable stock, whether a credit note is issued — belongs to whatever system you plug in. That keeps the money and the stock in one place instead of split across two.

It ships ERP-agnostic: nothing here knows about any particular back office. It was built for the Magento 2 Connector for Odoo 19, but the contract is plain REST and two dispatched events, so anything can drive it.

How it works

Two entry points, and each one dispatches an event so you can hook in without touching this module.

The loop, in order

Status machine

requested is the only status born in Magento. Every other transition arrives from outside — this module records and displays them, it never decides.

A closed list. requested is the only one born in Magento; everything else arrives from outside.

Status Meaning
requested The customer opened the return
accepted Return authorised
rejected Refused — carries the reason shown to the customer (terminal)
in_transit The customer shipped the goods back
inspection Received, under review
approved Inspection passed
fraud Seal broken or tampered with
resolved_exchange Replacement delivered (terminal)
resolved_credit Credit issued, optionally with a coupon code (terminal)
returned The same item was sent back to the customer (terminal)
held Kept in quarantine (terminal)

What you get

Storefront

Admin

REST

Endpoint Purpose
GET /V1/rma?searchCriteria… Pull returns, typically by an updated_at cursor
POST /V1/rma/{rmaId}/status Push the decision back: status, message, credit amount, coupon

Both are guarded by the ACL resource Artaza_Rma::manage.

Events — artaza_rma_request_created and artaza_rma_status_updated, so another module can react (send a mail, notify the ERP) without patching this one.


Install

setup:upgrade creates artaza_rma and artaza_rma_item (the child table cascades on delete, and updated_at is indexed so a cursor pull stays cheap).

To let an external system in: System ▸ Extensions ▸ Integrations, create one, grant Artaza_Rma::manage, activate it and use its access token as Authorization: Bearer <token>. After changing the ACL, reauthorize the integration or its calls keep coming back 401.


Driving it

Pull what changed since your cursor:

Sort ascending by updated_at: that is what makes the cursor self-healing — a run that dies half-way resumes from the last record it actually absorbed instead of skipping ahead.

Push the decision back:

Everything except status is optional. adminMessage is what the customer reads, so a rejection should always carry one. Re-sending the same status is idempotent — the natural key is the RMA's increment_id.


Theme notes

The storefront templates target Hyvä. On a Luma-based theme the controllers, the model and the REST API work unchanged, but you will want to restyle the templates. Module styles live in view/frontend/web/css/module.css, not in the theme's build, so nothing is lost on a static-content:deploy.

Requirements

License

OSL-3.0 — the same license as the Magento core.

Sebastian Artaza · artaza.net · [email protected]


All versions of module-rma with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
magento/framework Version *
magento/module-backend Version *
magento/module-customer Version *
magento/module-email Version *
magento/module-sales Version *
magento/module-store Version *
magento/module-ui Version *
magento/module-webapi Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package artaza/module-rma contains the following files

Loading the files please wait ...