/** * Compare product's association * * @param array $originalAssociations original associations * @param array $associations product's associations * @param string $type type of association (PACK, SUBSTITUTION, etc) * @param string $key key of group (products or groups) * * @throws \LogicException * * @return array|null */ protected function compareAssociation(array $originalAssociations, array $associations, $type, $key) { $comparator = $this->comparatorRegistry->getFieldComparator(ProductNormalizer::FIELD_ASSOCIATIONS); $diff = $comparator->compare($associations, $this->getOriginalAssociation($originalAssociations, $type, $key)); if (null !== $diff) { return $diff; } return null; }
/** * Compare product's field * * @param array $originalValues * @param mixed $field * @param string $code * * @throws \LogicException * * @return array|null */ protected function compareField(array $originalValues, $field, $code) { $comparator = $this->comparatorRegistry->getFieldComparator($code); $diff = $comparator->compare($field, $this->getOriginalField($originalValues, $code)); if (null !== $diff) { return [$code => $diff]; } return null; }
/** * Compare product's association * * @param array $originalValues original associations * @param array $associations product's associations * @param string $type type of association (PACK, SUBSTITUTION, etc) * @param string $key key of group (products or groups) * * @throws \LogicException * * @return array|null */ protected function compareAssociation(array $originalValues, array $associations, $type, $key) { $comparator = $this->comparatorRegistry->getFieldComparator(self::ASSOCIATIONS_FIELD); $diff = $comparator->compare($associations, $this->getOriginalAssociation($originalValues, $type, $key)); if (null !== $diff) { return $diff; } return null; }