Skip to content

Commit 70542a3

Browse files
author
Yaroslav Voronoy
committed
Merge branch 'merchant_beta' of github.corp.ebay.com:magento-sparta/magento2ce into SUPEE-6842
2 parents e0b06c8 + ef89599 commit 70542a3

File tree

169 files changed

+2110
-1284
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

169 files changed

+2110
-1284
lines changed

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
1.0.0-beta3
2+
=============
3+
* Fixed bugs:
4+
* Fixed an issue with cms block cache if the block was added via layout xml
5+
* Fixed an issue with error message after click "Get Payment Update" for order placed within Authorize.net Direct Post with incorrect url in "Transaction Details Url"
6+
* Fixed an issue where unable to import images for configurable products
7+
* Fixed an issue where product links API does not return the linked product's sku and position with flat tables turned on
8+
* Fixed an issue where unable to run the CLI tool after the DI compilation
9+
* Fixed an issue where copies of LESS source files are created instead of symlinks in client side less compilation
10+
* Various improvements:
11+
* Stores and stores loading improvements
12+
* Created APIs to retrieve store information
13+
* Added the ability to send the purge requests for multiple servers
14+
* GitHub issues and requests:
15+
* [#1679](https://github.com/magento/magento2/issues/1679) -- Cannot run php bin/magento setup:di:compile (have to delete contents of var/di) first
16+
* [#1510](https://github.com/magento/magento2/issues/1510) -- Multisite does not work when Full Page Cache is enabled (FPC ignores MAGE_RUN_CODE)
17+
118
1.0.0-beta2
219
=============
320
* Fixed bugs:

app/code/Magento/AdminNotification/composer.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
"description": "N/A",
44
"require": {
55
"php": "~5.5.0|~5.6.0",
6-
"magento/module-store": "1.0.0-beta2",
7-
"magento/module-backend": "1.0.0-beta2",
8-
"magento/module-media-storage": "1.0.0-beta2",
9-
"magento/framework": "1.0.0-beta2",
6+
"magento/module-store": "1.0.0-beta3",
7+
"magento/module-backend": "1.0.0-beta3",
8+
"magento/module-media-storage": "1.0.0-beta3",
9+
"magento/framework": "1.0.0-beta3",
1010
"lib-libxml": "*",
1111
"magento/magento-composer-installer": "*"
1212
},
1313
"type": "magento2-module",
14-
"version": "1.0.0-beta2",
14+
"version": "1.0.0-beta3",
1515
"license": [
1616
"OSL-3.0",
1717
"AFL-3.0"

app/code/Magento/AdvancedPricingImportExport/composer.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
"description": "N/A",
44
"require": {
55
"php": "~5.5.0|~5.6.0",
6-
"magento/module-catalog": "1.0.0-beta2",
7-
"magento/module-catalog-inventory": "1.0.0-beta2",
8-
"magento/module-eav": "1.0.0-beta2",
9-
"magento/module-import-export": "1.0.0-beta2",
10-
"magento/module-catalog-import-export": "1.0.0-beta2",
11-
"magento/module-customer": "1.0.0-beta2",
12-
"magento/module-store": "1.0.0-beta2",
13-
"magento/framework": "1.0.0-beta2",
6+
"magento/module-catalog": "1.0.0-beta3",
7+
"magento/module-catalog-inventory": "1.0.0-beta3",
8+
"magento/module-eav": "1.0.0-beta3",
9+
"magento/module-import-export": "1.0.0-beta3",
10+
"magento/module-catalog-import-export": "1.0.0-beta3",
11+
"magento/module-customer": "1.0.0-beta3",
12+
"magento/module-store": "1.0.0-beta3",
13+
"magento/framework": "1.0.0-beta3",
1414
"magento/magento-composer-installer": "*"
1515
},
1616
"type": "magento2-module",
17-
"version": "1.0.0-beta2",
17+
"version": "1.0.0-beta3",
1818
"license": [
1919
"OSL-3.0",
2020
"AFL-3.0"

app/code/Magento/Authorization/composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
"description": "Authorization module provides access to Magento ACL functionality.",
44
"require": {
55
"php": "~5.5.0|~5.6.0",
6-
"magento/module-backend": "1.0.0-beta2",
7-
"magento/framework": "1.0.0-beta2",
6+
"magento/module-backend": "1.0.0-beta3",
7+
"magento/framework": "1.0.0-beta3",
88
"magento/magento-composer-installer": "*"
99
},
1010
"type": "magento2-module",
11-
"version": "1.0.0-beta2",
11+
"version": "1.0.0-beta3",
1212
"license": [
1313
"OSL-3.0",
1414
"AFL-3.0"

app/code/Magento/Authorizenet/Model/Authorizenet.php

Lines changed: 49 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
*/
66
namespace Magento\Authorizenet\Model;
77

8+
use Magento\Payment\Model\Method\Logger;
9+
810
/**
911
* @SuppressWarnings(PHPMD.TooManyFields)
1012
* @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
@@ -54,6 +56,8 @@ abstract class Authorizenet extends \Magento\Payment\Model\Method\Cc
5456

5557
const RESPONSE_REASON_CODE_PENDING_REVIEW_DECLINED = 254;
5658

59+
const PAYMENT_UPDATE_STATUS_CODE_SUCCESS = 'Ok';
60+
5761
/**
5862
* Transaction fraud state key
5963
*/
@@ -95,6 +99,11 @@ abstract class Authorizenet extends \Magento\Payment\Model\Method\Cc
9599
*/
96100
protected $transactionDetails = [];
97101

102+
/**
103+
* {@inheritdoc}
104+
*/
105+
protected $_debugReplacePrivateDataKeys = ['merchantAuthentication', 'x_login'];
106+
98107
/**
99108
* @param \Magento\Framework\Model\Context $context
100109
* @param \Magento\Framework\Registry $registry
@@ -364,11 +373,11 @@ protected function buildRequest(\Magento\Framework\Object $payment)
364373
*/
365374
protected function postRequest(\Magento\Authorizenet\Model\Request $request)
366375
{
367-
$debugData = ['request' => $request->getData()];
368376
$result = $this->responseFactory->create();
369377
$client = new \Magento\Framework\HTTP\ZendClient();
370-
$uri = $this->getConfigData('cgi_url');
371-
$client->setUri($uri ? $uri : self::CGI_URL);
378+
$url = $this->getConfigData('cgi_url') ?: self::CGI_URL;
379+
$debugData = ['url' => $url, 'request' => $request->getData()];
380+
$client->setUri($url);
372381
$client->setConfig(['maxredirects' => 0, 'timeout' => 30]);
373382

374383
foreach ($request->getData() as $key => $value) {
@@ -381,21 +390,21 @@ protected function postRequest(\Magento\Authorizenet\Model\Request $request)
381390

382391
try {
383392
$response = $client->request();
393+
$responseBody = $response->getBody();
394+
$debugData['response'] = $responseBody;
384395
} catch (\Exception $e) {
385396
$result->setXResponseCode(-1)
386397
->setXResponseReasonCode($e->getCode())
387398
->setXResponseReasonText($e->getMessage());
388399

389-
$debugData['result'] = $result->getData();
390-
$this->_debug($debugData);
391400
throw new \Magento\Framework\Exception\LocalizedException(
392401
$this->dataHelper->wrapGatewayError($e->getMessage())
393402
);
403+
} finally {
404+
$this->_debug($debugData);
394405
}
395406

396-
$responseBody = $response->getBody();
397407
$r = explode(self::RESPONSE_DELIM_CHAR, $responseBody);
398-
399408
if ($r) {
400409
$result->setXResponseCode((int)str_replace('"', '', $r[0]))
401410
->setXResponseReasonCode((int)str_replace('"', '', $r[2]))
@@ -413,10 +422,6 @@ protected function postRequest(\Magento\Authorizenet\Model\Request $request)
413422
__('Something went wrong in the payment gateway.')
414423
);
415424
}
416-
417-
$debugData['result'] = $result->getData();
418-
$this->_debug($debugData);
419-
420425
return $result;
421426
}
422427

@@ -473,24 +478,35 @@ protected function loadTransactionDetails($transactionId)
473478
);
474479

475480
$client = new \Magento\Framework\HTTP\ZendClient();
476-
$uri = $this->getConfigData('cgi_url_td');
477-
$client->setUri($uri ? $uri : self::CGI_URL_TD);
481+
$url = $this->getConfigData('cgi_url_td') ?: self::CGI_URL_TD;
482+
$client->setUri($url);
478483
$client->setConfig(['timeout' => 45]);
479484
$client->setHeaders(['Content-Type: text/xml']);
480485
$client->setMethod(\Zend_Http_Client::POST);
481486
$client->setRawData($requestBody);
482487

483-
$debugData = ['request' => $requestBody];
488+
$debugData = ['url' => $url, 'request' => $this->removePrivateDataFromXml($requestBody)];
484489

485490
try {
486491
$responseBody = $client->request()->getBody();
487-
$debugData['result'] = $responseBody;
488-
$this->_debug($debugData);
492+
$debugData['response'] = $responseBody;
489493
libxml_use_internal_errors(true);
490494
$responseXmlDocument = new \Magento\Framework\Simplexml\Element($responseBody);
491495
libxml_use_internal_errors(false);
492496
} catch (\Exception $e) {
493-
throw new \Magento\Framework\Exception\LocalizedException(__('Payment updating error.'));
497+
throw new \Magento\Framework\Exception\LocalizedException(
498+
__('Unable to get transaction details. Try again later.')
499+
);
500+
} finally {
501+
$this->_debug($debugData);
502+
}
503+
504+
if (!isset($responseXmlDocument->messages->resultCode)
505+
|| $responseXmlDocument->messages->resultCode != static::PAYMENT_UPDATE_STATUS_CODE_SUCCESS
506+
) {
507+
throw new \Magento\Framework\Exception\LocalizedException(
508+
__('Unable to get transaction details. Try again later.')
509+
);
494510
}
495511

496512
$this->transactionDetails[$transactionId] = $responseXmlDocument;
@@ -509,4 +525,20 @@ protected function getTransactionDetails($transactionId)
509525
? $this->transactionDetails[$transactionId]
510526
: $this->loadTransactionDetails($transactionId);
511527
}
528+
529+
/**
530+
* Remove nodes with private data from XML string
531+
*
532+
* Uses values from $_debugReplacePrivateDataKeys property
533+
*
534+
* @param string $xml
535+
* @return string
536+
*/
537+
protected function removePrivateDataFromXml($xml)
538+
{
539+
foreach ($this->getDebugReplacePrivateDataKeys() as $key) {
540+
$xml = preg_replace(sprintf('~(?<=<%s>).*?(?=</%s>)~', $key, $key), Logger::DEBUG_KEYS_MASK, $xml);
541+
}
542+
return $xml;
543+
}
512544
}

app/code/Magento/Authorizenet/Model/Directpost.php

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -718,17 +718,21 @@ protected function processOrder(\Magento\Sales\Model\Order $order)
718718
*/
719719
protected function processPaymentFraudStatus(\Magento\Sales\Model\Order\Payment $payment)
720720
{
721-
$fraudDetailsResponse = $payment->getMethodInstance()
722-
->fetchTransactionFraudDetails($this->getResponse()->getXTransId());
723-
$fraudData = $fraudDetailsResponse->getData();
721+
try {
722+
$fraudDetailsResponse = $payment->getMethodInstance()
723+
->fetchTransactionFraudDetails($this->getResponse()->getXTransId());
724+
$fraudData = $fraudDetailsResponse->getData();
724725

725-
if (empty($fraudData)) {
726-
$payment->setIsFraudDetected(false);
727-
return $this;
728-
}
726+
if (empty($fraudData)) {
727+
$payment->setIsFraudDetected(false);
728+
return $this;
729+
}
729730

730-
$payment->setIsFraudDetected(true);
731-
$payment->setAdditionalInformation('fraud_details', $fraudData);
731+
$payment->setIsFraudDetected(true);
732+
$payment->setAdditionalInformation('fraud_details', $fraudData);
733+
} catch (\Exception $e) {
734+
//this request is optional
735+
}
732736

733737
return $this;
734738
}
@@ -741,23 +745,27 @@ protected function processPaymentFraudStatus(\Magento\Sales\Model\Order\Payment
741745
*/
742746
protected function addStatusComment(\Magento\Sales\Model\Order\Payment $payment)
743747
{
744-
$transactionId = $this->getResponse()->getXTransId();
745-
$data = $payment->getMethodInstance()->getTransactionDetails($transactionId);
746-
$transactionStatus = (string)$data->transaction->transactionStatus;
747-
$fdsFilterAction = (string)$data->transaction->FDSFilterAction;
748-
749-
if ($payment->getIsTransactionPending()) {
750-
$message = 'Amount of %1 is pending approval on the gateway.<br/>'
751-
. 'Transaction "%2" status is "%3".<br/>'
752-
. 'Transaction FDS Filter Action is "%4"';
753-
$message = __(
754-
$message,
755-
$payment->getOrder()->getBaseCurrency()->formatTxt($this->getResponse()->getXAmount()),
756-
$transactionId,
757-
$this->dataHelper->getTransactionStatusLabel($transactionStatus),
758-
$this->dataHelper->getFdsFilterActionLabel($fdsFilterAction)
759-
);
760-
$payment->getOrder()->addStatusHistoryComment($message);
748+
try {
749+
$transactionId = $this->getResponse()->getXTransId();
750+
$data = $payment->getMethodInstance()->getTransactionDetails($transactionId);
751+
$transactionStatus = (string)$data->transaction->transactionStatus;
752+
$fdsFilterAction = (string)$data->transaction->FDSFilterAction;
753+
754+
if ($payment->getIsTransactionPending()) {
755+
$message = 'Amount of %1 is pending approval on the gateway.<br/>'
756+
. 'Transaction "%2" status is "%3".<br/>'
757+
. 'Transaction FDS Filter Action is "%4"';
758+
$message = __(
759+
$message,
760+
$payment->getOrder()->getBaseCurrency()->formatTxt($this->getResponse()->getXAmount()),
761+
$transactionId,
762+
$this->dataHelper->getTransactionStatusLabel($transactionStatus),
763+
$this->dataHelper->getFdsFilterActionLabel($fdsFilterAction)
764+
);
765+
$payment->getOrder()->addStatusHistoryComment($message);
766+
}
767+
} catch (\Exception $e) {
768+
//this request is optional
761769
}
762770
return $this;
763771
}

app/code/Magento/Authorizenet/composer.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
"description": "N/A",
44
"require": {
55
"php": "~5.5.0|~5.6.0",
6-
"magento/module-sales": "1.0.0-beta2",
7-
"magento/module-store": "1.0.0-beta2",
8-
"magento/module-quote": "1.0.0-beta2",
9-
"magento/module-checkout": "1.0.0-beta2",
10-
"magento/module-backend": "1.0.0-beta2",
11-
"magento/module-payment": "1.0.0-beta2",
12-
"magento/module-catalog": "1.0.0-beta2",
13-
"magento/framework": "1.0.0-beta2",
6+
"magento/module-sales": "1.0.0-beta3",
7+
"magento/module-store": "1.0.0-beta3",
8+
"magento/module-quote": "1.0.0-beta3",
9+
"magento/module-checkout": "1.0.0-beta3",
10+
"magento/module-backend": "1.0.0-beta3",
11+
"magento/module-payment": "1.0.0-beta3",
12+
"magento/module-catalog": "1.0.0-beta3",
13+
"magento/framework": "1.0.0-beta3",
1414
"magento/magento-composer-installer": "*"
1515
},
1616
"type": "magento2-module",
17-
"version": "1.0.0-beta2",
17+
"version": "1.0.0-beta3",
1818
"license": [
1919
"proprietary"
2020
],

app/code/Magento/Backend/composer.json

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,27 @@
33
"description": "N/A",
44
"require": {
55
"php": "~5.5.0|~5.6.0",
6-
"magento/module-store": "1.0.0-beta2",
7-
"magento/module-directory": "1.0.0-beta2",
8-
"magento/module-developer": "1.0.0-beta2",
9-
"magento/module-eav": "1.0.0-beta2",
10-
"magento/module-cron": "1.0.0-beta2",
11-
"magento/module-theme": "1.0.0-beta2",
12-
"magento/module-reports": "1.0.0-beta2",
13-
"magento/module-sales": "1.0.0-beta2",
14-
"magento/module-quote": "1.0.0-beta2",
15-
"magento/module-catalog": "1.0.0-beta2",
16-
"magento/module-user": "1.0.0-beta2",
17-
"magento/module-backup": "1.0.0-beta2",
18-
"magento/module-customer": "1.0.0-beta2",
19-
"magento/module-translation": "1.0.0-beta2",
20-
"magento/module-require-js": "1.0.0-beta2",
21-
"magento/module-config": "1.0.0-beta2",
22-
"magento/framework": "1.0.0-beta2",
6+
"magento/module-store": "1.0.0-beta3",
7+
"magento/module-directory": "1.0.0-beta3",
8+
"magento/module-developer": "1.0.0-beta3",
9+
"magento/module-eav": "1.0.0-beta3",
10+
"magento/module-cron": "1.0.0-beta3",
11+
"magento/module-theme": "1.0.0-beta3",
12+
"magento/module-reports": "1.0.0-beta3",
13+
"magento/module-sales": "1.0.0-beta3",
14+
"magento/module-quote": "1.0.0-beta3",
15+
"magento/module-catalog": "1.0.0-beta3",
16+
"magento/module-user": "1.0.0-beta3",
17+
"magento/module-backup": "1.0.0-beta3",
18+
"magento/module-customer": "1.0.0-beta3",
19+
"magento/module-translation": "1.0.0-beta3",
20+
"magento/module-require-js": "1.0.0-beta3",
21+
"magento/module-config": "1.0.0-beta3",
22+
"magento/framework": "1.0.0-beta3",
2323
"magento/magento-composer-installer": "*"
2424
},
2525
"type": "magento2-module",
26-
"version": "1.0.0-beta2",
26+
"version": "1.0.0-beta3",
2727
"license": [
2828
"OSL-3.0",
2929
"AFL-3.0"

0 commit comments

Comments
 (0)