$products = MarketplaceService::getMarketplaceProducts();
$matrixErpPropertyDynamicByGuid = [];
- foreach (range(1,2) as $ind) {
- $matrixErpPropertyDynamicByGuid[$ind] = MatrixErpPropertyDynamic::find()
- ->where(['product_id' => ArrayHelper::getColumn($products, 'id'), 'category' => $ind])
+ foreach (MatrixErpPropertyDynamic::fieldByCategory() as $category => $field) {
+ $matrixErpPropertyDynamicByGuid[$category] = MatrixErpPropertyDynamic::find()
+ ->where(['product_id' => ArrayHelper::getColumn($products, 'id'), 'category' => $category])
->indexBy('product_id')->asArray()->all();
}
if (in_array($product->id, array_keys($existingMapGuidGroupNames))
&& (in_array('marketplace', $existingMapGuidGroupNames[$product->id]))) {
$matrixErp = $existingMapGuidMatrixErp[$product->id];
- foreach (['components', 'articule'] as $fieldInd => $field) {
+ foreach (MatrixErpPropertyDynamic::fieldByCategory() as $category => $field) {
if ($matrixErp->$field != $product->$field) {
- $matrixErpPropertyDynamic1 = $matrixErpPropertyDynamicByGuid[$fieldInd + 1][$matrixErp->guid] ?? null;
+ $matrixErpPropertyDynamic1 = $matrixErpPropertyDynamicByGuid[$category][$matrixErp->guid] ?? null;
/* @var MatrixErpPropertyDynamic $matrixErpPropertyDynamic1 */
if ($matrixErpPropertyDynamic1) {
$matrixErpPropertyDynamic1->date_end = date("Y-m-d H:i:s");
$matrixErpPropertyDynamic2 = new MatrixErpPropertyDynamic;
$matrixErpPropertyDynamic2->product_id = $matrixErp->guid;
$matrixErpPropertyDynamic2->value = $product->$field;
- $matrixErpPropertyDynamic2->category = $fieldInd + 1;
+ $matrixErpPropertyDynamic2->category = $category;
$matrixErpPropertyDynamic2->date_from = date("Y-m-d H:i:s");
$matrixErpPropertyDynamic2->date_end = '2100-01-01 00:00:00';
$matrixErpPropertyDynamic2->save();