diff --git a/vendor/magento/module-inventory-in-store-pickup-frontend/Model/Ui/SelectedPickupLocationCodeProvider.php b/vendor/magento/module-inventory-in-store-pickup-frontend/Model/Ui/SelectedPickupLocationCodeProvider.php
new file mode 100644
index 000000000000..bc1dfe499b76
--- /dev/null
+++ b/vendor/magento/module-inventory-in-store-pickup-frontend/Model/Ui/SelectedPickupLocationCodeProvider.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Copyright 2025 Adobe
+ * All Rights Reserved.
+ */
+declare(strict_types=1);
+
+namespace Magento\InventoryInStorePickupFrontend\Model\Ui;
+
+use Magento\Checkout\Model\ConfigProviderInterface;
+use Magento\Checkout\Model\Session as CheckoutSession;
+use Magento\InventoryInStorePickupShippingApi\Model\IsInStorePickupDeliveryCartInterface;
+
+/**
+ * Provide "selectedPickupLocationCode" in checkout config.
+ *
+ * @SuppressWarnings(PHPMD.CookieAndSessionMisuse)
+ */
+class SelectedPickupLocationCodeProvider implements ConfigProviderInterface
+{
+    /**
+     * @param IsInStorePickupDeliveryCartInterface $isInStorePickupDeliveryCart
+     * @param CheckoutSession $checkoutSession
+     */
+    public function __construct(
+        private readonly IsInStorePickupDeliveryCartInterface $isInStorePickupDeliveryCart,
+        private readonly CheckoutSession $checkoutSession
+    ) {
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getConfig()
+    {
+        $config = [];
+        if ($this->isInStorePickupDeliveryCart->execute($this->checkoutSession->getQuote())) {
+            $pickupLocationCode = $this->checkoutSession->getQuote()
+                ->getShippingAddress()
+                ?->getExtensionAttributes()
+                ?->getPickupLocationCode();
+
+            if ($pickupLocationCode) {
+                $config['selectedPickupLocationCode'] = $pickupLocationCode;
+            }
+        }
+        return $config;
+    }
+}
diff --git a/vendor/magento/module-inventory-in-store-pickup-frontend/etc/frontend/di.xml b/vendor/magento/module-inventory-in-store-pickup-frontend/etc/frontend/di.xml
index 7d952d2555cd..2983e1e152bc 100644
--- a/vendor/magento/module-inventory-in-store-pickup-frontend/etc/frontend/di.xml
+++ b/vendor/magento/module-inventory-in-store-pickup-frontend/etc/frontend/di.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <!--
 /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
+ * Copyright 2019 Adobe
+ * All Rights Reserved.
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
@@ -11,6 +11,7 @@
             <argument name="configProviders" xsi:type="array">
                 <item name="website_code_config_provider" xsi:type="object">Magento\InventoryInStorePickupFrontend\Model\Ui\WebsiteCodeConfigProvider</item>
                 <item name="in_store_pickup_checkout_config_provider" xsi:type="object">Magento\InventoryInStorePickupFrontend\Model\Ui\DelimiterConfigProvider</item>
+                <item name="inventory_in_store_pickup_frontend_selected_pickup_location_code_checkout_config_provider" xsi:type="object">Magento\InventoryInStorePickupFrontend\Model\Ui\SelectedPickupLocationCodeProvider</item>
             </argument>
         </arguments>
     </type>
diff --git a/vendor/magento/module-inventory-in-store-pickup-frontend/view/frontend/web/js/view/store-pickup.js b/vendor/magento/module-inventory-in-store-pickup-frontend/view/frontend/web/js/view/store-pickup.js
index 95f0f0a2ebc6..5cdbe4acce04 100644
--- a/vendor/magento/module-inventory-in-store-pickup-frontend/view/frontend/web/js/view/store-pickup.js
+++ b/vendor/magento/module-inventory-in-store-pickup-frontend/view/frontend/web/js/view/store-pickup.js
@@ -236,6 +236,11 @@ define([
                 selectedSourceCode = this.getPickupLocationCodeFromAddress(selectedPickupAddress);
             }
 
+            if (!selectedSourceCode) {
+                // Get the source code from the checkout config
+                selectedSourceCode = window.checkoutConfig.selectedPickupLocationCode;
+            }
+
             if (selectedSourceCode) {
                 pickupLocationsService
                     .getLocation(selectedSourceCode)
diff --git a/vendor/magento/module-inventory-in-store-pickup-quote/Plugin/Quote/ReplaceShippingAddressWithPickupLocationAddressOnAssignCustomer.php b/vendor/magento/module-inventory-in-store-pickup-quote/Plugin/Quote/ReplaceShippingAddressWithPickupLocationAddressOnAssignCustomer.php
new file mode 100644
index 000000000000..97dc595d2153
--- /dev/null
+++ b/vendor/magento/module-inventory-in-store-pickup-quote/Plugin/Quote/ReplaceShippingAddressWithPickupLocationAddressOnAssignCustomer.php
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Copyright 2025 Adobe
+ * All Rights Reserved.
+ */
+declare(strict_types=1);
+
+namespace Magento\InventoryInStorePickupQuote\Plugin\Quote;
+
+use Magento\Customer\Api\Data\CustomerInterface;
+use Magento\Framework\Api\DataObjectHelper;
+use Magento\Framework\Exception\NoSuchEntityException;
+use Magento\InventoryInStorePickup\Model\ExtractPickupLocationAddressData;
+use Magento\InventoryInStorePickupApi\Model\GetPickupLocationInterface;
+use Magento\InventoryInStorePickupQuote\Model\IsPickupLocationShippingAddress;
+use Magento\InventoryInStorePickupQuote\Model\GetShippingAddressData;
+use Magento\InventoryInStorePickupQuote\Model\GetWebsiteCodeByStoreId;
+use Magento\InventoryInStorePickupShippingApi\Model\IsInStorePickupDeliveryCartInterface;
+use Magento\InventorySalesApi\Api\Data\SalesChannelInterface;
+use Magento\Quote\Api\Data\AddressInterface;
+use Magento\Quote\Model\Quote;
+use Magento\Quote\Model\Quote\Address;
+
+/**
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ */
+class ReplaceShippingAddressWithPickupLocationAddressOnAssignCustomer
+{
+    /**
+     * @param IsInStorePickupDeliveryCartInterface $isInStorePickupDeliveryCart
+     * @param GetPickupLocationInterface $getPickupLocation
+     * @param ExtractPickupLocationAddressData $extractPickupLocationShippingAddressData
+     * @param DataObjectHelper $dataObjectHelper
+     * @param GetShippingAddressData $getShippingAddressData
+     * @param IsPickupLocationShippingAddress $isPickupLocationShippingAddress
+     * @param GetWebsiteCodeByStoreId $getWebsiteCodeByStoreId
+     */
+    public function __construct(
+        private readonly IsInStorePickupDeliveryCartInterface $isInStorePickupDeliveryCart,
+        private readonly GetPickupLocationInterface $getPickupLocation,
+        private readonly ExtractPickupLocationAddressData $extractPickupLocationShippingAddressData,
+        private readonly DataObjectHelper $dataObjectHelper,
+        private readonly GetShippingAddressData $getShippingAddressData,
+        private readonly IsPickupLocationShippingAddress $isPickupLocationShippingAddress,
+        private readonly GetWebsiteCodeByStoreId $getWebsiteCodeByStoreId
+    ) {
+    }
+
+    /**
+     * Replace Shipping Address with Pickup Location Shipping Address for Quote when customer is assigned to Quote.
+     *
+     * The original method overrides the shipping address with customer default shipping address which results in
+     * removing the pickup location address.
+     *
+     * @param Quote $quote
+     * @param CustomerInterface $customer
+     * @param Address|null $billingAddress
+     * @param Address|null $shippingAddress
+     * @return array
+     */
+    public function beforeAssignCustomerWithAddressChange(
+        Quote $quote,
+        CustomerInterface $customer,
+        ?Address $billingAddress = null,
+        ?Address $shippingAddress = null
+    ): array {
+        if (null === $shippingAddress
+            && $this->isInStorePickupDeliveryCart->execute($quote)
+            && $quote->getShippingAddress()?->getExtensionAttributes()?->getPickupLocationCode()
+        ) {
+            try {
+                $location = $this->getPickupLocation->execute(
+                    (string) $quote->getShippingAddress()->getExtensionAttributes()->getPickupLocationCode(),
+                    SalesChannelInterface::TYPE_WEBSITE,
+                    $this->getWebsiteCodeByStoreId->execute((int)$quote->getStoreId())
+                );
+            } catch (NoSuchEntityException $e) {  // phpcs:ignore Magento2.CodeAnalysis.EmptyBlock.DetectedCatch
+                // Pickup location is not found or is invalid for this store
+            }
+            if (isset($location)) {
+                $shippingAddress = $quote->getShippingAddress();
+                if (!$this->isPickupLocationShippingAddress->execute($location, $shippingAddress)) {
+                    $pickupLocationAddressData = $this->getShippingAddressData->execute()
+                        + $this->extractPickupLocationShippingAddressData->execute($location);
+
+                    $this->dataObjectHelper->populateWithArray(
+                        $shippingAddress,
+                        $pickupLocationAddressData,
+                        AddressInterface::class
+                    );
+                }
+            }
+        }
+        return [$customer, $billingAddress, $shippingAddress];
+    }
+}
diff --git a/vendor/magento/module-inventory-in-store-pickup-quote/etc/di.xml b/vendor/magento/module-inventory-in-store-pickup-quote/etc/di.xml
index a722010bb7e4..7677508c62e8 100644
--- a/vendor/magento/module-inventory-in-store-pickup-quote/etc/di.xml
+++ b/vendor/magento/module-inventory-in-store-pickup-quote/etc/di.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <!--
 /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
+ * Copyright 2019 Adobe
+ * All Rights Reserved.
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
@@ -34,4 +34,7 @@
     <type name="Magento\Quote\Model\Quote\TotalsCollector">
         <plugin name="in-store-pickup-set-shipping-description" type="Magento\InventoryInStorePickupQuote\Plugin\Quote\Address\SetShippingDescription" />
     </type>
+    <type name="Magento\Quote\Model\Quote">
+        <plugin name="inventory_in_store_pickup_quote_replace_shipping_address_on_assign_customer" sortOrder="20" type="Magento\InventoryInStorePickupQuote\Plugin\Quote\ReplaceShippingAddressWithPickupLocationAddressOnAssignCustomer" />
+    </type>
 </config>
