Download the PHP package montu/module-affiliate without Composer

On this page you can find all versions of the php package montu/module-affiliate. 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-affiliate

Montu Affiliate — Extensión de Magento 2 (montu/module-affiliate)

Paquete Composer del módulo Montu_Affiliate: captura códigos de afiliados en el storefront y envía webhooks firmados con la información de las órdenes a la plataforma Montu.

Este directorio es el paquete Composer (raíz = raíz del módulo). No contiene una instalación de Magento ni entorno Docker — solo el código del módulo, instalable vía Composer en cualquier proyecto Magento 2.

✨ Características


📦 Instalación vía Composer

El paquete está publicado en Packagist público, así que la instalación es directa, sin configurar repositorios:

Requisitos: Magento 2.4.x y PHP 8.1+.

Instalación para desarrollo (monorepo / repositorio path) Este paquete vive como subcarpeta `magento/` del monorepo de Montu. Para trabajar contra el código en disco (cambios en vivo), apunta Composer a la carpeta con un repo `path`: `symlink: true` enlaza la carpeta; usa `"symlink": false` para que Composer **copie** el paquete (recomendado en builds/deploys).

El composer.json no fija version: Composer toma la versión de los tags git del repo publicado en Packagist (git tag v1.0.0), así que puedes fijar ^1.0 si lo necesitas.

Activar el módulo (después de composer require)


⚙️ Configuración

Stores → Configuration → Montu → Affiliate Tracking

Campo Descripción Default
Enable Module Activa la extensión No
URL Parameter Parámetro a capturar _m_aff
Cookie Name Nombre de la cookie _montu_aff_ref_code
Cookie Lifetime Días de duración 15
Enable Webhook Activa webhooks No
Webhook URL URL de tu endpoint -
API Key Tu API key (almacenada encriptada) -

Storefront del afiliado (sección Affiliate Storefront)

Campo Descripción Default
Enable Storefront Page Activa la ruta /storefront/{code} No
Route Path Prefix Prefijo de la URL pública storefront
Page Heading Título de la página Recommended products
Recommendations Endpoint URL Endpoint Montu de productos recomendados -
Storefront Language Idioma de la página: en_US, es_ES o es_CL (Chile) en_US
Max Products Máximo de productos a mostrar 12

Idioma: Magento no hace fallback de es_CL → es_ES, por eso el módulo incluye traducciones propias para Chile (i18n/es_CL.csv). Para una tienda chilena, selecciona Spanish (Chile).

Apariencia / White-label (sección Appearance)

El storefront es white-label: adopta los colores y la tipografía de la tienda automáticamente. Todos los colores, bordes, radios de tarjeta y la fuente se controlan por variables CSS.

Campo Descripción Default
Theme Mode Auto (muestrea el tema de la tienda en runtime), Manual (usa los colores de abajo) u Off (estilo neutro) Auto
Accent / Primary Color Color principal (botones, lista activa, resaltados). Acepta #hex, rgb()/rgba() o nombre CSS (muestreado)
Accent Text Color Color de texto legible sobre el acento #ffffff
Body Text Color Color de texto del storefront (vacío → hereda el tema) (heredado)
Muted Text Color Color de texto secundario (conteos, subtítulos) #6d6d6d
Border Color Color de bordes/divisores #e3e3e3
Card Background Color Fondo de las tarjetas de producto #ffffff
Card Corner Radius Radio de esquina de las tarjetas (10px, 0, 0.5rem) 10px
Font Family Stack de fuentes del storefront (vacío → hereda la fuente del tema) (heredado)

🛍️ Tienda del Afiliado (/storefront/{code})

Un visitante puede entrar con un código de afiliado de dos formas, y en ambas se guarda la cookie con el código:

  1. Query param — https://tienda.com/?_m_aff=ABC123 (capturado por JS).
  2. Ruta storefront — https://tienda.com/storefront/ABC123, que además renderiza una página con los productos que ese afiliado recomienda.

La ruta la resuelve un router personalizado (Controller/Router.php) que toma el código del path y reenvía a Controller/Storefront/Index.php. El controlador valida el código (^[a-zA-Z0-9_\-]{1,100}$), escribe la cookie en el servidor (mismo nombre/duración que la captura por JS) y renderiza la página, declarada cacheable="false" para que el Full Page Cache / Fastly nunca la sirva cacheada.

Los productos se obtienen vía Service/RecommendationClient.php desde el endpoint de recomendaciones de Montu (GET /montu/api/v1/ecommerce/magento/recommendations/{store_id}/{code}), firmado con HMAC-SHA256 (igual que el webhook). Configura Recommendations Endpoint URL en admin con la URL terminada en el id de tienda. La forma esperada del JSON está documentada en RecommendationClient::parseResponse(). Si el endpoint falla o no responde, la página degrada con elegancia (datos de ejemplo) en vez de romperse.

Full Page Cache / Fastly: la ruta /storefront/{code} está declarada cacheable="false", así que el FPC/Fastly nunca la cachea (es por-afiliado y escribe la cookie). El JS de captura (tracking.js) lee el parámetro ?_m_aff= en el cliente, así que funciona aunque el resto de las páginas estén cacheadas.

Queue-it / Klevu / reglas de path: si la tienda tiene una sala de espera virtual o un proxy de búsqueda delante del storefront, agrega el prefijo de la ruta (/storefront/...) a la lista de paths permitidos para que no sea interceptado.


🔄 Cómo Funciona

  1. Captura — view/frontend/web/js/tracking.js guarda ?_m_aff= en cookie.
  2. Persistir al carrito — Observer/SaveAffiliateToQuote (checkout_cart_save_after).
  3. Vincular a orden — Observer/CopyAffiliateToOrder (sales_model_service_quote_submit_success).
  4. Encolar webhook — Observer/SendOrderWebhook (checkout_submit_all_after) si la orden tiene código de afiliado o cupón.
  5. Entregar async — Cron/ProcessWebhooks → Service/WebhookService (Curl + HMAC + reintentos).

📊 Sistema de Reintentos

Intento 1º 2º 3º 4º 5º
Espera 1 min 5 min 15 min 30 min 1 hora

Tras el 5º intento el webhook se marca como max_retries.


📨 Formato del Webhook

Headers

Body (JSON)

El backend valida la firma y rechaza timestamps de más de 5 minutos (anti-replay). El receptor vive en el backend Django: back/montu/rest_api/v1/views/ecommerce/magento/. Cualquier cambio al payload aquí requiere el cambio correspondiente allá, en sincronía.


🧪 Testing Local

  1. URL de prueba en webhook.site.
  2. En admin → Webhook URL: https://webhook.site/tu-uuid, API Key: test-key-123.
  3. Visitar https://tu-tienda.test/?_m_aff=TEST123, verificar cookie, crear una orden, y:

📁 Estructura del paquete

Tablas propias (nunca toca core)


🗑️ Desinstalación


Requisitos

Licencia

Open Software License 3.0 (OSL-3.0) — ver LICENSE.txt.

Soporte

[email protected]


All versions of module-affiliate with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
magento/framework Version >=103.0
magento/module-sales Version >=103.0
magento/module-checkout Version >=100.4
magento/module-store Version >=101.1
magento/module-quote Version >=101.2
magento/module-config Version >=101.2
magento/module-catalog Version >=104.0
magento/module-catalog-inventory Version >=100.4
magento/module-configurable-product Version >=100.4
magento/module-swatches Version >=100.4
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 montu/module-affiliate contains the following files

Loading the files please wait ...