Commit afe1e2a1 by lmf

添加fb像素扩展

parent 0810bf27
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Block;
use Magento\Customer\CustomerData\SectionSourceInterface;
class AddToCart implements SectionSourceInterface
{
/**
* @var \Bss\FacebookPixel\Model\SessionFactory
*/
protected $fbPixelSession;
/**
* AddToCart constructor.
* @param \Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
*/
public function __construct(
\Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
) {
$this->fbPixelSession = $fbPixelSession;
}
/**
* Get data
*
* @return array
*/
public function getSectionData()
{
$data = [
'events' => []
];
if ($this->fbPixelSession->create()->hasAddToCart()) {
// Get the add-to-cart information since it's unique to the user
// but might be displayed on a cached page
$data['events'][] = [
'eventName' => 'AddToCart',
'eventAdditional' => $this->fbPixelSession->create()->getAddToCart()
];
}
return $data;
}
}
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Block;
/**
* Class Code
* @package Bss\FacebookPixel\Block
*/
class Code extends \Magento\Framework\View\Element\Template
{
/**
* @var \Magento\Store\Model\StoreManagerInterface
*/
protected $storeManager;
/**
* @var \Bss\FacebookPixel\Helper\Data
*/
protected $helper;
/**
* @var \Magento\Framework\Registry
*/
protected $coreRegistry;
/**
* @var \Magento\Catalog\Helper\Data
*/
protected $catalogHelper;
/**
* @var \Magento\Checkout\Model\SessionFactory
*/
protected $checkoutSession;
/**
* @var \Bss\FacebookPixel\Model\SessionFactory
*/
protected $fbPixelSession;
/**
* Code constructor.
* @param \Magento\Framework\View\Element\Template\Context $context
* @param \Bss\FacebookPixel\Helper\Data $helper
* @param \Magento\Framework\Registry $coreRegistry
* @param \Magento\Catalog\Helper\Data $catalogHelper
* @param \Magento\Checkout\Model\SessionFactory $checkoutSession
* @param \Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
* @param array $data
*/
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Bss\FacebookPixel\Helper\Data $helper,
\Magento\Framework\Registry $coreRegistry,
\Magento\Catalog\Helper\Data $catalogHelper,
\Magento\Checkout\Model\SessionFactory $checkoutSession,
\Bss\FacebookPixel\Model\SessionFactory $fbPixelSession,
array $data = []
) {
$this->storeManager = $context->getStoreManager();
$this->helper = $helper;
$this->coreRegistry = $coreRegistry;
$this->catalogHelper = $catalogHelper;
$this->checkoutSession = $checkoutSession;
$this->fbPixelSession = $fbPixelSession;
parent::__construct($context, $data);
}
/**
* @return int
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function checkDisable()
{
$data = $this->getFacebookPixelData();
$action = $data['full_action_name'];
$listDisableCode = $this->helper->listPageDisable();
if (($action == 'checkout_onepage_success'
|| $action == 'onepagecheckout_index_success') && in_array('success_page', $listDisableCode)) {
return 404;
} elseif ($action == 'customer_account_index' && in_array('account_page', $listDisableCode)) {
return 404;
} elseif (($action == 'cms_index_index' || $action == 'cms_page_view')
&& in_array('cms_page', $listDisableCode)) {
return 404;
} else {
return $this->checkDisableMore($action, $listDisableCode);
}
}
/**
* @param string $action
* @param array $listDisableCode
* @return int
*/
private function checkDisableMore($action, $listDisableCode)
{
$arrCheckout = [
'checkout_index_index',
'onepagecheckout_index_index',
'onestepcheckout_index_index',
'opc_index_index'
];
if (in_array($action, $arrCheckout) && in_array('checkout_page', $listDisableCode)) {
return 404;
}
if ($action == 'catalogsearch_result_index' && in_array('search_page', $listDisableCode)) {
return 404;
}
if ($action == 'catalog_product_view' && in_array('product_page', $listDisableCode)) {
return 404;
}
if ($action == 'customer_account_create' && in_array('registration_page', $listDisableCode)) {
return 404;
}
return $this->checkDisableMore2($action, $listDisableCode);
}
/**
* @param string $action
* @param array $listDisableCode
* @return int
*/
private function checkDisableMore2($action, $listDisableCode)
{
if (($action == 'catalogsearch_advanced_result'
|| $action == 'catalogsearch_advanced_index') && in_array('advanced_search_page', $listDisableCode)) {
return 404;
}
if ($action == 'catalog_category_view' && in_array('category_page', $listDisableCode)) {
return 404;
}
return 'pass';
}
/**
* @return false|int|string
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getProduct()
{
$productData = 404;
$data = $this->getFacebookPixelData();
$action = $data['full_action_name'];
if ($action == 'catalog_product_view' && $this->helper->isProductView()) {
if ($this->getProductData() !== null) {
$productData = $this->helper->serializes($this->getProductData());
}
}
return $productData;
}
/**
* @return false|int|string
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getCategory()
{
$categoryData = 404;
$data = $this->getFacebookPixelData();
$action = $data['full_action_name'];
if ($action == 'catalog_category_view' && $this->helper->isCategoryView()) {
if ($this->getCategoryData() !== null) {
$categoryData = $this->helper->serializes($this->getCategoryData());
}
}
return $categoryData;
}
/**
* @return array|int
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getOrder()
{
$orderData = 404;
$data = $this->getFacebookPixelData();
$action = $data['full_action_name'];
if ($action == 'checkout_onepage_success'
|| $action == 'onepagecheckout_index_success'
|| $action == 'multishipping_checkout_success') {
$orderData = $this->getOrderData();
}
return $orderData;
}
/**
* @return int|string
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getRegistration()
{
$session = $this->fbPixelSession->create();
$registration = 404;
if ($this->helper->isRegistration()
&& $session->hasRegister()) {
$registration = $this->helper->getPixelHtml($session->getRegister());
}
return $registration;
}
/**
* @return int|string
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getAddToWishList()
{
$session = $this->fbPixelSession->create();
$add_to_wishlist = 404;
if ($this->helper->isAddToWishList()
&& $session->hasAddToWishlist()) {
$add_to_wishlist = $this->helper->getPixelHtml($session->getAddToWishlist());
}
return $add_to_wishlist;
}
/**
* @return int|string
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getInitiateCheckout()
{
$session = $this->fbPixelSession->create();
$initiateCheckout = 404;
if ($this->helper->isInitiateCheckout()
&& $session->hasInitiateCheckout()) {
$initiateCheckout = $this->helper->getPixelHtml($session->getInitiateCheckout());
}
return $initiateCheckout;
}
/**
* @return int|string
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getSearch()
{
$session = $this->fbPixelSession->create();
$search = 404;
if ($this->helper->isSearch()
&& $session->hasSearch()) {
$search = $this->helper->getPixelHtml($session->getSearch());
}
return $search;
}
/**
* Returns data needed for purchase tracking.
*
* @return array|int
*/
public function getOrderData()
{
$order = $this->checkoutSession->create()->getLastRealOrder();
$orderId = $order->getIncrementId();
if ($orderId && $this->helper->isPurchase()) {
$customerEmail = $order->getCustomerEmail();
if ($order->getShippingAddress()) {
$addressData = $order->getShippingAddress();
} else {
$addressData = $order->getBillingAddress();
}
if ($addressData) {
$customerData = $addressData->getData();
} else {
$customerData = null;
}
$product = [
'content_ids' => [],
'contents' => [],
'value' => "",
'currency' => "",
'num_items' => 0,
'email' => "",
'address' => []
];
$num_item = 0;
foreach ($order->getAllVisibleItems() as $item) {
$product['contents'][] = [
'id' => $item->getSku(),
'name' => $item->getName(),
'quantity' => (int)$item->getQtyOrdered(),
'item_price' => $item->getPrice()
];
$product['content_ids'][] = $item->getSku();
$num_item += round($item->getQtyOrdered());
}
$data = [
'content_ids' => $product['content_ids'],
'contents' => $product['contents'],
'content_type' => 'product',
'value' => number_format(
$order->getGrandTotal(),
2,
'.',
''
),
'num_items' => $num_item,
'currency' => $order->getOrderCurrencyCode(),
'email' => $customerEmail,
'phone' => $this->getValueByKey($customerData, 'telephone'),
'firtname' => $this->getValueByKey($customerData, 'firstname'),
'lastname' => $this->getValueByKey($customerData, 'lastname'),
'city' => $this->getValueByKey($customerData, 'city'),
'country' => $this->getValueByKey($customerData, 'country_id'),
'st' => $this->getValueByKey($customerData, 'region'),
'zipcode' => $this->getValueByKey($customerData, 'postcode')
];
return $this->helper->serializes($data);
} else {
return 404;
}
}
/**
* @param $array
* @param $key
* @return string
*/
protected function getValueByKey($array, $key)
{
if (!empty($array) && isset($array[$key])) {
return $array[$key];
}
return '';
}
/**
* @return array
* @throws \Magento\Framework\Exception\NoSuchEntityException
* @SuppressWarnings(PHPMD.RequestAwareBlockMethod)
*/
public function getFacebookPixelData()
{
$data = [];
$data['id'] = $this->helper->returnPixelId();
$data['full_action_name'] = $this->getRequest()->getFullActionName();
return $data;
}
/**
* @return array
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
private function getProductData()
{
if (!$this->helper->isProductView()) {
return [];
}
$currentProduct = $this->coreRegistry->registry('current_product');
$data = [];
$data['content_name'] = $this->helper
->escapeSingleQuotes($currentProduct->getName());
$data['content_ids'] = $this->helper
->escapeSingleQuotes($currentProduct->getSku());
$data['content_type'] = 'product';
$data['value'] = $this->formatPrice(
$this->helper->getProductPrice($currentProduct)
);
$data['currency'] = $this->helper->getCurrentCurrencyCode();
return $data;
}
/**
* @return array
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
private function getCategoryData()
{
if (!$this->helper->isCategoryView()) {
return [];
}
$currentCategory = $this->coreRegistry->registry('current_category');
$data = [];
$data['content_name'] = $this->helper
->escapeSingleQuotes($currentCategory->getName());
$data['content_ids'] = $this->helper
->escapeSingleQuotes($currentCategory->getId());
$data['content_type'] = 'category';
$data['currency'] = $this->helper->getCurrentCurrencyCode();
return $data;
}
/**
* Returns formated price.
*
* @param string $price
* @param string $currencyCode
* @return string
*/
private function formatPrice($price, $currencyCode = '')
{
$formatedPrice = number_format($price, 2, '.', '');
if ($currencyCode) {
return $formatedPrice . ' ' . $currencyCode;
} else {
return $formatedPrice;
}
}
}
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Block;
use Magento\Customer\CustomerData\SectionSourceInterface;
class Subscribe implements SectionSourceInterface
{
/**
* @var \Bss\FacebookPixel\Model\SessionFactory
*/
protected $fbPixelSession;
/**
* Subscribe constructor.
* @param \Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
*/
public function __construct(
\Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
) {
$this->fbPixelSession = $fbPixelSession;
}
/**
* Get data
*
* @return array
*/
public function getSectionData()
{
$data = [
'events' => []
];
if ($this->fbPixelSession->create()->hasAddSubscribe()) {
$data['events'][] = [
'eventName' => 'Subscribe',
'eventAdditional' => $this->fbPixelSession->create()->getAddSubscribe()
];
}
return $data;
}
}
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Helper;
class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
/**
* @var \Magento\Store\Model\StoreManagerInterface
*/
protected $storeManager;
/**
* @var \Magento\Tax\Model\Config
*/
protected $taxConfig;
/**
* @var \Magento\Framework\Json\EncoderInterface
*/
protected $jsonEncoder;
/**
* Tax display flag
*
* @var null|int
*/
protected $taxDisplayFlag = null;
/**
* Tax catalog flag
*
* @var null|int
*/
protected $taxCatalogFlag = null;
/**
* Store object
*
* @var null|\Magento\Store\Model\Store
*/
protected $store = null;
/**
* Store ID
*
* @var null|int
*/
protected $storeId = null;
/**
* Base currency code
*
* @var null|string
*/
protected $baseCurrencyCode = null;
/**
* Current currency code
*
* @var null|string
*/
protected $currentCurrencyCode = null;
/**
* @var \Magento\Catalog\Helper\Data
*/
protected $catalogHelper;
/**
* Data constructor.
* @param \Magento\Framework\App\Helper\Context $context
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
* @param \Magento\Tax\Model\Config $taxConfig
* @param \Magento\Framework\Json\EncoderInterface $jsonEncoder
*/
public function __construct(
\Magento\Framework\App\Helper\Context $context,
\Magento\Store\Model\StoreManagerInterface $storeManager,
\Magento\Tax\Model\Config $taxConfig,
\Magento\Framework\Json\EncoderInterface $jsonEncoder,
\Magento\Catalog\Helper\Data $catalogHelper
) {
$this->scopeConfig = $context->getScopeConfig();
$this->storeManager = $storeManager;
$this->taxConfig = $taxConfig;
$this->jsonEncoder = $jsonEncoder;
$this->catalogHelper = $catalogHelper;
parent::__construct($context);
}
/**
* @param array $data
* @return false|string
*/
public function serializes($data)
{
$result = $this->jsonEncoder->encode($data);
if (false === $result) {
throw new \InvalidArgumentException('Unable to serialize value.');
}
return $result;
}
/**
* @return \Magento\Tax\Model\Config
*/
public function isTaxConfig()
{
return $this->taxConfig;
}
/**
* @return array
*/
public function listPageDisable()
{
$list = $this->returnDisablePage();
if ($list) {
return explode(',', $list);
} else {
return [];
}
}
/**
* Based on provided configuration path returns configuration value.
*
* @param string $configPath
* @param string|int $scope
* @return string
*/
public function getConfig($configPath)
{
return $this->scopeConfig->getValue(
$configPath,
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
}
/**
* @param null $scope
* @return string
*/
public function returnPixelId($scope = null)
{
return $this->scopeConfig->getValue(
'bss_facebook_pixel/general/pixel_id',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* @param null $scope
* @return mixed
*/
public function returnDisablePage($scope = null)
{
return $this->scopeConfig->getValue(
'bss_facebook_pixel/event_tracking/disable_code',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* @param null $scope
* @return bool
*/
public function isProductView($scope = null)
{
return $this->scopeConfig->getValue(
'bss_facebook_pixel/event_tracking/product_view',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* @param null $scope
* @return bool
*/
public function isCategoryView($scope = null)
{
return $this->scopeConfig->getValue(
'bss_facebook_pixel/event_tracking/category_view',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* @param null $scope
* @return bool
*/
public function isInitiateCheckout($scope = null)
{
return $this->scopeConfig->getValue(
'bss_facebook_pixel/event_tracking/initiate_checkout',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* @param null $scope
* @return bool
*/
public function isPurchase($scope = null)
{
return $this->scopeConfig->getValue(
'bss_facebook_pixel/event_tracking/purchase',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* @param null $scope
* @return bool
*/
public function isAddToWishList($scope = null)
{
return $this->scopeConfig->getValue(
'bss_facebook_pixel/event_tracking/add_to_wishlist',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* @param null $scope
* @return bool
*/
public function isAddToCart($scope = null)
{
return $this->scopeConfig->getValue(
'bss_facebook_pixel/event_tracking/add_to_cart',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* @param null $scope
* @return bool
*/
public function isRegistration($scope = null)
{
return $this->scopeConfig->getValue(
'bss_facebook_pixel/event_tracking/registration',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* @param null $scope
* @return bool
*/
public function isSubscribe($scope = null)
{
return $this->scopeConfig->getValue(
'bss_facebook_pixel/event_tracking/subscribe',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* @param null $scope
* @return bool
*/
public function isSearch($scope = null)
{
return $this->scopeConfig->getValue(
'bss_facebook_pixel/event_tracking/search',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* @param null $scope
* @return mixed
*/
public function isIncludeTax($scope = null)
{
return $this->scopeConfig->getValue(
'tax/calculation/price_includes_tax',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
$scope
);
}
/**
* Add slashes to string and prepares string for javascript.
*
* @param string $str
* @return string
*/
public function escapeSingleQuotes($str)
{
return str_replace("'", "\'", $str);
}
/**
* @return mixed
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getCurrencyCode()
{
return $this->storeManager->getStore()->getCurrentCurrency()->getCode();
}
/**
* @param array $data
* @return string
*/
public function getPixelHtml($data = false)
{
$json = 404;
if ($data) {
$json =$this->serializes($data);
}
return $json;
}
/**
* @param mixed $product
* @return mixed|string
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getProductPrice($product)
{
switch ($product->getTypeId()) {
case 'bundle':
$price = $this->getBundleProductPrice($product);
break;
case 'configurable':
$price = $this->getConfigurableProductPrice($product);
break;
case 'grouped':
$price = $this->getGroupedProductPrice($product);
break;
default:
$price = $this->getFinalPrice($product);
}
return $price;
}
/**
* Returns bundle product price.
*
* @param \Magento\Catalog\Model\Product $product
* @return string
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
private function getBundleProductPrice($product)
{
$includeTax = (bool) $this->getDisplayTaxFlag();
return $this->getFinalPrice(
$product,
$product->getPriceModel()->getTotalPrices(
$product,
'min',
$includeTax,
1
)
);
}
/**
* @param \Magento\Catalog\Model\Product $product
* @return string
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
private function getConfigurableProductPrice($product)
{
if ($product->getFinalPrice() === 0) {
$simpleCollection = $product->getTypeInstance()
->getUsedProducts($product);
foreach ($simpleCollection as $simpleProduct) {
if ($simpleProduct->getPrice() > 0) {
return $this->getFinalPrice($simpleProduct);
}
}
}
return $this->getFinalPrice($product);
}
/**
* @param \Magento\Catalog\Model\Product $product
* @return mixed
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
private function getGroupedProductPrice($product)
{
$assocProducts = $product->getTypeInstance(true)
->getAssociatedProductCollection($product)
->addAttributeToSelect('price')
->addAttributeToSelect('tax_class_id')
->addAttributeToSelect('tax_percent');
$minPrice = INF;
foreach ($assocProducts as $assocProduct) {
$minPrice = min($minPrice, $this->getFinalPrice($assocProduct));
}
return $minPrice;
}
/**
* Returns final price.
*
* @param \Magento\Catalog\Model\Product $product
* @param string $price
* @return string
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
private function getFinalPrice($product, $price = null)
{
$price = $this->resultPriceFinal($product, $price);
$productType = $product->getTypeId();
// Apply tax if needed
// Simple, Virtual, Downloadable products price is without tax
// Grouped products have associated products without tax
// Bundle products price already have tax included/excluded
// Configurable products price already have tax included/excluded
if ($productType != 'configurable' && $productType != 'bundle') {
// If display tax flag is on and catalog tax flag is off
if ($this->getDisplayTaxFlag() && !$this->getCatalogTaxFlag()) {
$price = $this->catalogHelper->getTaxPrice(
$product,
$price,
true,
null,
null,
null,
$this->getStoreId(),
false,
false
);
}
}
// Case when catalog prices are with tax but display tax is set to
// to exclude tax. Applies for all products except for bundle
if ($productType != 'bundle') {
// If display tax flag is off and catalog tax flag is on
if (!$this->getDisplayTaxFlag() && $this->getCatalogTaxFlag()) {
$price = $this->catalogHelper->getTaxPrice(
$product,
$price,
false,
null,
null,
null,
$this->getStoreId(),
true,
false
);
}
}
return $price;
}
/**
* @param \Magento\Catalog\Model\Product $product
* @param float|int $price
* @return float
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
private function resultPriceFinal($product, $price)
{
if ($price === null) {
$price = $product->getFinalPrice();
}
if ($price === null) {
$price = $product->getData('special_price');
}
$productType = $product->getTypeId();
// 1. Convert to current currency if needed
// Convert price if base and current currency are not the same
// Except for configurable products they already have currency converted
if (($this->getBaseCurrencyCode() !== $this->getCurrentCurrencyCode())
&& $productType != 'configurable'
) {
// Convert to from base currency to current currency
$price = $this->getStore()->getBaseCurrency()
->convert($price, $this->getCurrentCurrencyCode());
}
return $price;
}
/**
* Returns flag based on "Stores > Configuration > Sales > Tax
* > Price Display Settings > Display Product Prices In Catalog"
* Returns 0 or 1 instead of 1, 2, 3.
* @return int
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
private function getDisplayTaxFlag()
{
if ($this->taxDisplayFlag === null) {
// Tax Display
// 1 - excluding tax
// 2 - including tax
// 3 - including and excluding tax
$flag = $this->isTaxConfig()->getPriceDisplayType($this->getStoreId());
// 0 means price excluding tax, 1 means price including tax
if ($flag == 1) {
$this->taxDisplayFlag = 0;
} else {
$this->taxDisplayFlag = 1;
}
}
return $this->taxDisplayFlag;
}
/**
* Returns Stores > Configuration > Sales > Tax > Calculation Settings
* > Catalog Prices configuration value
* @return int
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
private function getCatalogTaxFlag()
{
// Are catalog product prices with tax included or excluded?
if ($this->taxCatalogFlag === null) {
$this->taxCatalogFlag = (int) $this->isIncludeTax();
}
// 0 means excluded, 1 means included
return $this->taxCatalogFlag;
}
/**
* @return \Magento\Store\Api\Data\StoreInterface|\Magento\Store\Model\Store|null
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getStore()
{
if ($this->store === null) {
$this->store = $this->storeManager->getStore();
}
return $this->store;
}
/**
* @return int|null
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getStoreId()
{
if ($this->storeId === null) {
$this->storeId = $this->getStore()->getId();
}
return $this->storeId;
}
/**
* Return base currency code
* @return string|null
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getBaseCurrencyCode()
{
if ($this->baseCurrencyCode === null) {
$this->baseCurrencyCode = strtoupper(
$this->getStore()->getBaseCurrencyCode()
);
}
return $this->baseCurrencyCode;
}
/**
* Return current currency code
* @return string|null
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getCurrentCurrencyCode()
{
if ($this->currentCurrencyCode === null) {
$this->currentCurrencyCode = strtoupper(
$this->getStore()->getCurrentCurrencyCode()
);
}
return $this->currentCurrencyCode;
}
}
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Model\Config\Source;
class Pages implements \Magento\Framework\Option\ArrayInterface
{
/**
* @return array
*/
public function toOptionArray()
{
return [
['value' => 'cms_page', 'label' => 'Cms Page'],
['value' => 'account_page', 'label' => 'Account Page'],
['value' => 'registration_page', 'label' => 'Registration Page'],
['value' => 'checkout_page', 'label' => 'Checkout Page'],
['value' => 'success_page', 'label' => 'Success Page'],
['value' => 'search_page', 'label' => 'Search Page'],
['value' => 'advanced_search_page', 'label' => 'Advanced Search Page']
];
}
}
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Model;
/**
* Class Session
* @package Bss\FacebookPixel\Model
* @SuppressWarnings(PHPMD.CookieAndSessionMisuse)
*/
class Session extends \Magento\Framework\Session\SessionManager
{
/**
* @param array $data
* @return \Bss\FacebookPixel\Model\Session $this
*/
public function setAddToCart($data)
{
$this->setData('add_to_cart', $data);
return $this;
}
/**
* @return mixed|null
*/
public function getAddToCart()
{
if ($this->hasAddToCart()) {
$data = $this->getData('add_to_cart');
$this->unsetData('add_to_cart');
return $data;
}
return null;
}
/**
* @return bool
*/
public function hasAddToCart()
{
return $this->hasData('add_to_cart');
}
/**
* @param array $data
* @return \Bss\FacebookPixel\Model\Session $this
*/
public function setAddToWishlist($data)
{
$this->setData('add_to_wishlist', $data);
return $this;
}
/**
* @return mixed|null
*/
public function getAddToWishlist()
{
if ($this->hasAddToWishlist()) {
$data = $this->getData('add_to_wishlist');
$this->unsetData('add_to_wishlist');
return $data;
}
return null;
}
/**
* @return mixed
*/
public function hasAddToWishlist()
{
return $this->hasData('add_to_wishlist');
}
/**
* @param array $data
* @return \Bss\FacebookPixel\Model\Session $this
*/
public function setAddSubscribe($data)
{
$this->setData('add_subscribe', $data);
return $this;
}
/**
* @return mixed|null
*/
public function getAddSubscribe()
{
if ($this->hasAddSubscribe()) {
$data = $this->getData('add_subscribe');
$this->unsetData('add_subscribe');
return $data;
}
return null;
}
/**
* @return bool
*/
public function hasAddSubscribe()
{
return $this->hasData('add_subscribe');
}
/**
* @return bool
*/
public function hasInitiateCheckout()
{
return $this->hasData('initiate_checkout');
}
/**
* @param array $data
* @return \Bss\FacebookPixel\Model\Session $this
*/
public function setInitiateCheckout($data)
{
$this->setData('initiate_checkout', $data);
return $this;
}
/**
* @return mixed|null
*/
public function getInitiateCheckout()
{
if ($this->hasInitiateCheckout()) {
$data = $this->getData('initiate_checkout');
$this->unsetData('initiate_checkout');
return $data;
}
return null;
}
/**
* @return bool
*/
public function hasSearch()
{
return $this->hasData('search');
}
/**
* @param array $data
* @return \Bss\FacebookPixel\Model\Session $this
*/
public function setSearch($data)
{
$this->setData('search', $data);
return $this;
}
/**
* @return mixed|null
*/
public function getSearch()
{
if ($this->hasSearch()) {
$data = $this->getData('search');
$this->unsetData('search');
return $data;
}
return null;
}
/**
* @return bool
*/
public function hasRegister()
{
return $this->hasData('customer_register');
}
/**
* @param array $data
* @return \Bss\FacebookPixel\Model\Session $this
*/
public function setRegister($data)
{
$this->setData('customer_register', $data);
return $this;
}
/**
* @return mixed|null
*/
public function getRegister()
{
if ($this->hasRegister()) {
$data = $this->getData('customer_register');
$this->unsetData('customer_register');
return $data;
}
return null;
}
/**
* @param array $data
* @return \Bss\FacebookPixel\Model\Session $this
*/
public function setActionPage($data)
{
$this->setData('bss_action_page', $data);
return $this;
}
/**
* @return mixed|null
*/
public function getActionPage()
{
if ($this->hasActionPage()) {
$data = $this->getData('bss_action_page');
$this->unsetData('bss_action_page');
return $data;
}
return null;
}
/**
* @return bool
*/
public function hasActionPage()
{
return $this->hasData('bss_action_page');
}
}
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Observer;
use Magento\Framework\Event\ObserverInterface;
class AddToCart implements ObserverInterface
{
/**
* @var \Bss\FacebookPixel\Model\SessionFactory
*/
protected $fbPixelSession;
/**
* @var \Bss\FacebookPixel\Helper\Data
*/
protected $helper;
/**
* @var \Magento\Catalog\Model\ProductRepository
*/
protected $productRepository;
/**
* AddToCart constructor.
* @param \Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
* @param \Bss\FacebookPixel\Helper\Data $helper
* @param \Magento\Catalog\Model\ProductRepository $productRepository
*/
public function __construct(
\Bss\FacebookPixel\Model\SessionFactory $fbPixelSession,
\Bss\FacebookPixel\Helper\Data $helper,
\Magento\Catalog\Model\ProductRepository $productRepository
) {
$this->fbPixelSession = $fbPixelSession;
$this->helper = $helper;
$this->productRepository = $productRepository;
}
/**
* @param \Magento\Framework\Event\Observer $observer
* @return bool
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$items = $observer->getItems();
$typeConfi = \Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE;
if (!$this->helper->isAddToCart() || !$items) {
return true;
}
$product = [
'content_ids' => [],
'value' => 0,
'currency' => ""
];
/** @var \Magento\Sales\Model\Order\Item $item */
foreach ($items as $item) {
if ($item->getProduct()->getTypeId() == $typeConfi) {
continue;
}
if ($item->getParentItem()) {
if ($item->getParentItem()->getProductType() == $typeConfi) {
$product['contents'][] = [
'id' => $item->getSku(),
'name' => $item->getName(),
'quantity' => $item->getParentItem()->getQtyToAdd()
];
$product['value'] += $item->getProduct()->getFinalPrice() * $item->getParentItem()->getQtyToAdd();
} else {
$product['contents'][] = [
'id' => $item->getSku(),
'name' => $item->getName(),
'quantity' => $item->getData('qty')
];
}
} else {
$product['contents'][] = [
'id' => $this->checkBundleSku($item),
'name' => $item->getName(),
'quantity' => $item->getQtyToAdd()
];
$product['value'] += $item->getProduct()->getFinalPrice() * $item->getQtyToAdd();
}
$product['content_ids'][] = $this->checkBundleSku($item);
}
$data = [
'content_type' => 'product',
'content_ids' => $product['content_ids'],
'contents' => $product['contents'],
'currency' => $this->helper->getCurrencyCode(),
'value' => $product['value']
];
$this->fbPixelSession->create()->setAddToCart($data);
return true;
}
/**
* @param mixed $item
* @return string
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
protected function checkBundleSku($item)
{
$typeBundle = \Magento\Bundle\Model\Product\Type::TYPE_CODE;
if ($item->getProductType() == $typeBundle) {
$skuBundleProduct= $this->productRepository->getById($item->getProductId())->getSku();
return $skuBundleProduct;
}
return $item->getSku();
}
}
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Observer;
use Magento\Framework\Event\ObserverInterface;
class InitiateCheckout implements ObserverInterface
{
/**
* @var \Bss\FacebookPixel\Model\SessionFactory
*/
protected $fbPixelSession;
/**
* @var \Magento\Checkout\Model\SessionFactory
*/
protected $checkoutSession;
/**
* @var \Bss\FacebookPixel\Helper\Data
*/
protected $fbPixelHelper;
/**
* @var \Magento\Framework\Pricing\Helper\Data
*/
protected $dataPrice;
/**
* InitiateCheckout constructor.
* @param \Magento\Checkout\Model\SessionFactory $checkoutSession
* @param \Bss\FacebookPixel\Helper\Data $helper
* @param \Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
* @param \Magento\Framework\Pricing\Helper\Data $dataPrice
*/
public function __construct(
\Magento\Checkout\Model\SessionFactory $checkoutSession,
\Bss\FacebookPixel\Helper\Data $helper,
\Bss\FacebookPixel\Model\SessionFactory $fbPixelSession,
\Magento\Framework\Pricing\Helper\Data $dataPrice
) {
$this->checkoutSession = $checkoutSession;
$this->fbPixelHelper = $helper;
$this->fbPixelSession = $fbPixelSession;
$this->dataPrice = $dataPrice;
}
/**
* @param \Magento\Framework\Event\Observer $observer
* @return boolean
* @throws \Magento\Framework\Exception\NoSuchEntityException
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
if (!$this->fbPixelHelper->isInitiateCheckout()) {
return true;
}
$checkout = $this->checkoutSession->create();
if (empty($checkout->getQuote()->getAllVisibleItems())) {
return true;
}
$product = [
'content_ids' => [],
'contents' => [],
'value' => "",
'currency' => ""
];
$items = $checkout->getQuote()->getAllVisibleItems();
foreach ($items as $item) {
$product['contents'][] = [
'id' => $item->getSku(),
'name' => $item->getName(),
'quantity' => $item->getQty(),
'item_price' => $this->dataPrice->currency($item->getPrice(), false, false)
];
$product['content_ids'][] = $item->getSku();
}
$data = [
'content_ids' => $product['content_ids'],
'contents' => $product['contents'],
'content_type' => 'product',
'value' => $checkout->getQuote()->getGrandTotal(),
'currency' => $this->fbPixelHelper->getCurrencyCode(),
];
$this->fbPixelSession->create()->setInitiateCheckout($data);
return true;
}
}
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Observer;
use Magento\Framework\Event\ObserverInterface;
class Register implements ObserverInterface
{
/**
* @var \Bss\FacebookPixel\Model\SessionFactory
*/
protected $fbPixelSession;
/**
* @var \Bss\FacebookPixel\Helper\Data
*/
protected $fbPixelHelper;
/**
* Register constructor.
* @param \Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
* @param \Bss\FacebookPixel\Helper\Data $helper
*/
public function __construct(
\Bss\FacebookPixel\Model\SessionFactory $fbPixelSession,
\Bss\FacebookPixel\Helper\Data $helper
) {
$this->fbPixelSession = $fbPixelSession;
$this->fbPixelHelper = $helper;
}
/**
* @param \Magento\Framework\Event\Observer $observer
* @return boolean
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$customer = $observer->getEvent()->getCustomer();
if (!$this->fbPixelHelper->isRegistration()
|| !$customer
) {
return true;
}
$data = [
'customer_id' => $customer->getId(),
'email' => $customer->getEmail(),
'fn' => $customer->getFirstName(),
'ln' => $customer->getLastName()
];
$this->fbPixelSession->create()->setRegister($data);
return true;
}
}
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Observer;
use Magento\Framework\Event\ObserverInterface;
class Search implements ObserverInterface
{
/**
* @var \Bss\FacebookPixel\Model\SessionFactory
*/
protected $fbPixelSession;
/**
* @var \Bss\FacebookPixel\Helper\Data
*/
protected $fbPixelHelper;
/**
* @var \Magento\Search\Helper\Data
*/
protected $searchHelper;
/**
* @var \Magento\Framework\App\RequestInterface
*/
protected $request;
/**
* Search constructor.
* @param \Bss\FacebookPixel\Helper\Data $helper
* @param \Magento\Search\Helper\Data $searchHelper
* @param \Magento\Framework\App\RequestInterface $request
* @param \Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
*/
public function __construct(
\Bss\FacebookPixel\Helper\Data $helper,
\Magento\Search\Helper\Data $searchHelper,
\Magento\Framework\App\RequestInterface $request,
\Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
) {
$this->fbPixelSession = $fbPixelSession;
$this->fbPixelHelper = $helper;
$this->searchHelper = $searchHelper;
$this->request = $request;
}
/**
* @param \Magento\Framework\Event\Observer $observer
*
* @return boolean
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$text = $this->searchHelper->getEscapedQueryText();
if (!$text) {
$text = $this->request->getParams();
foreach ($this->request->getParams() as $key => $value) {
$text[$key] = $value;
}
}
if (!$this->fbPixelHelper->isSearch() || !$text) {
return true;
}
$data = [
'search_string' => $text
];
$this->fbPixelSession->create()->setSearch($data);
return true;
}
}
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Observer;
use Magento\Framework\Event\ObserverInterface;
class Subcribe implements ObserverInterface
{
/**
* @var \Bss\FacebookPixel\Model\SessionFactory
*/
protected $fbPixelSession;
/**
* @var \Bss\FacebookPixel\Helper\Data
*/
protected $helper;
/**
* Subcribe constructor.
* @param \Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
* @param \Bss\FacebookPixel\Helper\Data $helper
*/
public function __construct(
\Bss\FacebookPixel\Model\SessionFactory $fbPixelSession,
\Bss\FacebookPixel\Helper\Data $helper
) {
$this->fbPixelSession = $fbPixelSession;
$this->helper = $helper;
}
/**
* @param \Magento\Framework\Event\Observer $observer
*
* @return boolean
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$email = $observer->getEvent()->getSubscriber()->getSubscriberEmail();
$subscribeId =$observer->getEvent()->getSubscriber()->getSubscriberId();
if (!$this->helper->isSubscribe() || !$email) {
return true;
}
$data = [
'id' => $subscribeId,
'email' => $observer->getEvent()->getSubscriber()->getSubscriberEmail()
];
$this->fbPixelSession->create()->setAddSubscribe($data);
return true;
}
}
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
namespace Bss\FacebookPixel\Observer;
use Magento\Framework\Event\ObserverInterface;
class WishlistAddProduct implements ObserverInterface
{
/**
* @var \Bss\FacebookPixel\Model\SessionFactory
*/
protected $fbPixelSession;
/**
* @var \Bss\FacebookPixel\Helper\Data
*/
protected $helper;
/**
* WishlistAddProduct constructor.
* @param \Bss\FacebookPixel\Model\SessionFactory $fbPixelSession
* @param \Bss\FacebookPixel\Helper\Data $helper
*/
public function __construct(
\Bss\FacebookPixel\Model\SessionFactory $fbPixelSession,
\Bss\FacebookPixel\Helper\Data $helper
) {
$this->fbPixelSession = $fbPixelSession;
$this->helper = $helper;
}
/**
* @param \Magento\Framework\Event\Observer $observer
* @return boolean
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$product = $observer->getItem()->getProduct();
/** @var \Magento\Catalog\Model\Product $product */
if (!$this->helper->isAddToWishList() || !$product) {
return true;
}
$data = [
'content_type' => 'product',
'content_ids' => $product->getSku(),
'content_name' => $product->getName(),
'currency' => $this->helper->getCurrencyCode()
];
$this->fbPixelSession->create()->setAddToWishlist($data);
return true;
}
}
{
"name": "bsscommerce/facebook-pixel",
"description": "facebook pixel for magento 2",
"type": "magento2-module",
"version": "1.0.3",
"license": [
"OSL-3.0",
"AFL-3.0"
],
"autoload": {
"files": [
"registration.php"
],
"psr-4": {
"Bss\\FacebookPixel\\": ""
}
}
}
<?xml version="1.0"?>
<!--
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd">
<acl>
<resources>
<resource id="Magento_Backend::admin">
<resource id="Magento_Backend::stores">
<resource id="Magento_Backend::stores_settings">
<resource id="Magento_Config::config">
<resource id="Bss_FacebookPixel::config_system" title="Facebook Pixel" sortOrder="1" />
</resource>
</resource>
</resource>
</resource>
</resources>
</acl>
</config>
<?xml version="1.0"?>
<!--
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<tab id="bss" translate="label" sortOrder="300">
<label><![CDATA[Bss Commerce]]></label>
</tab>
<section id="bss_facebook_pixel" translate="label" type="text" sortOrder="100" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Facebook Pixel]]></label>
<tab>bss</tab>
<resource>Bss_FacebookPixel::config_system</resource>
<group id="general" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[General]]></label>
<field id="active" translate="label" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Enable Facebook Pixel]]></label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
<comment><![CDATA[Version 1.0.3]]></comment>
</field>
<field id="pixel_id" translate="label" type="text" sortOrder="15" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Pixel ID]]></label>
<validate>required-entry validate-number</validate>
<comment><![CDATA[Input Your Facebook Pixel ID.]]></comment>
<depends><field id="*/general/active">1</field></depends>
</field>
</group>
<group id="event_tracking" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Event Tracking]]></label>
<field id="disable_code" translate="label" type="multiselect" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Disable Pageview on]]></label>
<source_model>Bss\FacebookPixel\Model\Config\Source\Pages</source_model>
<comment><![CDATA[Select pages to disable pageview.]]></comment>
<can_be_empty>1</can_be_empty>
</field>
<field id="product_view" translate="label" type="select" sortOrder="30" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Product View]]></label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
<field id="category_view" translate="label" type="select" sortOrder="40" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Category View]]></label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
<field id="add_to_cart" translate="label" type="select" sortOrder="50" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Add to Cart]]></label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
<field id="initiate_checkout" translate="label" type="select" sortOrder="60" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Initiate Checkout]]></label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
<field id="purchase" translate="label" type="select" sortOrder="70" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Purchase]]></label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
<field id="add_to_wishlist" translate="label" type="select" sortOrder="80" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Add to Wishlist]]></label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
<field id="registration" translate="label" type="select" sortOrder="90" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Registration]]></label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
<field id="subscribe" translate="label" type="select" sortOrder="95" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Subscribe]]></label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
<field id="search" translate="label" type="select" sortOrder="98" showInDefault="1" showInWebsite="1" showInStore="1">
<label><![CDATA[Search]]></label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
</group>
</section>
</system>
</config>
<?xml version="1.0"?>
<!--
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
<default>
<bss_facebook_pixel>
<general>
<active>0</active>
</general>
</bss_facebook_pixel>
</default>
</config>
<?xml version="1.0"?>
<!--
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<virtualType name="Bss\FacebookPixel\Model\Session\Storage" type="Magento\Framework\Session\Storage">
<arguments>
<argument name="namespace" xsi:type="string">Bss_FacebookPixel</argument>
</arguments>
</virtualType>
<type name="Bss\FacebookPixel\Model\Session">
<arguments>
<argument name="storage" xsi:type="object">Bss\FacebookPixel\Model\Session\Storage</argument>
</arguments>
</type>
</config>
<?xml version="1.0" encoding="utf-8"?>
<!--
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Customer\CustomerData\SectionPoolInterface">
<arguments>
<argument name="sectionSourceMap" xsi:type="array">
<item name="bss-fbpixel-atc" xsi:type="string">Bss\FacebookPixel\Block\AddToCart</item>
<item name="bss-fbpixel-subscribe" xsi:type="string">Bss\FacebookPixel\Block\Subscribe</item>
</argument>
</arguments>
</type>
</config>
<?xml version="1.0"?>
<!--
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="wishlist_add_product">
<observer name="bss_fbpixel_add_to_wishlist" instance="Bss\FacebookPixel\Observer\WishlistAddProduct" />
</event>
<event name="sales_quote_product_add_after">
<observer name="bss_add_to_cart" instance="Bss\FacebookPixel\Observer\AddToCart"/>
</event>
<event name="newsletter_subscriber_save_after">
<observer name="bss_fbpixel_subcribe" instance="Bss\FacebookPixel\Observer\Subcribe" />
</event>
<event name="controller_action_predispatch_multishipping_checkout_index">
<observer name="bss_fbpixel_initiate_checkout_multi" instance="Bss\FacebookPixel\Observer\InitiateCheckout" />
</event>
<event name="controller_action_predispatch_checkout_onepage_index">
<observer name="bss_fbpixel_initiate_checkout_onepage" instance="Bss\FacebookPixel\Observer\InitiateCheckout" />
</event>
<event name="controller_action_predispatch_checkout_index_index">
<observer name="bss_fbpixel_initiate_checkout_index_index" instance="Bss\FacebookPixel\Observer\InitiateCheckout" />
</event>
<event name="controller_action_predispatch_catalogsearch_result_index">
<observer name="bss_fbpixel_search_result_index" instance="Bss\FacebookPixel\Observer\Search" />
</event>
<event name="controller_action_predispatch_catalogsearch_advanced_result">
<observer name="bss_fbpixel_search_advanced_result" instance="Bss\FacebookPixel\Observer\Search" />
</event>
<event name="customer_register_success">
<observer name="bss_fbpixel_customer_register_success" instance="Bss\FacebookPixel\Observer\Register" />
</event>
</config>
<?xml version="1.0"?>
<!--
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Customer:etc/sections.xsd">
<action name="checkout/cart/add">
<section name="bss-fbpixel-atc"/>
</action>
<action name="newsletter/subscriber/new">
<section name="bss-fbpixel-subscribe"/>
</action>
</config>
<?xml version="1.0"?>
<!--
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Bss_FacebookPixel" setup_version="1.0.3">
<sequence>
<module name="Magento_Catalog"/>
<module name="Magento_Store"/>
<module name="Magento_Cms"/>
<module name="Magento_Checkout"/>
</sequence>
</module>
</config>
'Bss Commerce','Bss Commerce'
'Enabled','Enabled'
'Facebook Pixel','Facebook Pixel'
'General','General'
'Enable Facebook Pixel','Enable Facebook Pixel'
'Pixel ID','Pixel ID'
'Event Tracking','Event Tracking'
'Select pages to disable pageview','Select pages to disable pageview'
'Product View','Product View'
'Category View','Category View'
'Add to Cart','Add to Cart'
'Initiate Checkout','Initiate Checkout'
'Purchase','Purchase'
'Add to Wishlist','Add to Wishlist'
'Registration','Registration'
'Subscribe','Subscribe'
'Search','Search'
'Disable Pageview on','Disable Pageview on'
'Set parameter value of event Add to cart','Set parameter value of event Add to cart'
'Set Value','Set Value'
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Bss_FacebookPixel',
__DIR__
);
<?xml version="1.0"?>
<!--
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="after.body.start">
<block class="Bss\FacebookPixel\Block\Code"
name="bss.facebook.pixel."
template="Bss_FacebookPixel::code.phtml"
before="-"
ifconfig="bss_facebook_pixel/general/active" />
<block class="Magento\Framework\View\Element\Template" name="bss.fbpixel.atc" after="bss.facebook.pixel."
ifconfig="bss_facebook_pixel/general/active"
template="Bss_FacebookPixel::atc.phtml">
<arguments>
<argument name="jsLayout" xsi:type="array">
<item name="components" xsi:type="array">
<item name="bssFbpixelsAtc" xsi:type="array">
<item name="component" xsi:type="string">Bss_FacebookPixel/js/atc</item>
</item>
</item>
</argument>
</arguments>
</block>
<block class="Magento\Framework\View\Element\Template" name="bss.fbpixel.subscribe" after="bss.facebook.pixel."
ifconfig="bss_facebook_pixel/general/active"
template="Bss_FacebookPixel::subscribe.phtml">
<arguments>
<argument name="jsLayout" xsi:type="array">
<item name="components" xsi:type="array">
<item name="bssFbpixelsSubscribe" xsi:type="array">
<item name="component" xsi:type="string">Bss_FacebookPixel/js/subscribe</item>
</item>
</item>
</argument>
</arguments>
</block>
</referenceContainer>
</body>
</page>
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
?>
<div data-role="bss-fbpixel-atc" style="display:none;">
</div>
<script type="text/x-magento-init">
{
"[data-role='bss-fbpixel-atc']":
{
"Magento_Ui/js/core/app": <?= $block->getJsLayout();?>
}
}
</script>
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
// @codingStandardsIgnoreFile
/**
* @var $block \Bss\FacebookPixel\Block\Code
*/
$pageView = $block->checkDisable();
$data = $block->getFacebookPixelData();
$id = $data['id'];
$action = $data['full_action_name'];
$productData = $block->getProduct();
$categoryData = $block->getCategory();
$registration = $block->getRegistration();
$AddToWishlist = $block->getAddToWishList();
$InitiateCheckout = $block->getInitiateCheckout();
$search = $block->getSearch();
$orderData = $block->getOrder();
?>
<div id="email"></div>
<script type="text/x-magento-init">
{
"*":
{
"Bss_FacebookPixel/js/code": {
"id" : <?php echo $block->escapeHtml($id); ?>,
"action" : "<?php echo $data['full_action_name']; ?>",
"productData" : <?php echo $productData; ?>,
"categoryData" : <?php echo $categoryData; ?>,
"registration" : <?php echo $registration; ?>,
"addToWishList" : <?php echo $AddToWishlist; ?>,
"initiateCheckout" : <?php echo $InitiateCheckout; ?>,
"search" : <?php echo $search; ?>,
"orderData" : <?php echo $orderData ?>,
"pageView" : "<?php echo $pageView; ?>"
}
}
}
</script>
<!-- Facebook Pixel Code -->
<noscript><img height="1" width="1" style="display:none" alt="Facebook Pixel"
src="https://www.facebook.com/tr?id=<?php
echo $block->escapeHtml($id) ?>&ev=PageView&noscript=1"
/></noscript>
<!-- End Facebook Pixel Code -->
<?php
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
?>
<div data-role="bss-fbpixel-subscribe" style="display:none;">
</div>
<span class="bss-subscribe-email" style="display:none;"></span>
<span class="bss-subscribe-id" style="display:none;"></span>
<script type="text/x-magento-init">
{
"[data-role='bss-fbpixel-subscribe']":
{
"Magento_Ui/js/core/app": <?= $block->getJsLayout();?>
}
}
</script>
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
define([
'ko',
'uiComponent',
'Magento_Customer/js/customer-data'
], function (ko, Component, customerData) {
'use strict';
return Component.extend({
initialize: function () {
var self = this;
self._super();
customerData.get('bss-fbpixel-atc').subscribe(function (loadedData) {
if (loadedData && "undefined" !== typeof loadedData.events) {
for (var eventCounter = 0; eventCounter < loadedData.events.length; eventCounter++) {
var eventData = loadedData.events[eventCounter];
if ("undefined" !== typeof eventData.eventAdditional && eventData.eventAdditional) {
fbq('track', eventData.eventName, eventData.eventAdditional || {});
}
}
customerData.set('bss-fbpixel-atc', {});
}
});
}
});
});
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
define([
'jquery'
], function ($) {
"use strict";
return function (config) {
var id = config.id;
var action = config.action;
var productData = config.productData;
var categoryData = config.categoryData;
var registration = config.registration;
var addToWishList = config.addToWishList;
var initiateCheckout = config.initiateCheckout;
var search = config.search;
var orderData = config.orderData;
var pageView = config.pageView;
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];
t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
window.fb = function() {
if (registration.email) {
fbq('init', id, {
em : registration.email,
fn : registration.fn,
ln : registration.ln,
});
} else if (orderData.content_ids) {
fbq('init', id, {
em : orderData.email,
ph : orderData.phone,
fn : orderData.firtname,
ln : orderData.lastname,
ct : orderData.city,
st : orderData.st,
country : orderData.country,
zp : orderData.zipcode
});
} else if ($('.bss-subscribe-email').text()) {
fbq('init', id, {
em : $('.bss-subscribe-email').text()
});
} else {
fbq('init', id);
}
if ($('.bss-subscribe-email').text()) {
fbq('track', 'Subscribe', {
id : $('.bss-subscribe-id').text()
});
$('.bss-subscribe-id').text('');
$('.bss-subscribe-email').text('');
}
if (action == 'checkout_index_index' && pageView != 'pass') {
fbq.disablePushState = true;
}
if (pageView == 'pass') {
fbq('track', 'PageView');
}
if (action == 'catalog_product_view' && productData != 404) {
fbq('track', 'ViewContent', {
content_name: productData.content_name ,
content_ids: productData.content_ids,
content_type: 'product',
value: productData.value,
currency: productData.currency
});
}
if (action == 'catalog_category_view' && categoryData != 404) {
fbq('trackCustom', 'ViewCategory', {
content_name: categoryData.content_name,
content_ids: categoryData.content_ids,
content_type: 'product_group',
currency: categoryData.currency
});
}
if (addToWishList != 404) {
fbq('track', 'AddToWishlist', {
content_type : 'product',
content_ids : addToWishList.content_ids,
content_name : addToWishList.content_name,
currency : addToWishList.currency
});
}
if (search != 404) {
fbq('track', 'Search', {
search_string : search.search_string
});
}
if (initiateCheckout != 404) {
fbq('track', 'InitiateCheckout', {
content_ids: initiateCheckout.content_ids,
content_type: 'product',
contents: initiateCheckout.contents,
value: initiateCheckout.value,
currency: initiateCheckout.currency
});
}
if (orderData != 404) {
fbq('track', 'Purchase', {
content_ids: orderData.content_ids,
content_type: 'product',
contents: orderData.contents,
value: orderData.value,
num_items : orderData.num_items,
currency: orderData.currency
});
}
if (registration != 404) {
fbq('track', 'CompleteRegistration', {
customer_id: registration.customer_id
});
}
};
return window.fb();
}
});
/**
* BSS Commerce Co.
*
* NOTICE OF LICENSE
*
* This source file is subject to the EULA
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://bsscommerce.com/Bss-Commerce-License.txt
*
* @category BSS
* @package Bss_FacebookPixel
* @author Extension Team
* @copyright Copyright (c) 2018-2019 BSS Commerce Co. ( http://bsscommerce.com )
* @license http://bsscommerce.com/Bss-Commerce-License.txt
*/
define([
'jquery',
'ko',
'uiComponent',
'Magento_Customer/js/customer-data'
], function (jQuery, ko, Component, customerData) {
'use strict';
return Component.extend({
initialize: function () {
var self = this;
self._super();
customerData.get('bss-fbpixel-subscribe').subscribe(function (loadedData) {
if (loadedData && "undefined" !== typeof loadedData.events) {
for (var eventCounter = 0; eventCounter < loadedData.events.length; eventCounter++) {
var eventData = loadedData.events[eventCounter];
if ("undefined" !== typeof eventData.eventAdditional && eventData.eventAdditional) {
jQuery('.bss-subscribe-email').text(eventData.eventAdditional.email);
jQuery('.bss-subscribe-id').text(eventData.eventAdditional.id);
customerData.set('bss-fbpixel-subscribe', {});
return window.fb();
}
}
}
});
}
});
});
......@@ -4850,19 +4850,19 @@
},
{
"name": "magento/module-aws-s3-page-builder",
"version": "dev-developer",
"version": "1.0.2",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/AwsS3PageBuilder",
"reference": "2e453788ab2e70aac23e273aa677181d0c4773e8"
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-aws-s3-page-builder/magento-module-aws-s3-page-builder-1.0.2.0.zip",
"shasum": "26cf12922f62147eb068cff31b2030858b8fee5b"
},
"require": {
"magento/framework": "*",
"php": "~7.3.0||~7.4.0"
"magento/framework": "103.0.*",
"php": "~7.4.0||~8.1.0"
},
"suggest": {
"magento/module-aws-s3": "*",
"magento/module-page-builder": "*"
"magento/module-aws-s3": "100.4.*",
"magento/module-page-builder": "2.2.*"
},
"type": "magento2-module",
"autoload": {
......@@ -4876,24 +4876,21 @@
"license": [
"proprietary"
],
"description": "Aws S3 Page Builder module",
"transport-options": {
"relative": true
}
"description": "Aws S3 Page Builder module"
},
{
"name": "magento/module-catalog-page-builder-analytics",
"version": "dev-developer",
"version": "1.6.2",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/CatalogPageBuilderAnalytics",
"reference": "9e232d06ebe75f86a3df78b15f4af3e121edc590"
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-catalog-page-builder-analytics/magento-module-catalog-page-builder-analytics-1.6.2.0.zip",
"shasum": "663461e9e293c64273e13c874d11f52853ce76c7"
},
"require": {
"magento/framework": "*",
"magento/module-catalog": "*",
"magento/module-page-builder-analytics": "*",
"php": "~7.3.0||~7.4.0"
"magento/framework": "103.0.*",
"magento/module-catalog": "104.0.*",
"magento/module-page-builder-analytics": "1.6.*",
"php": "~7.4.0||~8.1.0"
},
"type": "magento2-module",
"autoload": {
......@@ -4907,24 +4904,21 @@
"license": [
"proprietary"
],
"description": "Catalog Page Builder Analytics module",
"transport-options": {
"relative": true
}
"description": "Catalog Page Builder Analytics module"
},
{
"name": "magento/module-cms-page-builder-analytics",
"version": "dev-developer",
"version": "1.6.2",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/CmsPageBuilderAnalytics",
"reference": "0598330be6ccc0456c2ee63c171bb1280446a1c7"
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-cms-page-builder-analytics/magento-module-cms-page-builder-analytics-1.6.2.0.zip",
"shasum": "cb85faab790971cc0aa82a1396aa810946e4a114"
},
"require": {
"magento/framework": "*",
"magento/module-cms": "*",
"magento/module-page-builder-analytics": "*",
"php": "~7.3.0||~7.4.0"
"magento/framework": "103.0.*",
"magento/module-cms": "104.0.*",
"magento/module-page-builder-analytics": "1.6.*",
"php": "~7.4.0||~8.1.0"
},
"type": "magento2-module",
"autoload": {
......@@ -4938,39 +4932,36 @@
"license": [
"proprietary"
],
"description": "CMS Page Builder Analytics module",
"transport-options": {
"relative": true
}
"description": "CMS Page Builder Analytics module"
},
{
"name": "magento/module-page-builder",
"version": "dev-developer",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/PageBuilder",
"reference": "4562eb77d5fc90e2e9991da53e1d78e1224abc2f"
},
"require": {
"magento/framework": "*",
"magento/module-backend": "*",
"magento/module-catalog": "*",
"magento/module-catalog-inventory": "*",
"magento/module-catalog-widget": "*",
"magento/module-cms": "*",
"magento/module-config": "*",
"magento/module-directory": "*",
"magento/module-eav": "*",
"magento/module-email": "*",
"magento/module-media-storage": "*",
"magento/module-require-js": "*",
"magento/module-rule": "*",
"magento/module-store": "*",
"magento/module-theme": "*",
"magento/module-ui": "*",
"magento/module-variable": "*",
"magento/module-widget": "*",
"magento/module-wishlist": "*",
"version": "2.2.1-p3",
"dist": {
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-page-builder/magento-module-page-builder-2.2.1.0-patch3.zip",
"shasum": "cf258289cbc264ce007a70d31cf60c9e1f5ef71a"
},
"require": {
"magento/framework": "103.0.*",
"magento/module-backend": "102.0.*",
"magento/module-catalog": "104.0.*",
"magento/module-catalog-inventory": "100.4.*",
"magento/module-catalog-widget": "100.4.*",
"magento/module-cms": "104.0.*",
"magento/module-config": "101.2.*",
"magento/module-directory": "100.4.*",
"magento/module-eav": "102.1.*",
"magento/module-email": "101.1.*",
"magento/module-media-storage": "100.4.*",
"magento/module-require-js": "100.4.*",
"magento/module-rule": "100.4.*",
"magento/module-store": "101.1.*",
"magento/module-theme": "101.1.*",
"magento/module-ui": "101.2.*",
"magento/module-variable": "100.4.*",
"magento/module-widget": "101.2.*",
"magento/module-wishlist": "101.2.*",
"php": "~7.3.0||~7.4.0",
"phpgt/dom": "2.1.6"
},
......@@ -4978,7 +4969,7 @@
"gene/bluefoot": "*"
},
"suggest": {
"magento/module-review": "*"
"magento/module-review": "100.4.*"
},
"type": "magento2-module",
"autoload": {
......@@ -4992,26 +4983,23 @@
"license": [
"proprietary"
],
"description": "Page Builder module",
"transport-options": {
"relative": true
}
"description": "Page Builder module"
},
{
"name": "magento/module-page-builder-admin-analytics",
"version": "dev-developer",
"version": "1.1.2",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/PageBuilderAdminAnalytics",
"reference": "209e01c2c7bd649e862e4d4e08f93bab52c67f13"
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-page-builder-admin-analytics/magento-module-page-builder-admin-analytics-1.1.2.0.zip",
"shasum": "4c1d0be58f5e35734834bdb4fd4fd84952604186"
},
"require": {
"magento/framework": "*",
"php": "~7.3.0||~7.4.0"
"magento/framework": "103.0.*",
"php": "~7.4.0||~8.1.0"
},
"suggest": {
"magento/module-admin-analytics": "*",
"magento/module-page-builder": "*"
"magento/module-admin-analytics": "100.4.*",
"magento/module-page-builder": "2.2.*"
},
"type": "magento2-module",
"autoload": {
......@@ -5025,24 +5013,21 @@
"license": [
"proprietary"
],
"description": "Page Builder Admin Analytics module",
"transport-options": {
"relative": true
}
"description": "Page Builder Admin Analytics module"
},
{
"name": "magento/module-page-builder-analytics",
"version": "dev-developer",
"version": "1.6.2",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/PageBuilderAnalytics",
"reference": "2aabc381172ed7c72ebd0d6f8572f37cb7bb60fa"
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-page-builder-analytics/magento-module-page-builder-analytics-1.6.2.0.zip",
"shasum": "d77d348beaa25a60d9db16859e5f1502b79db783"
},
"require": {
"magento/framework": "*",
"magento/module-analytics": "*",
"magento/module-page-builder": "*",
"php": "~7.3.0||~7.4.0"
"magento/framework": "103.0.*",
"magento/module-analytics": "100.4.*",
"magento/module-page-builder": "2.2.*",
"php": "~7.4.0||~8.1.0"
},
"type": "magento2-module",
"autoload": {
......@@ -5056,10 +5041,7 @@
"license": [
"proprietary"
],
"description": "Page Builder Analytics module",
"transport-options": {
"relative": true
}
"description": "Page Builder Analytics module"
},
{
"name": "magento/page-builder",
......@@ -5067,7 +5049,7 @@
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/_metapackage",
"reference": "686b3e8c375b1392df9ff31550a15bbee6594ab0"
"reference": "7bfd612cd65f3a383a4ef411916461be2d3a3e0e"
},
"require": {
"magento/module-aws-s3-page-builder": "*",
......
......@@ -7041,20 +7041,20 @@
},
{
"name": "magento/module-aws-s3-page-builder",
"version": "dev-developer",
"version_normalized": "dev-developer",
"version": "1.0.2",
"version_normalized": "1.0.2.0",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/AwsS3PageBuilder",
"reference": "2e453788ab2e70aac23e273aa677181d0c4773e8"
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-aws-s3-page-builder/magento-module-aws-s3-page-builder-1.0.2.0.zip",
"shasum": "26cf12922f62147eb068cff31b2030858b8fee5b"
},
"require": {
"magento/framework": "*",
"php": "~7.3.0||~7.4.0"
"magento/framework": "103.0.*",
"php": "~7.4.0||~8.1.0"
},
"suggest": {
"magento/module-aws-s3": "*",
"magento/module-page-builder": "*"
"magento/module-aws-s3": "100.4.*",
"magento/module-page-builder": "2.2.*"
},
"type": "magento2-module",
"installation-source": "dist",
......@@ -7070,25 +7070,22 @@
"proprietary"
],
"description": "Aws S3 Page Builder module",
"transport-options": {
"relative": true
},
"install-path": "../magento/module-aws-s3-page-builder"
},
{
"name": "magento/module-catalog-page-builder-analytics",
"version": "dev-developer",
"version_normalized": "dev-developer",
"version": "1.6.2",
"version_normalized": "1.6.2.0",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/CatalogPageBuilderAnalytics",
"reference": "9e232d06ebe75f86a3df78b15f4af3e121edc590"
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-catalog-page-builder-analytics/magento-module-catalog-page-builder-analytics-1.6.2.0.zip",
"shasum": "663461e9e293c64273e13c874d11f52853ce76c7"
},
"require": {
"magento/framework": "*",
"magento/module-catalog": "*",
"magento/module-page-builder-analytics": "*",
"php": "~7.3.0||~7.4.0"
"magento/framework": "103.0.*",
"magento/module-catalog": "104.0.*",
"magento/module-page-builder-analytics": "1.6.*",
"php": "~7.4.0||~8.1.0"
},
"type": "magento2-module",
"installation-source": "dist",
......@@ -7104,25 +7101,22 @@
"proprietary"
],
"description": "Catalog Page Builder Analytics module",
"transport-options": {
"relative": true
},
"install-path": "../magento/module-catalog-page-builder-analytics"
},
{
"name": "magento/module-cms-page-builder-analytics",
"version": "dev-developer",
"version_normalized": "dev-developer",
"version": "1.6.2",
"version_normalized": "1.6.2.0",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/CmsPageBuilderAnalytics",
"reference": "0598330be6ccc0456c2ee63c171bb1280446a1c7"
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-cms-page-builder-analytics/magento-module-cms-page-builder-analytics-1.6.2.0.zip",
"shasum": "cb85faab790971cc0aa82a1396aa810946e4a114"
},
"require": {
"magento/framework": "*",
"magento/module-cms": "*",
"magento/module-page-builder-analytics": "*",
"php": "~7.3.0||~7.4.0"
"magento/framework": "103.0.*",
"magento/module-cms": "104.0.*",
"magento/module-page-builder-analytics": "1.6.*",
"php": "~7.4.0||~8.1.0"
},
"type": "magento2-module",
"installation-source": "dist",
......@@ -7138,40 +7132,37 @@
"proprietary"
],
"description": "CMS Page Builder Analytics module",
"transport-options": {
"relative": true
},
"install-path": "../magento/module-cms-page-builder-analytics"
},
{
"name": "magento/module-page-builder",
"version": "dev-developer",
"version_normalized": "dev-developer",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/PageBuilder",
"reference": "4562eb77d5fc90e2e9991da53e1d78e1224abc2f"
},
"require": {
"magento/framework": "*",
"magento/module-backend": "*",
"magento/module-catalog": "*",
"magento/module-catalog-inventory": "*",
"magento/module-catalog-widget": "*",
"magento/module-cms": "*",
"magento/module-config": "*",
"magento/module-directory": "*",
"magento/module-eav": "*",
"magento/module-email": "*",
"magento/module-media-storage": "*",
"magento/module-require-js": "*",
"magento/module-rule": "*",
"magento/module-store": "*",
"magento/module-theme": "*",
"magento/module-ui": "*",
"magento/module-variable": "*",
"magento/module-widget": "*",
"magento/module-wishlist": "*",
"version": "2.2.1-p3",
"version_normalized": "2.2.1.0-patch3",
"dist": {
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-page-builder/magento-module-page-builder-2.2.1.0-patch3.zip",
"shasum": "cf258289cbc264ce007a70d31cf60c9e1f5ef71a"
},
"require": {
"magento/framework": "103.0.*",
"magento/module-backend": "102.0.*",
"magento/module-catalog": "104.0.*",
"magento/module-catalog-inventory": "100.4.*",
"magento/module-catalog-widget": "100.4.*",
"magento/module-cms": "104.0.*",
"magento/module-config": "101.2.*",
"magento/module-directory": "100.4.*",
"magento/module-eav": "102.1.*",
"magento/module-email": "101.1.*",
"magento/module-media-storage": "100.4.*",
"magento/module-require-js": "100.4.*",
"magento/module-rule": "100.4.*",
"magento/module-store": "101.1.*",
"magento/module-theme": "101.1.*",
"magento/module-ui": "101.2.*",
"magento/module-variable": "100.4.*",
"magento/module-widget": "101.2.*",
"magento/module-wishlist": "101.2.*",
"php": "~7.3.0||~7.4.0",
"phpgt/dom": "2.1.6"
},
......@@ -7179,7 +7170,7 @@
"gene/bluefoot": "*"
},
"suggest": {
"magento/module-review": "*"
"magento/module-review": "100.4.*"
},
"type": "magento2-module",
"installation-source": "dist",
......@@ -7195,27 +7186,24 @@
"proprietary"
],
"description": "Page Builder module",
"transport-options": {
"relative": true
},
"install-path": "../magento/module-page-builder"
},
{
"name": "magento/module-page-builder-admin-analytics",
"version": "dev-developer",
"version_normalized": "dev-developer",
"version": "1.1.2",
"version_normalized": "1.1.2.0",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/PageBuilderAdminAnalytics",
"reference": "209e01c2c7bd649e862e4d4e08f93bab52c67f13"
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-page-builder-admin-analytics/magento-module-page-builder-admin-analytics-1.1.2.0.zip",
"shasum": "4c1d0be58f5e35734834bdb4fd4fd84952604186"
},
"require": {
"magento/framework": "*",
"php": "~7.3.0||~7.4.0"
"magento/framework": "103.0.*",
"php": "~7.4.0||~8.1.0"
},
"suggest": {
"magento/module-admin-analytics": "*",
"magento/module-page-builder": "*"
"magento/module-admin-analytics": "100.4.*",
"magento/module-page-builder": "2.2.*"
},
"type": "magento2-module",
"installation-source": "dist",
......@@ -7231,25 +7219,22 @@
"proprietary"
],
"description": "Page Builder Admin Analytics module",
"transport-options": {
"relative": true
},
"install-path": "../magento/module-page-builder-admin-analytics"
},
{
"name": "magento/module-page-builder-analytics",
"version": "dev-developer",
"version_normalized": "dev-developer",
"version": "1.6.2",
"version_normalized": "1.6.2.0",
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/PageBuilderAnalytics",
"reference": "2aabc381172ed7c72ebd0d6f8572f37cb7bb60fa"
"type": "zip",
"url": "https://repo.magento.com/archives/magento/module-page-builder-analytics/magento-module-page-builder-analytics-1.6.2.0.zip",
"shasum": "d77d348beaa25a60d9db16859e5f1502b79db783"
},
"require": {
"magento/framework": "*",
"magento/module-analytics": "*",
"magento/module-page-builder": "*",
"php": "~7.3.0||~7.4.0"
"magento/framework": "103.0.*",
"magento/module-analytics": "100.4.*",
"magento/module-page-builder": "2.2.*",
"php": "~7.4.0||~8.1.0"
},
"type": "magento2-module",
"installation-source": "dist",
......@@ -7265,9 +7250,6 @@
"proprietary"
],
"description": "Page Builder Analytics module",
"transport-options": {
"relative": true
},
"install-path": "../magento/module-page-builder-analytics"
},
{
......@@ -7277,7 +7259,7 @@
"dist": {
"type": "path",
"url": "./ext/magento/magento2-page-builder/app/code/Magento/_metapackage",
"reference": "686b3e8c375b1392df9ff31550a15bbee6594ab0"
"reference": "7bfd612cd65f3a383a4ef411916461be2d3a3e0e"
},
"require": {
"magento/module-aws-s3-page-builder": "*",
......
......@@ -1097,12 +1097,12 @@
),
),
'magento/module-aws-s3-page-builder' => array(
'pretty_version' => 'dev-developer',
'version' => 'dev-developer',
'pretty_version' => '1.0.2',
'version' => '1.0.2.0',
'type' => 'magento2-module',
'install_path' => __DIR__ . '/../magento/module-aws-s3-page-builder',
'aliases' => array(),
'reference' => '2e453788ab2e70aac23e273aa677181d0c4773e8',
'reference' => NULL,
'dev_requirement' => false,
),
'magento/module-backend' => array(
......@@ -1202,12 +1202,12 @@
),
),
'magento/module-catalog-page-builder-analytics' => array(
'pretty_version' => 'dev-developer',
'version' => 'dev-developer',
'pretty_version' => '1.6.2',
'version' => '1.6.2.0',
'type' => 'magento2-module',
'install_path' => __DIR__ . '/../magento/module-catalog-page-builder-analytics',
'aliases' => array(),
'reference' => '9e232d06ebe75f86a3df78b15f4af3e121edc590',
'reference' => NULL,
'dev_requirement' => false,
),
'magento/module-catalog-rule' => array(
......@@ -1283,12 +1283,12 @@
),
),
'magento/module-cms-page-builder-analytics' => array(
'pretty_version' => 'dev-developer',
'version' => 'dev-developer',
'pretty_version' => '1.6.2',
'version' => '1.6.2.0',
'type' => 'magento2-module',
'install_path' => __DIR__ . '/../magento/module-cms-page-builder-analytics',
'aliases' => array(),
'reference' => '0598330be6ccc0456c2ee63c171bb1280446a1c7',
'reference' => NULL,
'dev_requirement' => false,
),
'magento/module-cms-url-rewrite' => array(
......@@ -1880,30 +1880,30 @@
),
),
'magento/module-page-builder' => array(
'pretty_version' => 'dev-developer',
'version' => 'dev-developer',
'pretty_version' => '2.2.1-p3',
'version' => '2.2.1.0-patch3',
'type' => 'magento2-module',
'install_path' => __DIR__ . '/../magento/module-page-builder',
'aliases' => array(),
'reference' => '4562eb77d5fc90e2e9991da53e1d78e1224abc2f',
'reference' => NULL,
'dev_requirement' => false,
),
'magento/module-page-builder-admin-analytics' => array(
'pretty_version' => 'dev-developer',
'version' => 'dev-developer',
'pretty_version' => '1.1.2',
'version' => '1.1.2.0',
'type' => 'magento2-module',
'install_path' => __DIR__ . '/../magento/module-page-builder-admin-analytics',
'aliases' => array(),
'reference' => '209e01c2c7bd649e862e4d4e08f93bab52c67f13',
'reference' => NULL,
'dev_requirement' => false,
),
'magento/module-page-builder-analytics' => array(
'pretty_version' => 'dev-developer',
'version' => 'dev-developer',
'pretty_version' => '1.6.2',
'version' => '1.6.2.0',
'type' => 'magento2-module',
'install_path' => __DIR__ . '/../magento/module-page-builder-analytics',
'aliases' => array(),
'reference' => '2aabc381172ed7c72ebd0d6f8572f37cb7bb60fa',
'reference' => NULL,
'dev_requirement' => false,
),
'magento/module-page-cache' => array(
......@@ -2338,7 +2338,7 @@
'type' => 'metapackage',
'install_path' => NULL,
'aliases' => array(),
'reference' => '686b3e8c375b1392df9ff31550a15bbee6594ab0',
'reference' => '7bfd612cd65f3a383a4ef411916461be2d3a3e0e',
'dev_requirement' => false,
),
'magento/theme-adminhtml-backend' => array(
......
......@@ -19,12 +19,14 @@
<group value="pagebuilder"/>
<group value="pagebuilder-image"/>
<group value="remote_storage_aws_s3"/>
<group value="skip_in_cloud_native_s3"/>
<group value="remote_storage_aws_s3_pagebuilder"/>
</annotations>
<before>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.enable_options}}" stepKey="enableRemoteStorage" after="loginAsAdmin"/>
<comment userInput="BIC workaround" stepKey="enableRemoteStorage"/>
</before>
<after>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.disable_options}}" stepKey="disableRemoteStorage" after="logout"/>
<comment userInput="BIC workaround" stepKey="disableRemoteStorage"/>
</after>
</test>
</tests>
......@@ -19,12 +19,14 @@
<group value="pagebuilder"/>
<group value="pagebuilder-image"/>
<group value="remote_storage_aws_s3"/>
<group value="skip_in_cloud_native_s3"/>
<group value="remote_storage_aws_s3_pagebuilder"/>
</annotations>
<before>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.enable_options}}" stepKey="enableRemoteStorage" after="loginAsAdmin"/>
<comment userInput="BIC workaround" stepKey="enableRemoteStorage"/>
</before>
<after>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.disable_options}}" stepKey="disableRemoteStorage" after="logout"/>
<comment userInput="BIC workaround" stepKey="disableRemoteStorage"/>
</after>
</test>
</tests>
......@@ -17,12 +17,14 @@
<group value="pagebuilder"/>
<group value="pagebuilder-image"/>
<group value="remote_storage_aws_s3"/>
<group value="skip_in_cloud_native_s3"/>
<group value="remote_storage_aws_s3_pagebuilder"/>
</annotations>
<before>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.enable_options}}" stepKey="enableRemoteStorage" after="loginAsAdmin"/>
<comment userInput="BIC workaround" stepKey="enableRemoteStorage"/>
</before>
<after>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.disable_options}}" stepKey="disableRemoteStorage" after="logout"/>
<comment userInput="BIC workaround" stepKey="disableRemoteStorage"/>
</after>
</test>
</tests>
......@@ -19,12 +19,14 @@
<group value="pagebuilder"/>
<group value="pagebuilder-image"/>
<group value="remote_storage_aws_s3"/>
<group value="skip_in_cloud_native_s3"/>
<group value="remote_storage_aws_s3_pagebuilder"/>
</annotations>
<before>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.enable_options}}" stepKey="enableRemoteStorage" after="loginAsAdmin"/>
<comment userInput="BIC workaround" stepKey="enableRemoteStorage"/>
</before>
<after>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.disable_options}}" stepKey="disableRemoteStorage" after="logout"/>
<comment userInput="BIC workaround" stepKey="disableRemoteStorage"/>
</after>
</test>
</tests>
......@@ -21,12 +21,14 @@
<group value="pagebuilder-cms-block"/>
<group value="pagebuilder-cms-category"/>
<group value="remote_storage_aws_s3"/>
<group value="skip_in_cloud_native_s3"/>
<group value="remote_storage_aws_s3_pagebuilder"/>
</annotations>
<before>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.enable_options}}" stepKey="enableRemoteStorage" after="loginAsAdmin"/>
<comment userInput="BIC workaround" stepKey="enableRemoteStorage"/>
</before>
<after>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.disable_options}}" stepKey="disableRemoteStorage" after="logout"/>
<comment userInput="BIC workaround" stepKey="disableRemoteStorage"/>
</after>
</test>
</tests>
......@@ -19,12 +19,14 @@
<group value="pagebuilder"/>
<group value="pagebuilder-templates"/>
<group value="remote_storage_aws_s3"/>
<group value="skip_in_cloud_native_s3"/>
<group value="remote_storage_aws_s3_pagebuilder"/>
</annotations>
<before>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.enable_options}}" stepKey="enableRemoteStorage" after="loginAsAdmin"/>
<comment userInput="BIC workaround" stepKey="enableRemoteStorage"/>
</before>
<after>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.disable_options}}" stepKey="disableRemoteStorage" after="logout"/>
<comment userInput="BIC workaround" stepKey="disableRemoteStorage"/>
</after>
</test>
</tests>
......@@ -19,12 +19,14 @@
<group value="pagebuilder"/>
<group value="pagebuilder-templates"/>
<group value="remote_storage_aws_s3"/>
<group value="skip_in_cloud_native_s3"/>
<group value="remote_storage_aws_s3_pagebuilder"/>
</annotations>
<before>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.enable_options}}" stepKey="enableRemoteStorage" after="loginAsAdmin"/>
<comment userInput="BIC workaround" stepKey="enableRemoteStorage"/>
</before>
<after>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.disable_options}}" stepKey="disableRemoteStorage" after="logout"/>
<comment userInput="BIC workaround" stepKey="disableRemoteStorage"/>
</after>
</test>
</tests>
......@@ -20,12 +20,14 @@
<group value="pagebuilder-column"/>
<group value="pagebuilder-video"/>
<group value="remote_storage_aws_s3"/>
<group value="skip_in_cloud_native_s3"/>
<group value="remote_storage_aws_s3_pagebuilder"/>
</annotations>
<before>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.enable_options}}" stepKey="enableRemoteStorage" after="loginAsAdmin"/>
<comment userInput="BIC workaround" stepKey="enableRemoteStorage"/>
</before>
<after>
<magentoCLI command="setup:config:set {{RemoteStorageAwsS3ConfigData.disable_options}}" stepKey="disableRemoteStorage" after="logout"/>
<comment userInput="BIC workaround" stepKey="disableRemoteStorage"/>
</after>
</test>
</tests>
{
"name": "magento/module-aws-s3-page-builder",
"description": "Aws S3 Page Builder module",
"require": {
"magento/framework": "*",
"php": "~7.3.0||~7.4.0"
},
"suggest": {
"magento/module-page-builder": "*",
"magento/module-aws-s3": "*"
},
"type": "magento2-module",
"license": [
"proprietary"
],
"version": "1.0.2",
"require": {
"magento/framework": "103.0.*",
"php": "~7.4.0||~8.1.0"
},
"suggest": {
"magento/module-page-builder": "2.2.*",
"magento/module-aws-s3": "100.4.*"
},
"autoload": {
"files": [
"registration.php"
......@@ -22,3 +23,4 @@
}
}
}
{
"name": "magento/module-catalog-page-builder-analytics",
"description": "Catalog Page Builder Analytics module",
"type": "magento2-module",
"license": [
"proprietary"
],
"config": {
"sort-packages": true
},
"version": "1.6.2",
"require": {
"magento/module-page-builder-analytics": "*",
"magento/module-catalog": "*",
"magento/framework": "*",
"php": "~7.3.0||~7.4.0"
"magento/module-page-builder-analytics": "1.6.*",
"magento/module-catalog": "104.0.*",
"magento/framework": "103.0.*",
"php": "~7.4.0||~8.1.0"
},
"type": "magento2-module",
"license": [
"proprietary"
],
"autoload": {
"files": [
"registration.php"
......@@ -23,3 +24,4 @@
}
}
}
{
"name": "magento/module-cms-page-builder-analytics",
"description": "CMS Page Builder Analytics module",
"type": "magento2-module",
"license": [
"proprietary"
],
"config": {
"sort-packages": true
},
"version": "1.6.2",
"require": {
"magento/module-page-builder-analytics": "*",
"magento/module-cms": "*",
"magento/framework": "*",
"php": "~7.3.0||~7.4.0"
"magento/module-page-builder-analytics": "1.6.*",
"magento/module-cms": "104.0.*",
"magento/framework": "103.0.*",
"php": "~7.4.0||~8.1.0"
},
"type": "magento2-module",
"license": [
"proprietary"
],
"autoload": {
"files": [
"registration.php"
......@@ -23,3 +24,4 @@
}
}
}
{
"name": "magento/module-page-builder-admin-analytics",
"description": "Page Builder Admin Analytics module",
"type": "magento2-module",
"license": [
"proprietary"
],
"config": {
"sort-packages": true
},
"version": "1.1.2",
"require": {
"magento/framework": "*",
"php": "~7.3.0||~7.4.0"
"magento/framework": "103.0.*",
"php": "~7.4.0||~8.1.0"
},
"suggest": {
"magento/module-admin-analytics": "*",
"magento/module-page-builder": "*"
"magento/module-admin-analytics": "100.4.*",
"magento/module-page-builder": "2.2.*"
},
"type": "magento2-module",
"license": [
"proprietary"
],
"autoload": {
"files": [
"registration.php"
......@@ -25,3 +26,4 @@
}
}
}
{
"name": "magento/module-page-builder-analytics",
"description": "Page Builder Analytics module",
"require": {
"magento/module-analytics": "*",
"magento/module-page-builder": "*",
"magento/framework": "*",
"php": "~7.3.0||~7.4.0"
},
"type": "magento2-module",
"license": [
"proprietary"
],
"version": "1.6.2",
"require": {
"magento/module-analytics": "100.4.*",
"magento/module-page-builder": "2.2.*",
"magento/framework": "103.0.*",
"php": "~7.4.0||~8.1.0"
},
"autoload": {
"files": [
"registration.php"
......@@ -20,3 +21,4 @@
}
}
}
......@@ -8,14 +8,21 @@
<suites xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Suite/etc/suiteSchema.xsd">
<suite name="PageBuilderNewMediaGalleryRenditionsSuite">
<before>
<actionGroup ref="AdminEnableWYSIWYGActionGroup" stepKey="disableWYSIWYG" />
<actionGroup ref="AdminDisableWYSIWYGActionGroup" stepKey="disableWYSIWYG" />
<magentoCLI command="config:set {{MediaGalleryConfigDataEnabled.path}} {{MediaGalleryConfigDataEnabled.value}}" stepKey="enableEnhancedMediaGallery"/>
<magentoCLI command="config:set {{MediaGalleryRenditionsDataEnabled.path}} {{MediaGalleryRenditionsDataEnabled.value}}" stepKey="enableMediaGalleryRenditions"/>
<!-- Create Media Gallery Directories for `wysiwyg` -->
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
<actionGroup ref="AdminOpenCreateNewCMSPageActionGroup" stepKey="openNewPage"/>
<actionGroup ref="AdminOpenMediaGalleryFromPageNoEditorActionGroup" stepKey="openMediaGalleryForPage"/>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
<actionGroup ref="AdminEnableWYSIWYGActionGroup" stepKey="enableWYSIWYG"/>
</before>
<after>
<magentoCLI command="config:set {{MediaGalleryRenditionsDataDisabled.path}} {{MediaGalleryRenditionsDataDisabled.value}}" stepKey="disableMediaGalleryRenditions"/>
<magentoCLI command="config:set {{MediaGalleryConfigDataDisabled.path}} {{MediaGalleryConfigDataDisabled.value}}" stepKey="disableEnhancedMediaGallery"/>
<actionGroup ref="AdminEnableWYSIWYGActionGroup" stepKey="enableWYSIWYG" />
<actionGroup ref="AdminEnableWYSIWYGActionGroup" stepKey="enableWYSIWYG"/>
</after>
<include>
<group name="page_builder_new_media_gallery_renditions"/>
......
......@@ -21,6 +21,9 @@
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
<actionGroup ref="AdminOpenStandaloneMediaGalleryActionGroup" stepKey="openMediaGalleryBefore"/>
<actionGroup ref="ResetAdminDataGridToDefaultViewActionGroup" stepKey="resetAdminDataGridBefore"/>
<actionGroup ref="AdminMediaGalleryFolderSelectActionGroup" stepKey="openWysiwygFolder">
<argument name="name" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="AdminMediaGalleryOpenNewFolderFormActionGroup" stepKey="openNewFolderForm"/>
<actionGroup ref="AdminMediaGalleryCreateNewFolderActionGroup" stepKey="createNewFolder">
<argument name="name" value="{{AdminMediaGalleryFolderData.name}}"/>
......@@ -32,10 +35,13 @@
<after>
<actionGroup ref="AdminOpenStandaloneMediaGalleryActionGroup" stepKey="openStandaloneMediaGalleryAfter"/>
<actionGroup ref="ResetAdminDataGridToDefaultViewActionGroup" stepKey="resetAdminDataGridToDefaultViewAfter"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="AdminMediaGalleryFolderSelectActionGroup" stepKey="selectFolderAfter">
<argument name="name" value="{{AdminMediaGalleryFolderData.name}}"/>
</actionGroup>
<actionGroup ref="AdminEnhancedMediaGalleryImageDeleteActionGroup" stepKey="deleteImage"/>
<comment userInput="BIC workaround" stepKey="deleteImage"/>
<actionGroup ref="AdminMediaGalleryFolderDeleteActionGroup" stepKey="deleteFolder"/>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
<deleteData createDataKey="createCMSPage" stepKey="deleteCmsPage"/>
......@@ -60,6 +66,9 @@
</actionGroup>
<actionGroup ref="AdminOpenSelectImageFromGalleryActionGroup" stepKey="openMediaGallery"/>
<actionGroup ref="ResetAdminDataGridToDefaultViewActionGroup" stepKey="resetAdminDataGrid"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="AdminMediaGalleryFolderSelectActionGroup" stepKey="selectMediaGalleryFolder">
<argument name="name" value="{{AdminMediaGalleryFolderData.name}}"/>
</actionGroup>
......@@ -75,11 +84,13 @@
<!-- Check if Image have "used in" data section -->
<actionGroup ref="AdminOpenStandaloneMediaGalleryActionGroup" stepKey="openStandaloneMediaGallery"/>
<actionGroup ref="ResetAdminDataGridToDefaultViewActionGroup" stepKey="resetAdminDataGridToDefaultView"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder2">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="AdminMediaGalleryFolderSelectActionGroup" stepKey="selectMediaGalleryFolderToCheck">
<argument name="name" value="{{AdminMediaGalleryFolderData.name}}"/>
</actionGroup>
<actionGroup ref="AdminEnhancedMediaGalleryViewImageDetails" stepKey="openViewImageDetails"/>
<actionGroup ref="AssertAdminEnhancedMediaGalleryUsedInSectionDisplayedActionGroup"
stepKey="assertUsedInSectionDisplayed"/>
<actionGroup ref="AssertAdminEnhancedMediaGalleryUsedInSectionDisplayedActionGroup" stepKey="assertUsedInSectionDisplayed"/>
</test>
</tests>
......@@ -31,11 +31,16 @@
</before>
<after>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="PageBuilderBackgroundImageRoot_JPG"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="DeleteFolderFromMediaGallery">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -56,9 +61,16 @@
<actionGroup ref="clickSelectFromGallerySlideOut" stepKey="clickSelectFromGallerySlideOut">
<argument name="property" value="PageBuilderBackgroundImageRoot_JPG"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AttachImageActionGroup" stepKey="SelectImageFromMediaStorage">
<argument name="Image" value="PageBuilderBackgroundImageRoot_JPG"/>
</actionGroup>
......
......@@ -32,11 +32,16 @@
<after>
<resizeWindow width="1280" height="1024" stepKey="resizeWindowToDesktop"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="PageBuilderBackgroundMobileImageRoot_JPG"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="DeleteFolderFromMediaGallery">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -57,9 +62,16 @@
<actionGroup ref="clickSelectFromGallerySlideOut" stepKey="clickSelectFromGallerySlideOut">
<argument name="property" value="PageBuilderBackgroundMobileImageRoot_JPG"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AttachImageActionGroup" stepKey="SelectImageFromMediaStorage">
<argument name="Image" value="PageBuilderBackgroundMobileImageRoot_JPG"/>
</actionGroup>
......
......@@ -33,9 +33,13 @@
<after>
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToMediaGalleryNavigateToFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="navigateToMediaGalleryNavigateToFolder"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......@@ -94,7 +98,13 @@
<!-- Add Image Link to TinyMCE -->
<actionGroup ref="ClickTinyMCEInsertImageButtonActionGroup" stepKey="clickTinyMCEInsertImageButton"/>
<actionGroup ref="GoToMediaGalleryFromTinyMCEImageModalActionGroup" stepKey="goToMediaGalleryFromTinyMCEImageModal"/>
<actionGroup ref="clickMediaGalleryStorageRootArrow" stepKey="clickTinyMCESelectorBrowseModalMediaGalleryStorageRootArrow"/>
<comment userInput="BIC workaround" stepKey="clickTinyMCESelectorBrowseModalMediaGalleryStorageRootArrow"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="createTinyMCESelectorBrowseModalStorageRootImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......@@ -189,7 +199,16 @@
<argument name="wysiwygArea" value="{{WYSIWYGOnPageBuilderInline.inlineCss}}"/>
</actionGroup>
<actionGroup ref="GoToMediaGalleryFromTinyMCEImageModalActionGroup" stepKey="goToMediaGalleryFromInlineWYSIWYGTinyMCEImageModal"/>
<actionGroup ref="clickMediaGalleryStorageRootArrow" stepKey="clickInlineWYSIWYGTinyMCESelectorBrowseModalMediaGalleryStorageRootArrow"/>
<comment userInput="BIC workaround" stepKey="clickInlineWYSIWYGTinyMCESelectorBrowseModalMediaGalleryStorageRootArrow"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder2">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder2">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToImageFolderFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
</actionGroup>
<actionGroup ref="AttachImageActionGroup" stepKey="selectImageFromInlineWYSIWYGTinyMCESelectorBrowseModalStorageRootImageFolder">
<argument name="Image" value="PageBuilderImageProperty_StageJPG"/>
</actionGroup>
......
......@@ -38,11 +38,16 @@
<deleteData createDataKey="createCMSBlock" stepKey="deleteCMSBlock"/>
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder2">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<comment userInput="BIC workaround" stepKey="NavigateToFolder2"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage2">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage2"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="DeleteFolderFromMediaGallery">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -69,7 +74,12 @@
<argument name="page" value="$$createCMSPage.identifier$$"/>
</actionGroup>
<actionGroup ref="clickHtmlInsertImageButton" stepKey="clickInsertImageInHtmlCode"/>
<actionGroup ref="clickMediaGalleryStorageRootArrow" stepKey="clickMediaGalleryStorageRootArrow"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="clickMediaGalleryStorageRootArrow">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -42,11 +42,16 @@
<deleteData createDataKey="createPreReqCMSPage" stepKey="deleteCMSPageB"/>
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -94,7 +99,13 @@
<actionGroup ref="clickInsertImageInTinyMCE" stepKey="clickInsertImageInTinyMCE"/>
<actionGroup ref="ClickBrowseBtnOnUploadPopupActionGroup" stepKey="clickBrowserBtn"/>
<actionGroup ref="VerifyMediaGalleryStorageActionsActionGroup" stepKey="VerifyMediaGalleryStorageBtn"/>
<actionGroup ref="clickMediaGalleryStorageRootArrow" stepKey="clickMediaGalleryStorageRootArrow"/>
<comment userInput="BIC workaround" stepKey="clickMediaGalleryStorageRootArrow"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -43,11 +43,16 @@
<deleteData createDataKey="createCMSBlock" stepKey="deleteCMSBlock"/>
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -105,7 +110,13 @@
<actionGroup ref="clickInsertImageInTinyMCE" stepKey="clickInsertImageInTinyMCE"/>
<actionGroup ref="ClickBrowseBtnOnUploadPopupActionGroup" stepKey="clickBrowserBtn"/>
<actionGroup ref="VerifyMediaGalleryStorageActionsActionGroup" stepKey="VerifyMediaGalleryStorageBtn"/>
<actionGroup ref="clickMediaGalleryStorageRootArrow" stepKey="clickMediaGalleryStorageRootArrow"/>
<comment userInput="BIC workaround" stepKey="clickMediaGalleryStorageRootArrow"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -43,11 +43,16 @@
<deleteData createDataKey="createCMSBlock" stepKey="deleteCMSBlock"/>
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -105,7 +110,13 @@
<actionGroup ref="clickInsertImageInTinyMCE" stepKey="clickInsertImageInTinyMCE"/>
<actionGroup ref="ClickBrowseBtnOnUploadPopupActionGroup" stepKey="clickBrowserBtn"/>
<actionGroup ref="VerifyMediaGalleryStorageActionsActionGroup" stepKey="VerifyMediaGalleryStorageBtn"/>
<actionGroup ref="clickMediaGalleryStorageRootArrow" stepKey="clickMediaGalleryStorageRootArrow"/>
<comment userInput="BIC workaround" stepKey="clickMediaGalleryStorageRootArrow"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -34,11 +34,16 @@
<after>
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder2">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage2">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder2"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage2"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -61,7 +66,13 @@
<argument name="page" value="$$createCMSPage.identifier$$"/>
</actionGroup>
<actionGroup ref="clickHtmlInsertImageButton" stepKey="clickInsertImageInHtmlCode"/>
<actionGroup ref="clickMediaGalleryStorageRootArrow" stepKey="clickMediaGalleryStorageRootArrow"/>
<comment userInput="BIC workaround" stepKey="clickMediaGalleryStorageRootArrow"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -30,27 +30,29 @@
</before>
<after>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder1">
<argument name="FolderName" value="{{PageBuilderImageProperty_JPG.path}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage1">
<argument name="Image" value="PageBuilderImageProperty_JPG"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder2">
<argument name="FolderName" value="{{PageBuilderImageProperty_JPG2.path}}"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage2">
<argument name="Image" value="PageBuilderImageProperty_JPG2"/>
<comment userInput="BIC workaround" stepKey="NavigateToFolder1"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder3">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage1">
<argument name="Image" value="PageBuilderImageProperty_JPG"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage3">
<comment userInput="BIC workaround" stepKey="NavigateToFolder2"/>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage2">
<argument name="Image" value="PageBuilderImageProperty_JPG2"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder4">
<argument name="FolderName" value="{{PageBuilderMobileImagePropertyGif.path}}"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder3"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage3"/>
<comment userInput="BIC workaround" stepKey="NavigateToFolder4"/>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage4">
<argument name="Image" value="PageBuilderMobileImagePropertyGif"/>
</actionGroup>
......@@ -102,8 +104,14 @@
<actionGroup ref="clickSelectFromGallerySlideOut" stepKey="clickSelectFromGallerySlideOut">
<argument name="property" value="PageBuilderImageProperty_JPG2"/>
</actionGroup>
<click selector="{{MediaGallerySection.StorageRootArrow}}" stepKey="clickStorageRoot"/>
<waitForPageLoad stepKey="waitForPageLoad"/>
<comment userInput="BIC workaround" stepKey="clickStorageRoot"/>
<comment userInput="BIC workaround" stepKey="waitForPageLoad"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="createImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -141,7 +141,8 @@
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettingsAfterChangingToFalse"/>
<!-- Validate Stage After Changing to False -->
<comment userInput="Validate Stage Changing to False" stepKey="commentValidateStageAfterChangingToFalse"/>
<see userInput="{{PageBuilderProductsMessage.noProductsFound}}" selector="{{ProductsOnStage.emptyProductsPlaceholder('1')}}" stepKey="validateProductCountStageAfterChangingToFalse"/>
<waitForElement selector="{{ProductsOnStage.emptyProductsPlaceholder('1')}}" stepKey="waitForEmptyProductsPlaceholder"/>
<waitForText userInput="{{PageBuilderProductsMessage.noProductsFound}}" selector="{{ProductsOnStage.emptyProductsPlaceholder('1')}}" stepKey="validateProductCountStageAfterChangingToFalse"/>
<actionGroup ref="exitPageBuilderFullScreen" stepKey="exitPageBuilderFullScreen2"/>
<actionGroup ref="SaveAndContinueEditCmsPageActionGroup" stepKey="saveAndContinueEditCmsPage2"/>
<!-- Validate Storefront 2 -->
......
......@@ -30,7 +30,8 @@
<argument name="CMSPage" value="$$createCMSPage$$"/>
</actionGroup>
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage2" after="navigateToCMSPage2"/>
<see userInput="{{PageBuilderProductsMessage.noProductsFound}}" selector="{{ProductsOnStage.emptyProductsPlaceholder('1')}}" stepKey="seeNoProductsMessage" after="switchToPageBuilderStage2"/>
<waitForElement selector="{{ProductsOnStage.emptyProductsPlaceholder('1')}}" stepKey="waitForEmptyProductsPlaceholder" after="switchToPageBuilderStage2"/>
<waitForText userInput="{{PageBuilderProductsMessage.noProductsFound}}" selector="{{ProductsOnStage.emptyProductsPlaceholder('1')}}" stepKey="seeNoProductsMessage" after="waitForEmptyProductsPlaceholder"/>
<!-- Storefront: Validate Sort Order Changed -->
<comment userInput="Storefront: Validate Sort Order Changed" stepKey="commentValidateStorefront2" after="seeNoProductsMessage"/>
<actionGroup ref="NavigateToStorefrontForCreatedPageActionGroup" stepKey="navigateToCMSPageStorefront2" after="commentValidateStorefront2">
......
......@@ -31,11 +31,16 @@
<magentoCLI command="cache:clean config" stepKey="flushCache"/>
<deleteData createDataKey="createPreReqCMSPage" stepKey="deleteCreatePreReqCMSPage"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="ImageUpload"/>
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -51,33 +56,44 @@
<click selector="{{MediaGallerySection.Browse}}" stepKey="clickBrowse"/>
<waitForPageLoad stepKey="waitForPageLoad2"/>
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear1"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToStorageRootFolder">
<comment userInput="BIC workaround" stepKey="navigateToStorageRootFolder"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<click selector="{{MediaGallerySection.CreateFolder}}" stepKey="createFolder"/>
<waitForElementVisible selector="{{MediaGallerySection.FolderName}}" stepKey="waitForPopup"/>
<fillField selector="{{MediaGallerySection.FolderName}}" userInput="{{ImageFolder.name}}" stepKey="fillFolderName"/>
<click selector="{{MediaGallerySection.AcceptFolderName}}" stepKey="acceptFolderName"/>
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear2"/>
<conditionalClick selector="{{MediaGallerySection.StorageRootArrow}}" dependentSelector="{{MediaGallerySection.checkIfArrowExpand}}" stepKey="clickStorageRootArrowIfClosed" visible="true"/>
<waitForPageLoad stepKey="waitForPageLoad3"/>
<conditionalClick selector="{{MediaGallerySection.WysiwygArrow}}" dependentSelector="{{MediaGallerySection.checkIfWysiwygArrowExpand}}" stepKey="clickWysiwygArrowIfClosed" visible="true"/>
<waitForPageLoad stepKey="waitForPageLoad4"/>
<waitForText userInput="{{ImageFolder.name}}" stepKey="waitForNewFolder"/>
<click userInput="{{ImageFolder.name}}" stepKey="clickOnCreatedFolder"/>
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear3"/>
<attachFile selector="{{MediaGallerySection.BrowseUploadImage}}" userInput="{{ImageUpload.file}}" stepKey="uploadImage1"/>
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear4"/>
<waitForElementVisible selector="{{MediaGallerySection.image(ImageUpload.file)}}" stepKey="waitForUploadImage1"/>
<seeElement selector="{{MediaGallerySection.imageSelected(ImageUpload.file)}}" stepKey="seeImageSelected"/>
<waitForElementVisible selector="{{MediaGallerySection.image(ImageUpload.file)}}" stepKey="waitForUploadImage2"/>
<click selector="{{MediaGallerySection.InsertFile}}" stepKey="clickInsertBtn"/>
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappear5"/>
<waitForElementVisible selector="{{MediaGallerySection.OkBtn}}" stepKey="waitForOkBtn"/>
<fillField selector="{{MediaGallerySection.ImageDescription}}" userInput="{{ImageUpload.content}}" stepKey="fillImageDescription"/>
<fillField selector="{{MediaGallerySection.Height}}" userInput="{{ImageUpload.height}}" stepKey="fillImageHeight"/>
<click selector="{{MediaGallerySection.OkBtn}}" stepKey="clickOkBtn"/>
<waitForPageLoad stepKey="waitForPageLoad5"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="createFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="waitForPopup"/>
<comment userInput="BIC workaround" stepKey="fillFolderName"/>
<comment userInput="BIC workaround" stepKey="acceptFolderName"/>
<comment userInput="BIC workaround" stepKey="waitForLoadingMaskToDisappear2"/>
<actionGroup ref="AttachImageActionGroup" stepKey="attachImage1">
<argument name="Image" value="ImageUpload3"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="clickStorageRootArrowIfClosed"/>
<comment userInput="BIC workaround" stepKey="waitForPageLoad3"/>
<comment userInput="BIC workaround" stepKey="clickWysiwygArrowIfClosed"/>
<comment userInput="BIC workaround" stepKey="waitForPageLoad4"/>
<comment userInput="BIC workaround" stepKey="waitForNewFolder"/>
<comment userInput="BIC workaround" stepKey="clickOnCreatedFolder"/>
<comment userInput="BIC workaround" stepKey="waitForLoadingMaskToDisappear3"/>
<comment userInput="BIC workaround" stepKey="uploadImage1"/>
<comment userInput="BIC workaround" stepKey="waitForLoadingMaskToDisappear4"/>
<comment userInput="BIC workaround" stepKey="waitForUploadImage1"/>
<comment userInput="BIC workaround" stepKey="seeImageSelected"/>
<comment userInput="BIC workaround" stepKey="waitForUploadImage2"/>
<actionGroup ref="SaveImageActionGroup" stepKey="insertImage"/>
<comment userInput="BIC workaround" stepKey="clickInsertBtn"/>
<comment userInput="BIC workaround" stepKey="waitForLoadingMaskToDisappear5"/>
<actionGroup ref="FillOutUploadImagePopupActionGroup" stepKey="fillOutUploadImagePopup"/>
<comment userInput="BIC workaround" stepKey="waitForOkBtn"/>
<comment userInput="BIC workaround" stepKey="fillImageDescription"/>
<comment userInput="BIC workaround" stepKey="fillImageHeight"/>
<comment userInput="BIC workaround" stepKey="clickOkBtn"/>
<comment userInput="BIC workaround" stepKey="waitForPageLoad5"/>
<actionGroup ref="SaveAndContinueEditCmsPageActionGroup" stepKey="saveAndContinueEditCmsPage"/>
<actionGroup ref="enablePageBuilderSetting" stepKey="enablePageBuilder"/>
<actionGroup ref="NavigateToCreatedCMSPageActionGroup" stepKey="navigateToContentCreatedCMSPage2">
......
......@@ -36,11 +36,16 @@
</before>
<after>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="PageBuilderImageProperty_StageJPG"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<deleteData createDataKey="createPreReqCMSPage" stepKey="deleteCreatePreReqCMSPage"/>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
......@@ -67,8 +72,14 @@
<waitForPageLoad stepKey="waitForImageSelectorModal"/>
<click selector="{{WYSIWYGOnPageBuilderInline.imageSelectorBrowse}}" stepKey="clickWYSIWYGImageSelectorBrowseButton"/>
<waitForPageLoad stepKey="waitForImageSelectorBrowseModal"/>
<click selector="{{MediaGallerySection.StorageRootArrow}}" stepKey="clickStorageRoot"/>
<waitForPageLoad stepKey="waitForStorageRoot"/>
<comment userInput="BIC workaround" stepKey="clickStorageRoot"/>
<comment userInput="BIC workaround" stepKey="waitForStorageRoot"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="createImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -28,11 +28,16 @@
</before>
<after>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<deleteData createDataKey="createCMSPage" stepKey="deletePreReqCMSPage"/>
<deleteData createDataKey="createCMSPageB" stepKey="deletePreReqCMSPageB"/>
......@@ -113,8 +118,14 @@
<waitForPageLoad stepKey="waitForPageLoad"/>
<actionGroup ref="ClickBrowseBtnOnUploadPopupActionGroup" stepKey="clickBrowserBtn"/>
<actionGroup ref="VerifyMediaGalleryStorageActionsActionGroup" stepKey="VerifyMediaGalleryStorageBtn"/>
<click selector="{{MediaGallerySection.StorageRootArrow}}" stepKey="clickStorageRoot"/>
<waitForPageLoad stepKey="waitForPageLoad2"/>
<comment userInput="BIC workaround" stepKey="clickStorageRoot"/>
<comment userInput="BIC workaround" stepKey="waitForPageLoad2"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -28,11 +28,16 @@
</before>
<after>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<deleteData createDataKey="createCMSPage" stepKey="deletePreReqCMSPage"/>
<deleteData createDataKey="createCMSPageB" stepKey="deletePreReqCMSPageB"/>
......@@ -119,8 +124,14 @@
<waitForPageLoad stepKey="waitForPageLoad"/>
<actionGroup ref="ClickBrowseBtnOnUploadPopupActionGroup" stepKey="clickBrowserBtn"/>
<actionGroup ref="VerifyMediaGalleryStorageActionsActionGroup" stepKey="VerifyMediaGalleryStorageBtn"/>
<click selector="{{MediaGallerySection.StorageRootArrow}}" stepKey="clickStorageRoot"/>
<waitForPageLoad stepKey="waitForPageLoad2"/>
<comment userInput="BIC workaround" stepKey="clickStorageRoot"/>
<comment userInput="BIC workaround" stepKey="waitForPageLoad2"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -31,11 +31,16 @@
<deleteData createDataKey="createCMSPage" stepKey="deletePreReqCMSPage"/>
<deleteData createDataKey="createCMSPageB" stepKey="deletePreReqCMSPageB"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -118,8 +123,14 @@
<waitForElementVisible selector="{{TextOnConfiguration.insertImageButton}}" stepKey="waitForInsertImage"/>
<click selector="{{TextOnConfiguration.insertImageButton}}" stepKey="clickInsertImage"/>
<waitForPageLoad stepKey="waitForPageLoad1"/>
<click selector="{{MediaGallerySection.StorageRootArrow}}" stepKey="clickStorageRoot"/>
<waitForPageLoad stepKey="waitForPageLoad2"/>
<comment userInput="BIC workaround" stepKey="clickStorageRoot"/>
<comment userInput="BIC workaround" stepKey="waitForPageLoad2"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -36,11 +36,16 @@
<after>
<magentoCLI command="config:set cms/wysiwyg/enabled enabled" stepKey="enableWYSIWYG1"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder2">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage2">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder2"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage2"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -56,8 +61,14 @@
<waitForElementVisible selector="{{TextOnConfiguration.insertImageButton}}" stepKey="waitForInsertImage"/>
<click selector="{{TextOnConfiguration.insertImageButton}}" stepKey="clickInsertImage"/>
<waitForPageLoad stepKey="waitForPageLoad"/>
<click selector="{{MediaGallerySection.StorageRootArrow}}" stepKey="clickStorageRoot"/>
<waitForPageLoad stepKey="waitForPageLoad2"/>
<comment userInput="BIC workaround" stepKey="clickStorageRoot"/>
<comment userInput="BIC workaround" stepKey="waitForPageLoad2"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -27,11 +27,16 @@
</before>
<after>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<deleteData createDataKey="createCMSPage" stepKey="deletePreReqCMSPage"/>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
......@@ -56,8 +61,14 @@
<waitForPageLoad stepKey="waitForPageLoad"/>
<actionGroup ref="ClickBrowseBtnOnUploadPopupActionGroup" stepKey="clickBrowserBtn"/>
<actionGroup ref="VerifyMediaGalleryStorageActionsActionGroup" stepKey="VerifyMediaGalleryStorageBtn"/>
<click selector="{{MediaGallerySection.StorageRootArrow}}" stepKey="clickStorageRoot"/>
<waitForPageLoad stepKey="waitForPageLoad2"/>
<comment userInput="BIC workaround" stepKey="clickStorageRoot"/>
<comment userInput="BIC workaround" stepKey="waitForPageLoad2"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -42,11 +42,16 @@
<deleteData createDataKey="createCMSBlock" stepKey="deleteCMSBlock"/>
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder2">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage2">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder2"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage2"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -70,7 +75,13 @@
<argument name="page" value="$$createCMSPage.identifier$$"/>
</actionGroup>
<actionGroup ref="clickHtmlInsertImageButton" stepKey="clickInsertImageInHtmlCode"/>
<actionGroup ref="clickMediaGalleryStorageRootArrow" stepKey="clickMediaGalleryStorageRootArrow"/>
<comment userInput="BIC workaround" stepKey="clickMediaGalleryStorageRootArrow"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
......@@ -46,11 +46,16 @@
<deleteData createDataKey="createPreReqCMSPage" stepKey="deleteCMSPageB"/>
<deleteData createDataKey="createCMSPage" stepKey="deleteCMSPage"/>
<actionGroup ref="NavigateToMediaGalleryActionGroup" stepKey="navigateToMediaGallery"/>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="NavigateToFolder">
<argument name="FolderName" value="{{ImageFolder.name}}"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="DeleteImageFromStorageActionGroup" stepKey="DeleteImageFromStorage">
<argument name="Image" value="ImageUpload3"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<comment userInput="BIC workaround" stepKey="NavigateToFolder"/>
<comment userInput="BIC workaround" stepKey="DeleteImageFromStorage"/>
<actionGroup ref="DeleteFolderActionGroup" stepKey="deleteMediaGalleryFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
</after>
......@@ -93,7 +98,13 @@
<actionGroup ref="clickInsertImageInTinyMCE" stepKey="clickInsertImageInTinyMCE"/>
<actionGroup ref="ClickBrowseBtnOnUploadPopupActionGroup" stepKey="clickBrowserBtn"/>
<actionGroup ref="VerifyMediaGalleryStorageActionsActionGroup" stepKey="VerifyMediaGalleryStorageBtn"/>
<actionGroup ref="clickMediaGalleryStorageRootArrow" stepKey="clickMediaGalleryStorageRootArrow"/>
<comment userInput="BIC workaround" stepKey="clickMediaGalleryStorageRootArrow"/>
<actionGroup ref="AdminExpandMediaGalleryFolderActionGroup" stepKey="expandStorageRootFolder">
<argument name="FolderName" value="Storage Root"/>
</actionGroup>
<actionGroup ref="NavigateToMediaFolderActionGroup" stepKey="navigateToWysiwygFolder">
<argument name="FolderName" value="wysiwyg"/>
</actionGroup>
<actionGroup ref="CreateImageFolderActionGroup" stepKey="CreateImageFolder">
<argument name="ImageFolder" value="ImageFolder"/>
</actionGroup>
......
{
"name": "magento/module-page-builder",
"description": "Page Builder module",
"type": "magento2-module",
"license": [
"proprietary"
],
"version": "2.2.1-p3",
"require": {
"magento/framework": "*",
"magento/module-eav": "*",
"magento/module-store": "*",
"magento/module-backend": "*",
"magento/module-cms": "*",
"magento/module-catalog": "*",
"magento/module-catalog-inventory": "*",
"magento/module-config": "*",
"magento/module-ui": "*",
"magento/module-variable": "*",
"magento/module-widget": "*",
"magento/module-catalog-widget": "*",
"magento/module-rule": "*",
"magento/module-directory": "*",
"magento/module-email": "*",
"magento/module-theme": "*",
"magento/module-wishlist": "*",
"magento/module-require-js": "*",
"magento/module-media-storage": "*",
"magento/framework": "103.0.*",
"magento/module-eav": "102.1.*",
"magento/module-store": "101.1.*",
"magento/module-backend": "102.0.*",
"magento/module-cms": "104.0.*",
"magento/module-catalog": "104.0.*",
"magento/module-catalog-inventory": "100.4.*",
"magento/module-config": "101.2.*",
"magento/module-ui": "101.2.*",
"magento/module-variable": "100.4.*",
"magento/module-widget": "101.2.*",
"magento/module-catalog-widget": "100.4.*",
"magento/module-rule": "100.4.*",
"magento/module-directory": "100.4.*",
"magento/module-email": "101.1.*",
"magento/module-theme": "101.1.*",
"magento/module-wishlist": "101.2.*",
"magento/module-require-js": "100.4.*",
"magento/module-media-storage": "100.4.*",
"php": "~7.3.0||~7.4.0",
"phpgt/dom": "2.1.6"
},
"suggest": {
"magento/module-review": "*"
},
"conflict": {
"gene/bluefoot": "*"
"magento/module-review": "100.4.*"
},
"type": "magento2-module",
"license": [
"proprietary"
],
"autoload": {
"files": [
"registration.php"
......@@ -41,5 +39,9 @@
"psr-4": {
"Magento\\PageBuilder\\": ""
}
},
"conflict": {
"gene/bluefoot": "*"
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment