setono/sylius-partner-ads-plugin

Sylius 插件,集成了合作伙伴广告跟踪功能。

v2.2.1 2023-12-19 12:07 UTC

README

Latest Version Software License Build Status

此插件将跟踪由合作伙伴广告联盟产生的销售。

它通过在访问者访问您商店的任何页面时保存联盟伙伴 ID 来工作。然后,当用户成功完成订单时,它将向合作伙伴广告发送一个 HTTP 请求,告诉他们给联盟伙伴计费。

安装

步骤 1:下载插件

composer require setono/sylius-partner-ads-plugin

步骤 2:启用插件

然后,通过将插件添加到项目 config/bundles.php 文件中注册的插件/包列表中,在 SyliusGridBundle 之前启用插件。

<?php
# config/bundles.php
return [
    Setono\SyliusPartnerAdsPlugin\SetonoSyliusPartnerAdsPlugin::class => ['all' => true],
    Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true],
];

步骤 3:配置插件

# config/packages/_sylius.yaml
imports:
    # ...
    - { resource: "@SetonoSyliusPartnerAdsPlugin/Resources/config/app/config.yaml" }
    # ...

步骤 4:导入路由

# config/routes/setono_sylius_partner_ads.yaml
setono_partner_ads_plugin:
    resource: "@SetonoSyliusPartnerAdsPlugin/Resources/config/routing.yaml"

步骤 5:HTTP 客户端

如果您已经使用了一个 PSR18 HTTP 客户端,则需要注入该服务

setono_sylius_partner_ads:
    http_client: '@http_client_service_id'

如果没有,您可以直接使用 composer Buzz 库,它将自动将 Buzz 客户端注册为 HTTP 客户端

$ composer require kriswallsmith/buzz

步骤 6:更新数据库模式

$ php bin/console doctrine:migrations:diff
$ php bin/console doctrine:migrations:migrate

步骤 7:设置程序

登录到您的 Sylius 应用程序管理员界面,转到合作伙伴广告页面,点击“创建”以创建一个新的程序。填写您的合作伙伴广告程序程序 ID,确保“启用”已切换开,并选择程序应用到的渠道。请注意,您应该为每个渠道创建一个程序,否则您可能会遇到未定义的行为。

步骤 8(可选,但推荐):配置异步 HTTP 请求

此插件会在客户完成订单时向合作伙伴广告发送一个 HTTP 请求。这将使“感谢”页面加载变慢。为了解决这个问题,您可以使用 RabbitMQ 与 Symfony Messenger 来异步发送此 HTTP 请求。

请按照以下安装说明操作:[如何使用 Messenger](https://symfony.com.cn/doc/current/messenger.html) 以及 [配置传输](https://symfony.com.cn/doc/current/messenger.html#transports)。

基本操作应该是

$ composer req messenger symfony/serializer-pack

然后配置 Messenger 组件

# config/packages/messenger.yaml
framework:
    messenger:
        transports:
            amqp: "%env(MESSENGER_TRANSPORT_DSN)%"
# .env
###> symfony/messenger ###
MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
###< symfony/messenger ###

最后配置插件以使用您的传输

setono_sylius_partner_ads:
    messenger:
        transport: amqp

在此之后,Messenger 将自动在此插件中启用,并随后将发送异步请求到合作伙伴广告而不是同步请求。

出于测试目的,您可以在以下位置注册免费的 RabbitMQ 云服务:[CloudAMQP](https://www.cloudamqp.com/plans.html)。