Referral Marketing Bundle for Sylius E-Commerce. Provides customers to send invitations to each other by e-mail and win coupons
$ composer require workouse/sylius-referral-marketing-plugin
Add plugin dependencies to your config/bundles.php
file:
return [
...
Workouse\SyliusReferralMarketingPlugin\WorkouseReferralMarketingPlugin::class => ['all' => true],
];
Import required config in your config/packages/_sylius.yaml
file:
# config/packages/_sylius.yaml
imports:
...
- { resource: "@WorkouseSyliusReferralMarketingPlugin/Resources/config/config.yml" }
Import routing in your config/routes.yaml
file:
# config/routes.yaml
...
workouse_referral_marketing_plugin:
resource: "@WorkouseSyliusReferralMarketingPlugin/Resources/config/routing.yml"
Extend entity
<?php
declare(strict_types=1);
namespace App\Entity\Promotion;
use Doctrine\ORM\Mapping as ORM;
use Workouse\SyliusReferralMarketingPlugin\Entity\PromotionCouponTrait;
use Sylius\Component\Core\Model\PromotionCoupon as BasePromotionCoupon;
/**
* @ORM\Entity
* @ORM\Table(name="sylius_promotion_coupon")
*/
class PromotionCoupon extends BasePromotionCoupon
{
use PromotionCouponTrait;
// ...
}
Configuration in your config/routes.yaml
file:
#config/packages/workouse_referral_marketing.yml
workouse_referral_marketing:
service: 'workouse_referral_marketing_plugin.promotion'
referrer_promotion_code: 'referrer_promotion'
invitee_promotion_code: 'invitee_promotion'
Finish the installation by updating the database schema and installing assets:
$ bin/console doctrine:migrations:diff
$ bin/console doctrine:migrations:migrate
$ bin/console cache:clear
$ composer install
$ cd tests/Application
$ yarn
$ yarn build
$ bin/console assets:install public -e test
$ bin/console doctrine:database:create -e test
$ bin/console doctrine:schema:create -e test
$ bin/console server:run 127.0.0.1:8080 -d public -e test
$ open http://localhost:8080
$ vendor/bin/behat