Plugin allowing to integrate marketing automation made by ActiveCampaign in Sylius.

Overview

ActiveCampaign Plugin

Sylius plugin to integrate the marketing # 1 automation platform

Build Status


What does this plugin do?

The SyliusActiveCampaignPlugin takes care of creating and updating contacts, connections, orders, and abandoned carts on ActiveCampaign.

Who is this plugin for?

Everyone! This plugin works for those who have never used ActiveCampaign before and also for those who already use ActiveCampaign and want to integrate it with Sylius.

How can I install the plugin on my Sylius store?

Please, check the documentation at the Installation step.

Is this plugin conformed to privacy?

This plugin does not check if the customers have given their consent for marketing purposes. Why? Simply because Sylius does not do it :). The framework (and the plugins so) should be very flexible to be used all over the world. It couldn't be possible to provide a solution for everyone, so, the responsibility to choose which customers, orders, and connections to export to ActiveCampaign is yours. Webgriffe does not take any responsibility for incorrect use of this integration and for not respecting the wishes of users on their eCommerce / website. At the same time, this plugin was designed with these issues in mind and is therefore easily customizable.

Where do I start?

First, we recommend that you read the entire documentation available at this link. Then you could start to install the plugin and use the basic features it gives such as the abandoned cart. You could also think to suggest some new features that this integration could add. So, let's start! 🚀

