Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added progress bar to multiple shipping address checkout #29045

Open
wants to merge 6 commits into
base: 2.4-develop
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 18 additions & 2 deletions app/code/Magento/Multishipping/Block/Checkout/State.php
Original file line number Diff line number Diff line change
@@ -4,13 +4,14 @@
* See COPYING.txt for license details.
*/

namespace Magento\Multishipping\Block\Checkout;

/**
* Multishipping checkout state
*
* @api
* @author Magento Core Team <core@magentocommerce.com>
*/
namespace Magento\Multishipping\Block\Checkout;

class State extends \Magento\Framework\View\Element\Template
{
/**
@@ -33,10 +34,25 @@ public function __construct(
}

/**
* Return multishipping steps
*
* @return array
*/
public function getSteps()
{
return $this->_multishippingState->getSteps();
}

/**
* Return multishipping steps to render
*
* @return array
*/
public function getStepsToRender(): array
{
$allSteps = $this->_multishippingState->getSteps();
array_splice($allSteps, -2);

return $allSteps;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->

<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
<actionGroup name="AssertMultipleAddressesProgressBarActionGroup">
<waitForPageLoad stepKey="waitForShippingInformation"/>
<seeElement selector="{{MultishippingSection.progressBar}}" stepKey="seeProgressBar"/>
</actionGroup>
</actionGroups>
Original file line number Diff line number Diff line change
@@ -9,6 +9,7 @@
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
<section name="MultishippingSection">
<element name="pageTitle" type="text" selector="//span[text()='Ship to Multiple Addresses']"/>
<element name="progressBar" type="block" selector="#checkout-progress-state"/>
<element name="checkoutWithMultipleAddresses" type="button" selector="//span[text()='Check Out with Multiple Addresses']"/>
<element name="shippingMultipleCheckout" type="button" selector=".action.multicheckout"/>
<element name="shippingAddressSelector" type="select" selector="//tr[position()={{addressPosition}}]//td[@data-th='Send To']//select" parameterized="true"/>
Original file line number Diff line number Diff line change
@@ -47,6 +47,7 @@
</actionGroup>
<actionGroup ref="StorefrontOpenCartFromMinicartActionGroup" stepKey="openCart"/>
<actionGroup ref="CheckingWithMultipleAddressesActionGroup" stepKey="checkoutWithMultipleAddresses"/>
<actionGroup ref="AssertMultipleAddressesProgressBarActionGroup" stepKey="checkProgressBar"/>
<actionGroup ref="SelectMultiShippingInfoActionGroup" stepKey="checkoutWithMultipleShipping"/>
<actionGroup ref="SelectBillingInfoActionGroup" stepKey="checkoutWithPaymentMethod"/>
<actionGroup ref="ReviewOrderForMultiShipmentActionGroup" stepKey="reviewOrderForMultiShipment"/>
Original file line number Diff line number Diff line change
@@ -6,5 +6,9 @@
*/
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="checkout" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd" label="Multishipping Checkout" design_abstraction="custom">
<body/>
<body>
<referenceContainer name="columns.top">
<block class="Magento\Multishipping\Block\Checkout\State" name="checkout_state" template="Magento_Multishipping::checkout/state.phtml" before="-"/>
</referenceContainer>
</body>
</page>
Original file line number Diff line number Diff line change
@@ -14,10 +14,11 @@
* @see \Magento\Multishipping\Block\Checkout\State
*/
?>
<ol class="block multicheckout progress items" id="checkout-progress-state">
<?php foreach ($block->getSteps() as $_step) : ?>
<li title="<?= $block->escapeHtmlAttr($_step->getLabel()) ?>" class="item<?= ($_step->getIsActive()) ? ' active' : '' ?>">
<ul class="block multicheckout progress items opc-progress-bar" id="checkout-progress-state">
<?php foreach ($block->getStepsToRender() as $_step): ?>
<li title="<?= $block->escapeHtmlAttr($_step->getLabel()) ?>"
class="opc-progress-bar-item item<?= ($_step->getIsActive()) ? ' _active' : '' ?>">
<span><?= $block->escapeHtml($_step->getLabel()) ?></span>
</li>
<?php endforeach; ?>
</ol>
</ul>