klaviyo / magento2-extension

klaviyo/magento2-extension

Klaviyo extension for Magento 2. Allows pushing newsletters to Klaviyo's platform and more.

magento2-module 2.4.6-2.4.9 Compatible Based on composer requirements only QA: failed
Viewing version 3.0.4-patch. Latest version is 5.0.0. Switch to latest

Klaviyo for Magento 2

Klaviyo extension for Magento 2. Allows pushing newsletters to Klaviyo's platform and more.

Features

  • Identifies users

    • Go to sign in or create account
    • Sign in or create account
    • Go to another page and inspect source for identify call with email, firstname, and lastname
  • Tracks viewing an item (catalog product)

    • Only will work if user is signed in
    • Inspect page source, find learnq snippet and see what PHP is echoing out
    • Should be a Viewed Product track call with product details
  • Saves checkout emails

    • Add some items to your cart and go to checkout page
    • In console see: Klaviyo_Reclaim - Binding to #customer-email
    • Change email
    • See Klaviyo_Reclaim - Quote updated with customer email: [email protected]
    • Make sure AJAX call comes back with checkout / quoute JSON
  • Sync Newsletter (Un)Subscribes to a Klaviyo List

    • This feature covers workflows where a Customer (un)subscribes from the following places:
      • Box at the bottom of every page
      • On account creation
      • Through their account settings
      • Through Customer Newsletter settings on the admin side
  • Abandoned Cart

    • Given a quote ID, a URL can be crafted that will load a Customer's cart with a quote
  • OAuth Integration Configuration

    • Automates the creation and configuration of the OAuth Integration:
      • Callback URL
      • Identity Link URL
      • Resource Access permissions

Prerequisites

Magento 2

Install

  • log into the Magento 2 server and cd into the root directory of the Magento app:
    - Execute the following commands:
    • composer require klaviyo/magento2-extension
    • php bin/magento module:enable Klaviyo_Reclaim --clear-static-content
    • php bin/magento setup:upgrade
    • php bin/magento setup:static-content:deploy -f

Setup

  • From admin:
    • Go to stores > configuration
    • Find Klaviyo in sidebar
    • Open General
    • Enable Klaviyo
    • Add Klaviyo public API key
    • For syncing Newsletter Subscribe/Unsubscribes: also add your Klaviyo private API key
    • To enable error logging: set "Enable Klaviyo Logger" to "Yes"
    • Save config
  • For syncing Newsletter Subscribe/Unsubscribes:
    • Open Newsletter from the sidebar
    • The page should load with your lists from Klaviyo
    • Select a list
    • Save config
  • To set up Email or SMS Consent at Checkout
    • Open Consent at Checkout from the sidebar
    • Configure for each respective section:
      • Email
        • Select if want to Subscribe contacts to email marketing at checkout
        • Select list from drop down where to add the contacts if they choose to subscribe
        • Enter text for checkbox selection to email marketing
      • SMS
        • Select if want to Subscribe contacts to SMS marketing at checkout
        • Select list from drop down where to add the contacts if they choose to subscribe
        • Enter text for checkbox selection to email marketing
        • Enter disclosure text that appears alongside the checkbox selection
  • To set up Webhooks
    • Open Webhooks from the sidebar
    • create a webhook secret and enter it into the corresponding Webhook Secret field
    • select Yes for Use Product Delete Webhook?
  • To setup OAuth integration with Klaviyo
    • Open Setup OAuth from the sidebar
    • Enter integration name
    • Save config

Making updates

  1. Follow Klaviyo's standard process of making a pull request and getting it reviewed before merging.
  2. Update CHANGELOG.md. Details on formatting the changelog (including categorizing changes) can be found here: keepachangelog.com
    1. If this is a change that will not immediately get sent along to Magento i.e. not a version update:
      1. Add any changes under the [Unreleased] section. This will be a comparision of the most recent commits to the latest tagged version.
    2. If this is a version update:
      1. Make sure to increment the version in two places:
        1. module.xml
        2. composer.json
      2. Add a new version between [Unreleased] and the most recent version. Include the incremented version number following semantic versioning practices and the date. Add your changes under this version.
      3. Move any unreleased changes into your version update under the appropriate categories.
      4. Update the [Unreleased] link to point from your new version to HEAD e.g. if you're updating to version 1.0.2 you'd update the link from 1.0.1...HEAD to 1.0.2...HEAD.
      5. Add a link to your new version. The tag won't yet exist but you can create a link to the tag you will create shortly. Follow the pattern of previous links.
  3. Upon approval merge your changes into master.
    1. If this is a version update:
      1. Checkout the master branch locally, make sure to pull down any changes that were just merged.
      2. Use git log to find the merge commit's checksum.
      3. Tag this commit with the version you just incremented: git tag -a {version} aeb8c682cebe7acee94506d3e4bfff2e5755e8c1 or just use git tag -a {version}.
      4. Push the tag to the remote repository: git push origin 1.0.1 replacing with the version you've just tagged.

Support

Contact [email protected]

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

Unreleased

[3.0.4-patch] - 2024-02-01

Deprecated

  • Removed usage of Klaviyo's V1/V2 APIs, which will be retired on June 30, 2024

Added

  • Support for Klaviyo's V3 APIs

3.0.4 - 2021-06-08

Fixed

  • Use Magento\Framework\Api\SearchResults to support Magento 2 versions 2.3.0 to 2.3.3

3.0.3 - 2021-06-01

Added

  • OAuth observer to create Magento2 Integration OAuth configuration

Removed

  • Section about Setup Klaviyo User

3.0.2 - 2021-05-26

Fixed

  • Missing quote in module

3.0.1 - 2021-05-26

Fixed

  • Typo in cart rebuild constructor di

3.0.0 - 2021-05-25

Added

  • Only support Magento 2.3.* +

Fixed

  • Utilize masked quote ids.
  • Extend cart/search getList api to contain masked Ids.

2.2.0 - 2021-05-17

Fixes

  • Update checkout to not use quote for rebuilding

2.1.1 - 2021-05-17

Fixed

  • Use store ids instead of website ids in the ProductDeleteBefore Observer
  • Check for versions older than 2.0.0 in UpgradeSchema

2.1.0 - 2021-03-22

Added

  • SMS Consent at checkout
  • Email consent at checkout
  • Consent at checkout admin tab

Fixed

  • Email consent now recorded when Klaviyo list opt-in settings are used
  • Escaped html for public api key

2.0.0 - 2021-01-11

Added

  • Product delete observer webhook to send to Klaviyo catalog
  • Webhook secret form field for webhook validation

Changed

  • Removed csp setting
  • Removed csp mode from config.xml
  • Added a.fast.klaviyo.com to img-src csp whitelist

1.2.4 - 2020-12-01

Added

  • Create CHANGELOG.md

Changed

  • Update to README.md to share contribution guidelines
  • Use List API V2 for fetching newsletter lists

Fixed

  • Remove JQuery UI as a dependency since it is unused

1.2.3 - 2020-10-09

Changed
  • Removes unused variable and DI from Reclaim.php
  • CSP now uses report-only mode

NOTE

  • The CHANGELOG was created on 2020-11-20 and does not contain information about earlier releases
