Skip to content

Commit 9ee464c

Browse files
Fix for #9566: Show the correct label in the admin
1 parent 921d5f6 commit 9ee464c

File tree

3 files changed

+80
-1
lines changed

3 files changed

+80
-1
lines changed

app/code/Magento/Sales/Model/Order/Config.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,14 @@ public function getStateDefaultStatus($state)
122122
*/
123123
public function getStatusLabel($code)
124124
{
125-
$code = $this->maskStatusForArea($this->state->getAreaCode(), $code);
125+
$area = $this->state->getAreaCode();
126+
$code = $this->maskStatusForArea($area, $code);
126127
$status = $this->orderStatusFactory->create()->load($code);
128+
129+
if ($area == 'adminhtml') {
130+
return $status->getLabel();
131+
}
132+
127133
return $status->getStoreLabel();
128134
}
129135

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Sales\Model\Order;
8+
9+
/**
10+
* Class ShipmentTest
11+
* @package Magento\Sales\Model\Order
12+
*/
13+
class StatusTest extends \PHPUnit\Framework\TestCase
14+
{
15+
/**
16+
* In the backend the regular label must be showed.
17+
*
18+
* @magentoDataFixture Magento/Sales/_files/order_status.php
19+
*/
20+
public function testTheLabelIsUsedInTheBackend()
21+
{
22+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
23+
$objectManager->get(\Magento\Framework\App\State::class)->setAreaCode('adminhtml');
24+
25+
/** @var \Magento\Sales\Model\Order $order */
26+
$order = $objectManager->create(\Magento\Sales\Model\Order::class);
27+
$order->loadByIncrementId('100000001');
28+
29+
$this->assertEquals('Example', $order->getStatusLabel());
30+
}
31+
32+
/**
33+
* In the frontend the store view specific label must be showed.
34+
*
35+
* @magentoDataFixture Magento/Sales/_files/order_status.php
36+
*/
37+
public function testTheStoreViewLabelIsUsedInTheFrontend()
38+
{
39+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
40+
$objectManager->get(\Magento\Framework\App\State::class)->setAreaCode('frontend');
41+
42+
/** @var \Magento\Sales\Model\Order $order */
43+
$order = $objectManager->create(\Magento\Sales\Model\Order::class);
44+
$order->loadByIncrementId('100000001');
45+
46+
$this->assertEquals('Store view example', $order->getStatusLabel());
47+
}
48+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
require __DIR__ . '/order.php';
8+
9+
$orderStatus = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
10+
\Magento\Sales\Model\Order\Status::class
11+
);
12+
13+
$data = [
14+
'status' => 'example',
15+
'label' => 'Example',
16+
'store_labels' => [
17+
1 => 'Store view example',
18+
]
19+
];
20+
21+
$orderStatus->setData($data)->setStatus('example');
22+
$orderStatus->save();
23+
24+
$order->setStatus('example');
25+
$order->save();

0 commit comments

Comments
 (0)