/** * Fill address data. * * @param Address $address * @return void */ protected function fillAddress(Address $address) { $skipFields = ['email', 'default_shipping']; $addressData = $address->getData(); $addressData = array_flip(array_diff(array_flip($addressData), $skipFields)); $mapping = $this->dataMapping($addressData); $this->_fill($mapping); }
/** * Purge fields from pattern which are not present in fixture. * * @return string */ protected function preparePattern() { $outputPattern = $this->getPattern(); preg_match_all('@\\{\\{depend\\}\\}(.*?)\\{\\{.depend\\}\\}@siu', $outputPattern, $matches); foreach ($matches[1] as $key => $dependPart) { preg_match_all('@\\{\\{(\\w+)\\}\\}@', $dependPart, $depends); foreach ($depends[1] as $depend) { if ($this->address->getData(trim($depend)) === null) { $outputPattern = str_replace($matches[0][$key], "", $outputPattern); } } } return $outputPattern; }
/** * Prepare data. * * @param Customer $customer * @param Customer $initialCustomer [optional] * @param Address $address [optional] * @return array */ protected function prepareData(Customer $customer, Customer $initialCustomer = null, Address $address = null) { if ($initialCustomer) { $data['customer'] = $customer->hasData() ? array_merge($initialCustomer->getData(), $customer->getData()) : $initialCustomer->getData(); } else { $data['customer'] = $customer->getData(); } if ($address) { $data['addresses'][1] = $address->hasData() ? $address->getData() : []; } else { $data['addresses'] = []; } return $data; }