Versions
Version Stability QA Status Released
5.0.0 stable Fail 2026-05-29 16:38:30
4.4.4 stable Not tested 2026-04-30 20:07:10
4.4.3 stable Not tested 2026-02-18 16:08:59
4.4.2 stable Not tested 2025-11-05 20:52:05
4.4.1 stable Not tested 2025-09-15 20:20:39
4.4.0 stable Not tested 2025-09-04 12:06:20
4.3.1 stable Not tested 2025-05-12 13:42:35
4.3.0 stable Not tested 2025-04-22 13:45:54
4.2.0 stable Not tested 2024-09-24 14:21:36
4.1.4 stable Not tested 2024-05-23 17:52:25
4.1.3 stable Not tested 2024-03-29 20:00:57
3.0.11-patch stable Not tested 2024-02-08 21:24:42
3.0.4-patch stable Not tested 2024-02-06 22:01:52
2.2.0-patch stable Not tested 2024-02-06 21:42:44
4.1.2 stable Not tested 2024-01-31 19:41:54
4.1.1 stable Not tested 2023-12-13 18:53:40
4.1.0 stable Not tested 2023-09-29 19:27:53
4.0.12 stable Not tested 2023-07-20 22:48:08
4.0.11 stable Not tested 2023-04-10 15:51:24
4.0.10 stable Not tested 2023-03-02 16:59:04
4.0.9 stable Not tested 2023-01-03 22:03:52
4.0.8 stable Not tested 2022-11-10 21:06:57
4.0.7 stable Not tested 2022-11-01 23:27:51
4.0.6 stable Not tested 2022-09-19 19:09:38
4.0.5 stable Not tested 2022-07-28 21:30:02
4.0.4 stable Not tested 2022-05-24 21:09:09
4.0.2 stable Not tested 2022-03-16 18:37:47
4.0.1 stable Not tested 2022-02-02 00:10:17
4.0.0 stable Not tested 2022-01-20 12:57:54
3.0.11 stable Not tested 2021-12-21 15:51:52
4.0.0-beta beta Not tested 2021-12-15 17:27:31
3.0.10 stable Not tested 2021-11-16 02:04:17
3.0.9 stable Not tested 2021-09-22 20:51:07
3.0.8 stable Not tested 2021-09-09 17:16:38
3.0.7 stable Not tested 2021-08-30 14:39:06
3.0.6 stable Not tested 2021-07-01 17:22:18
3.0.5 stable Not tested 2021-06-08 20:23:48
3.0.4 stable Not tested 2021-06-08 18:37:41
3.0.3 stable Not tested 2021-06-02 11:38:05
3.0.2 stable Not tested 2021-05-26 16:57:46
3.0.1 stable Not tested 2021-05-26 16:13:44
3.0.0 stable Not tested 2021-05-25 13:46:16
2.2.0 stable Not tested 2021-05-25 13:09:08
2.1.1 stable Not tested 2021-05-17 22:04:44
2.1.0 stable Not tested 2021-03-24 14:16:49
2.0.0 stable Not tested 2021-01-11 18:25:55
1.2.4 stable Not tested 2020-12-01 13:31:52
1.2.3 stable Not tested 2020-10-09 16:58:40
1.2.2 stable Not tested 2020-07-14 13:56:48
1.2.1 stable Not tested 2020-07-13 13:22:13
1.2.0 stable Not tested 2020-06-10 14:30:03
1.1.10 stable Not tested 2020-04-27 14:59:16
1.1.9 stable Not tested 2020-04-06 19:10:43
1.1.8 stable Not tested 2020-02-06 17:57:56
1.1.7 stable Not tested 2020-01-29 16:22:17
1.1.6 stable Not tested 2019-11-22 16:08:28
1.1.5 stable Not tested 2019-11-05 15:35:39
1.1.4 stable Not tested 2019-09-23 21:26:01
1.1.3 stable Not tested 2019-08-21 16:06:46
1.1.2 stable Not tested 2019-07-31 15:45:01
1.1.1 stable Not tested 2019-07-30 15:00:08
1.1.0 stable Not tested 2019-07-24 19:51:53
1.0.9 stable Not tested 2019-07-24 18:58:33
1.0.8 stable Not tested 2019-06-06 17:39:24
1.0.7 stable Not tested 2019-05-01 15:37:06
1.0.6 stable Not tested 2019-04-22 14:56:03
1.0.5 stable Not tested 2018-05-08 19:52:14
1.0.4 stable Not tested 2018-05-04 15:11:47
1.0.3 stable Not tested 2017-12-13 21:35:43
1.0.2 stable Not tested 2017-10-02 17:00:55
1.0.1 stable Not tested 2017-03-22 21:08:48
1.0.0 stable Not tested 2017-02-17 18:20:05

Requires 4

Package Constraint
php ^8.1
magento/module-quote >=101.1.3
ext-curl *
giggsey/libphonenumber-for-php ^9.0

No QA results yet

QA pipelines haven't run for this version. Status appears here once the vendor publishes a tagged release that gets ingested.

No license declared

This package's composer.json doesn't declare a license, homepage, or authors. Check the source repository for terms of use.

Make it pay

Turn an existing module into recurring revenue.

If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.