SaveProductPlugin.php 1.57 KB
Newer Older
Ketan's avatar
Ketan committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
<?php
/**
 *
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\ConfigurableProduct\Helper\Product\Configuration;

class SaveProductPlugin
{
    /**
     * Unserialize product data for configurable products
     *
     * @param \Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject
     * @param \Magento\Catalog\Model\Product $product
     * @param array $productData
     *
     * @return array
     */
    public function beforeInitializeFromData(
        \Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject,
        \Magento\Catalog\Model\Product $product,
        array $productData
    ) {
        if (isset($productData["configurable-matrix-serialized"])) {
            $configurableMatrixSerialized = $productData["configurable-matrix-serialized"];
            if (!empty($configurableMatrixSerialized)) {
                $productData["configurable-matrix"] = json_decode($configurableMatrixSerialized, true);
                unset($productData["configurable-matrix-serialized"]);
            }
        }
        if (isset($productData["associated_product_ids_serialized"])) {
            $associatedProductIdsSerialized = $productData["associated_product_ids_serialized"];
            if (!empty($associatedProductIdsSerialized)) {
                $productData["associated_product_ids"] = json_decode($associatedProductIdsSerialized, true);
                unset($productData["associated_product_ids_serialized"]);
            }
        }

        return [$product, $productData];
    }
}