Comments
  • Export orders and carts only for already exported customers

    Export orders and carts only for already exported customers

    Changes proposed in this pull request:

    • Implements the OrderRepository to only exports orders and abandoned carts owned by a customer already exported to ActiveCampaign

    @webgriffe/wg-devs what do you think about this PR :shipit:?

    bug enhancement 
    opened by lruozzi9 1
  • Create/Update Contact on ActiveCampaign

    Create/Update Contact on ActiveCampaign

    • [x] #5
    • [x] Add ContactCreate Message and Handler
    • [x] Add ContactUpdate Message and Handler
    • [x] Add ContactRemove Message and Handler
    • [x] EventSubscriber dispatching the correct message based on Sylius domain events
      • [x] Create customer -> ContactCreate
      • [x] Update customer -> ContactUpdate
      • [x] Delete customer -> ContactRemove
    • [x] #6
    • [x] Implements createContact on client
    • [x] Implements updateContact on client
    • [x] Implements removeContact on client
    enhancement 
    opened by lruozzi9 1
  • Update phpstan/phpstan-webmozart-assert requirement from 0.12.12 to 0.12.16

    Update phpstan/phpstan-webmozart-assert requirement from 0.12.12 to 0.12.16

    Updates the requirements on phpstan/phpstan-webmozart-assert to permit the latest version.

    Release notes

    Sourced from phpstan/phpstan-webmozart-assert's releases.

    0.12.16

    • 0422ea8 - Add support for interfaceExists
    Commits
    • 0422ea8 Add support for interfaceExists
    • 978e524 Resolve Assert::minLength($s, 1+) to non-empty-string
    • 719bc82 Fix
    • c500936 add support for isArrayAccessible
    • 8925bd3 add support for methodExists and propertyExists
    • 9b093e3 modernise tests
    • e2155ab add support for inArray and oneOf
    • 1ede841 Fix
    • eb0dc44 Rewrite in backward compatibility compliant way
    • d6df6a0 chore: Use the latest PHPUnit wherever possible, use PHP 8.0 for PHPCS
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update phpstan/phpstan-doctrine requirement from 0.12.33 to 0.12.44

    Update phpstan/phpstan-doctrine requirement from 0.12.33 to 0.12.44

    Updates the requirements on phpstan/phpstan-doctrine to permit the latest version.

    Release notes

    Sourced from phpstan/phpstan-doctrine's releases.

    0.12.44

    • 5fe9a9b - Add allowNullablePropertyForRequiredField option
    Commits
    • 5fe9a9b Add allowNullablePropertyForRequiredField option
    • 134ecca EntityRepository stub - precise type for $_entityName property
    • 1d4ab0a EntityColumnRule - test Id without GeneratedValue
    • e317317 Update stubs to be more strict about mixed vs. object
    • 062fc75 Fix JsonType
    • 5532790 Allow JsonType to store any json-compatible type
    • c35261f Add Carbon descriptors via ReflectionDescriptor
    • 24f7283 Rewrite in backward compatibility compliant way
    • 748eaac Compatibility with latest PHPStan
    • 59b8c5f Bump PHPStan
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Remove tags and lists subscription from contact handlers (#53)

    Remove tags and lists subscription from contact handlers (#53)

    Fixes #53

    Changes proposed in this pull request:

    • Remove tags and lists subscription from contact handlers
    • Added command to send to ActiveCampaign all lists subscription
    • Added command to send to ActiveCampaign all tags for contact
    • Added command to update all list subscriptions status from ActiveCampaign
    • [x] Docs these commands
    enhancement 
    opened by lruozzi9 0
  • [BUG] - ContactTagsAdder and ContactListsSubscriber should not be dispatched by Contact update/create handler

    [BUG] - ContactTagsAdder and ContactListsSubscriber should not be dispatched by Contact update/create handler

    Describe the bug It is not a ContactCreate/UpdateHandler responsibility to dispatch the ContactTagsAdder and ContactListsSubscriber messages. Someone could prefer to handle these messages differently or at a different moment.

    bug 
    opened by lruozzi9 0
  • Update lists status subscription from ActiveCampaign (#44)

    Update lists status subscription from ActiveCampaign (#44)

    Fixes #44

    Changes proposed in this pull request:

    • Added update of lists status subscription from ActiveCampaign thanks to the AC's webhooks

    @webgriffe/wg-devs what do you think about this PR :shipit:?

    opened by lruozzi9 0
  • Add Contact List Subscription Message and Handler (#41)

    Add Contact List Subscription Message and Handler (#41)

    Fixes #41

    Changes proposed in this pull request:

    • Added a ContactListSubscriptionHandler to allow users to subscribe/unsubscribe contact to a given list

    @webgriffe/wg-devs what do you think about this PR :shipit:?

    enhancement 
    opened by lruozzi9 0
  • Add tags to a contact (#40)

    Add tags to a contact (#40)

    Fixes #40

    Changes proposed in this pull request:

    • Possibility to easily adding tags to a contact after a create/update contact event

    @webgriffe/wg-devs what do you think about this PR :shipit:?

    opened by lruozzi9 0
  • Handle list subscribtion for channel

    Handle list subscribtion for channel

    • [x] Add listId property on Channel and add form for edit it.
    • [x] Add list status on ChannelCustomer entity.
    • [x] Add ContactListsSubscriber message.
    • [x] Add ContactListsSubscriberHandler.
    • [x] Use CustomerChannelsResolverInterface to resolve the channels for which lists the contact should be subscribed/unconfirmed (this should be handled by the ListStatusResolverInterface[customer, channel]).
    • [ ] #43
    • [x] #44
    • [x] Do migration diff on update from v0.2.0
    • [x] Add Interface and Trait on Channel
    enhancement 
    opened by lruozzi9 0
  • Send Tag for contact

    Send Tag for contact

    Contextually with the create/update of the contact, it will be nice to send tags to add to the contact.

    • [x] Add Tag client
    • [x] Add ContactTagsAdder message
    • [x] Add ContactTagsAdderHandler
    • [x] Add ContactTagsResolverInterface to resolve tags to add to the contact
    enhancement 
    opened by lruozzi9 0
Releases(v0.3.0)
  • v0.3.0(May 23, 2022)

    First production-ready release

    This release is now production-ready! It means it is more stable as it is used in some production websites!

    Release notes

    Adjust your entity following the subsequent PR notes, then remember to run a migration diff and run it with:

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

    For other upgrade information have a look at the https://github.com/webgriffe/SyliusActiveCampaignPlugin/blob/master/UPGRADE-0.X.md file.

    What's Changed

    • Add tags to a contact (#40) by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/42
    • Add Contact List Subscription Message and Handler (#41) by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/45
    • Add list id form field in create channel form (#48) by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/50
    • Export orders and carts only for already exported customers by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/49
    • Add Connection factory (#46) by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/51
    • Update lists status subscription from ActiveCampaign (#44) by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/52
    • Remove tags and lists subscription from contact handlers (#53) by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/55
    • Catch exception on enqueuers also on command by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/57
    • Fix order subscriber to not enqueue cart without customer by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/58
    • Use 0 as default ecommerce order discount amount by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/59
    • Use FQCN injected for factory services (#47) by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/54
    • Track customers interactions with the website (#39) by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/61

    Full Changelog: https://github.com/webgriffe/SyliusActiveCampaignPlugin/compare/v0.2.0...v0.3.0

    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Apr 12, 2022)

    What's Changed

    • Fix installation documentation by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/37
    • Use findAllToEnqueue method on ChannelsResolver to use the same method of connection exporters (#36) by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/38
    • Add CONTRIBUTING.md and CODE_OF_CONDUCT.md (#30) by @lruozzi9 in https://github.com/webgriffe/SyliusActiveCampaignPlugin/pull/31

    Full Changelog: https://github.com/webgriffe/SyliusActiveCampaignPlugin/compare/v0.1.0...v0.2.0

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Mar 31, 2022)

    Initial release

    We are happy to release the first initial version of the SyliusActiveCampaignPlugin. Please, check out the documentation to get started!

    Initial Contributors

    • @LucaGallinari
    • @lruozzi9

    Full Changelog: https://github.com/webgriffe/SyliusActiveCampaignPlugin/commits/v0.1.0

    Source code(tar.gz)
    Source code(zip)
Owner
Webgriffe®
Webgriffe®
YCOM Impersonate. Login as selected YCOM user 🧙‍♂️in frontend.

YCOM Impersonate Login as selected YCOM user in frontend. Features: Backend users with admin rights or YCOM[] rights, can be automatically logged in v

Friends Of REDAXO 17 Sep 12, 2022
CPAY is a sdk that encapsulates the Orange Money api with an intuitive syntax allowing you to integrate the Orange Money payment into your PHP project.

CPAY CHOCO PAY is a sdk that encapsulates the Orange Money api with an intuitive syntax allowing you to integrate the Orange Money payment into your P

faso-dev 1 Oct 26, 2022
Arc meta - Textpattern plugin for meta tags to improve site SEO and social marketing.

arc_meta A Textpattern plugin for meta tags to improve site SEO and social marketing. arc_meta adds meta fields to your article, section and category

Andy Carter 3 Jan 20, 2017
Extends the Debug Bar plugin for the Sophi.io Site Automation service.

Debug Bar for Sophi Extends the Debug Bar plugin for the Sophi.io Site Automation service. Requirements PHP 7.4+ WordPress 5.6+ Sophi 1.1.0+ Debug Bar

10up 2 Jun 22, 2022
Jéssica Paula 7 Aug 12, 2022
FULL, FREE and SUPPORTED integration with MailChimp Email Marketing for Magento 2.

MageMonkey has been deprecated, please use MailChimp for Magento instead MailChimp official Magento extension Support MageMonkey, Subscribe for a free

Ebizmarts 47 May 23, 2022
MajorDoMo is an open-source DIY smarthome automation platform aimed to be used in multi-protocol and multi-services environment.

MajorDoMo (Major Domestic Module) is an open-source DIY smarthome automation platform aimed to be used in multi-protocol and multi-services environment. It is based on web-technologies stack and ready to be delivered to any modern device. It is very flexible in configuration with OOP paradigm used to set up automation rules and scripts. This platform can be installed on almost any personal computer running Windows or Linux OS.

Sergei Jeihala 369 Dec 30, 2022
WHMCS Automation Module For AWS EC2 Instances.

使用方法 把AWSEC2目录直接扔到 WHMCS/modules/servers 下即可 自定义字段 cloudinit (文本框 textarea 在订单页面显示) pem (文本框 textarea 仅管理员可见) data (文本框 textarea 仅管理员可见) 特性 动态IP (关机再开

CoiaPrant 9 Jan 28, 2022
A bot written in PHP which attempts to link IRC with SQL database, allowing for integration between platforms

Valeyard IRC-SQL-GateWay A bot written in PHP which attempts to link IRC with SQL database, allowing for integration between platforms. This bot is mo

Valerie Pond 10 Oct 6, 2022
Silverstripe-searchable - Adds to the default Silverstripe search by adding a custom results controller and allowing properly adding custom data objects and custom fields for searching

SilverStripe Searchable Module UPDATE - Full Text Search This module now uses Full Text Support for MySQL/MariaDB databases in version 3.* Adds more c

ilateral 13 Apr 14, 2022
Silverstripe module allowing editors to create newsletters using elemental blocks and export them to a sendy instance

Silverstripe Sendy Silverstripe module allowing editors to create newsletters using elemental blocks and export them to a sendy instance. Introduction

Syntro Opensource 4 Apr 20, 2022
Magento 2 GDPR extension Free by Magepow helps websites comply with GDPR regulations, allowing customers to control personal data and avoid penalties.

Magento 2 GDPR extension Free by Magepow helps websites comply with GDPR regulations, allowing customers to control personal data and avoid penalties.

https://magepow.com 10 Dec 30, 2022
A Magento 2 module that allows for creating discrete PDP (Product Detail Pages) page layouts for customers landing on the site from a PPC (Pay Per Click) link/ad by allowing routing to the same pages using a `/ppc/` prefix in the URL path.

A Magento 2 module that allows for creating discrete PDP (Product Detail Pages) page layouts for customers landing on the site from a PPC (Pay Per Click) link/ad by allowing routing to the same pages using a `/ppc/` prefix in the URL path.

null 16 Nov 11, 2022
✨An Ultimate NPC plugin made by brokiem for PocketMine-MP.

SimpleNPC An Ultimate NPC plugin made by brokiem for PocketMine-MP. ✨ Features Migration from Slapper supported! ✔ Right click to interact! ✔ NPC can

broki 53 Jan 1, 2023
A Lotto plugin made with Pocketmine.

LottoPlugin Features Compatibility with Pocketmine 3.X.X Full Customization Automatic Launch Automatic Draw Usage Initialisation You have to install P

null 3 Nov 20, 2022
ScrimAZ is a plugin made to help find cheaters.

ScrimAZ is an anti-cheat made to find hackers.

Sayaka 1 Jul 24, 2022
A first party module to integrate Elastic App Search in Magento 2.

A first-party Magento integration for building excellent, relevant search experiences with Elastic App Search. ⚠️ This is a beta version of the client

elastic 25 Apr 22, 2022
The Laravel eCommerce ABA Payment Gateway module allows the admin to integrate the ABA payment gateway to the online store.

Introduction Bagisto ABA Payment Gateway. Requirements: Bagisto: v1.3.2. Installation with composer: Run the following command composer require bagist

Bagisto 3 May 31, 2022
With the help of the Laravel eCommerce CashU Payment Gateway, the admin can integrate the CashU payment method in the Bagisto store.

Introduction Bagisto CashU Payment add-on allow customers to pay for others using CashU payment gateway. Requirements: Bagisto: v1.3.2 Installation wi

Bagisto 2 Aug 22, 2022