Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 commits
Select commit Hold shift + click to select a range
96a3994
add filter to UI
shauryemahajanSF Jun 5, 2025
9ff7e03
shop by availability filter opens store locator modal
shauryemahajanSF Jun 5, 2025
d2e515e
Initial commit for PDP changes for pickup in Store
snilakandan13 Jun 6, 2025
17ed9cb
Merge branch 'develop' of https://github.com/SalesforceCommerceCloud/…
snilakandan13 Jun 6, 2025
983089a
Modified Pickup as a Radio Button
snilakandan13 Jun 6, 2025
51282f7
Modified Pickup as a Radio Button
snilakandan13 Jun 6, 2025
ca7d6ad
Linting errors
snilakandan13 Jun 9, 2025
23d3bb1
Fixing product bundles
snilakandan13 Jun 9, 2025
f39b47f
Reverting git ignore
snilakandan13 Jun 9, 2025
c9b5e61
Remove my-test-project from repository and add to .gitignore
snilakandan13 Jun 9, 2025
fe8e9a4
Reverting other linting files
snilakandan13 Jun 9, 2025
b8a71e9
reverting unchanged files
snilakandan13 Jun 9, 2025
5219741
Translations
snilakandan13 Jun 9, 2025
f20e9e2
Cleaning up comments
snilakandan13 Jun 9, 2025
7625fd8
Added changes to PDP page
snilakandan13 Jun 9, 2025
b66584f
fix selected refinmenets and no search results page
shauryemahajanSF Jun 9, 2025
cbcd369
Review comments
snilakandan13 Jun 9, 2025
af96e17
Review comments
snilakandan13 Jun 9, 2025
f76d717
Added a test for ProductView
snilakandan13 Jun 9, 2025
de6d3f3
revert styling changes to PLP
shauryemahajanSF Jun 9, 2025
da1603a
added globalization and aria labels
shauryemahajanSF Jun 10, 2025
9ca9ed7
add helper function
shauryemahajanSF Jun 10, 2025
5fe6ca1
add unit tests
shauryemahajanSF Jun 10, 2025
dd6e286
comments
shauryemahajanSF Jun 10, 2025
392cff0
Review comments
snilakandan13 Jun 10, 2025
66e7c9c
Review comments
snilakandan13 Jun 10, 2025
b98aaf9
Merge branch 'feature/shop-in-store' into t/commerce/W-18669904/pdpCh…
snilakandan13 Jun 10, 2025
41161eb
linting error fix
snilakandan13 Jun 10, 2025
e972465
Merge branch 't/commerce/W-18669904/pdpChangesForPickupInStore' of ht…
snilakandan13 Jun 10, 2025
80fe957
add changes to handle external searches and route to appropriate sear…
sf-henry-semaganda Jun 10, 2025
a9fe106
nit update
sf-henry-semaganda Jun 10, 2025
ecdee88
Merge branch 'feature/shop-in-store' into sm/addStoreFilterOnPLP
shauryemahajanSF Jun 10, 2025
3a59152
Search Engine based Store locator updates
aditek-sf Jun 10, 2025
b9d368f
linting
shauryemahajanSF Jun 10, 2025
5e354cb
Review comment
snilakandan13 Jun 10, 2025
4094418
linting issue
snilakandan13 Jun 10, 2025
d2896bf
Fix capatilzations
shauryemahajanSF Jun 10, 2025
1e727ea
translations
shauryemahajanSF Jun 10, 2025
a5e34fa
fix translation
shauryemahajanSF Jun 11, 2025
9ce5366
Merge pull request #2537 from SalesforceCommerceCloud/t/commerce/W-18…
snilakandan13 Jun 11, 2025
a107791
@W-18670270 calcualte store inventory status
yhsieh1 Jun 11, 2025
dfe0a87
Merge branch 'feature/shop-in-store' of https://github.com/Salesforce…
yhsieh1 Jun 11, 2025
92640dc
update and testing
sf-henry-semaganda Jun 11, 2025
842ef98
Added test coverage and code cleanup
aditek-sf Jun 11, 2025
755daed
Updated changelog.md
aditek-sf Jun 11, 2025
45af5d9
Fixed linting errors
aditek-sf Jun 11, 2025
187b12f
Fixed unit test
aditek-sf Jun 11, 2025
da836c5
@W-18670270 Compute store level inventory and refactor product view
yhsieh1 Jun 11, 2025
a437bc1
update changelog and comment
yhsieh1 Jun 11, 2025
1bd91f0
fix lint
yhsieh1 Jun 11, 2025
67649e4
update linting
sf-henry-semaganda Jun 11, 2025
22e1774
update to remove unnecessary comment
sf-henry-semaganda Jun 11, 2025
a14e224
nit update
sf-henry-semaganda Jun 11, 2025
cae0b24
update label files
yhsieh1 Jun 11, 2025
8f82e54
lint update
sf-henry-semaganda Jun 11, 2025
8278190
update from recommendation
yhsieh1 Jun 11, 2025
39bef21
Refactored code
aditek-sf Jun 12, 2025
e4cd83c
Updated build bundle-size
aditek-sf Jun 12, 2025
42a1b47
Merge branch 'feature/shop-in-store' into t/commerce/spark/W-18669857…
aditek-sf Jun 12, 2025
61aa60d
Merge pull request #2546 from SalesforceCommerceCloud/sm/addStoreFilt…
shauryemahajanSF Jun 12, 2025
41baa86
Merge branch 'feature/shop-in-store' into t/commerce/W-18669857/itemB…
sf-henry-semaganda Jun 12, 2025
806b37a
Addressed Comments
aditek-sf Jun 12, 2025
4b89ef6
@W-18670270 Compute store level inventory and refactor product view
yhsieh1 Jun 12, 2025
ab1c943
Addressed more comments
aditek-sf Jun 12, 2025
9188930
Modified code
aditek-sf Jun 12, 2025
378a374
Context related refactor
aditek-sf Jun 12, 2025
e14ae29
Merge pull request #2551 from SalesforceCommerceCloud/t/commerce/spar…
aditek-sf Jun 13, 2025
fdc9f73
Merge pull request #2550 from SalesforceCommerceCloud/t/commerce/W-18…
sf-henry-semaganda Jun 13, 2025
bf28e78
shelving changes
sf-henry-semaganda Jun 17, 2025
db1a6d5
Inventory Filter no longer adds to Url search params
shauryemahajanSF Jun 17, 2025
1c5e1ee
updated test name
shauryemahajanSF Jun 17, 2025
c559c4e
linting
shauryemahajanSF Jun 17, 2025
b017414
added URL assertion
shauryemahajanSF Jun 18, 2025
a65201a
Merge pull request #2582 from SalesforceCommerceCloud/t/commerce/W-18…
shauryemahajanSF Jun 18, 2025
3df3928
Location based params to work with Item based params
aditek-sf Jun 18, 2025
cab7bd6
Modified code to fix console warnings
aditek-sf Jun 18, 2025
90482c2
update the bundlesize
aditek-sf Jun 18, 2025
ad9ca30
restore store selection functionality
sf-henry-semaganda Jun 18, 2025
b3f3d81
fix named import in invemntory filter
sf-henry-semaganda Jun 18, 2025
4400304
Handled extra ? scenarios
aditek-sf Jun 18, 2025
d2fc591
fix annoying typo sigh
sf-henry-semaganda Jun 18, 2025
9e7b81b
fix linting
sf-henry-semaganda Jun 18, 2025
b98a01a
Committing for PDP changes
snilakandan13 Jun 19, 2025
58e1272
additional fixes
snilakandan13 Jun 19, 2025
4a227e2
Merge pull request #2593 from SalesforceCommerceCloud/t/commerce/W-18…
snilakandan13 Jun 19, 2025
db02149
Minor Bug Fix in PDP page
snilakandan13 Jun 19, 2025
b2a7e0e
Minor Bug Fix in PDP page
snilakandan13 Jun 19, 2025
ed30e27
@W-18762161 BOPIS add to cart for store pick up (#2576)
patricksullivansf Jun 19, 2025
3ad2883
Merge pull request #2596 from SalesforceCommerceCloud/t/commerce/W-18…
snilakandan13 Jun 19, 2025
b54fe86
Merge pull request #2583 from SalesforceCommerceCloud/t/commerce/spar…
aditek-sf Jun 19, 2025
dd50db8
fix default country code constant
sf-henry-semaganda Jun 20, 2025
a2f23a1
update test file as well
sf-henry-semaganda Jun 20, 2025
9d7dd83
update package.json
sf-henry-semaganda Jun 20, 2025
b9b15c9
Merge branch 'feature/shop-in-store' into W-18762060_newStoreLocator
sf-henry-semaganda Jun 20, 2025
5f91ea4
upadte linting
sf-henry-semaganda Jun 20, 2025
26444e6
update
sf-henry-semaganda Jun 20, 2025
b41462e
updated import to new store locator
sf-henry-semaganda Jun 20, 2025
aa4c974
update linting
sf-henry-semaganda Jun 20, 2025
a57ed96
fix failing tests
sf-henry-semaganda Jun 20, 2025
85cb778
update
sf-henry-semaganda Jun 20, 2025
f0353aa
update 2
sf-henry-semaganda Jun 20, 2025
3a929ee
fix failing test
sf-henry-semaganda Jun 21, 2025
fa20c82
@W-18670798 BOPIS show store on order confirmation page (#2609)
patricksullivansf Jun 21, 2025
a88558b
Merge branch 'feature/shop-in-store' into W-18762060_newStoreLocator
sf-henry-semaganda Jun 21, 2025
a8f5ce5
Update en-XA.json
sf-henry-semaganda Jun 21, 2025
730686c
Update en-XA.json
sf-henry-semaganda Jun 21, 2025
e316046
Update en-XA.json
sf-henry-semaganda Jun 21, 2025
efee7bb
Update en-XA.json
sf-henry-semaganda Jun 21, 2025
455ff9f
Update en-XA.json
sf-henry-semaganda Jun 21, 2025
a462eb5
Update en-XA.json
sf-henry-semaganda Jun 21, 2025
3005306
Update en-XA.json
sf-henry-semaganda Jun 21, 2025
986228a
fix file
sf-henry-semaganda Jun 21, 2025
3a24fed
@W-18670794 - [BOPIS] Enhance the Checkout (#2580)
yunakim714 Jun 23, 2025
7992513
update translations file conflict
sf-henry-semaganda Jun 23, 2025
11ccaa8
fix translation files
sf-henry-semaganda Jun 23, 2025
4e4ed22
update import and test returns
sf-henry-semaganda Jun 23, 2025
53959fa
updated translatios finally
sf-henry-semaganda Jun 23, 2025
890838a
updated conflicted file
sf-henry-semaganda Jun 23, 2025
d01600f
updated conflicted file 2
sf-henry-semaganda Jun 23, 2025
642094a
updated conflicted file 3
sf-henry-semaganda Jun 23, 2025
263df38
Merge pull request #2584 from SalesforceCommerceCloud/W-18762060_newS…
sf-henry-semaganda Jun 23, 2025
d1454ce
@W-18833756 restrict deiverly option to match cart shipment
yhsieh1 Jun 23, 2025
fe0f024
@W-18833756 restrict add to cart by selected delivery option
yhsieh1 Jun 24, 2025
c29731c
@W-18670790 - [BOPIS] Enhance the Cart (#2632)
yunakim714 Jun 24, 2025
0c77dd1
@W-18779257 BOPIS clean up local storage (#2635)
patricksullivansf Jun 24, 2025
5eda890
fix cart and product modal with inventoryIds and hide delivery option…
yhsieh1 Jun 25, 2025
d0c216b
Merge branch 'feature/shop-in-store' of https://github.com/Salesforce…
yhsieh1 Jun 25, 2025
47fa33d
Enhanced Store locator functionality with location based params with v4
aditek-sf Jun 25, 2025
6fb23b4
Further enhancements and implemeted the store selection restriction f…
aditek-sf Jun 25, 2025
28e4de8
Refactored code to enhance the functionality and added tests
aditek-sf Jun 25, 2025
ccebc63
useSelectedStore changes
yhsieh1 Jun 25, 2025
ffe1a18
skip changelog
yhsieh1 Jun 25, 2025
b2fc757
update with suggestions
yhsieh1 Jun 25, 2025
c4750ed
fix translations files
yhsieh1 Jun 25, 2025
e0f8721
handle store change on PLP
shauryemahajanSF Jun 25, 2025
fca0723
@W-18833756 Restrict add item to cart by existing shipping method
yhsieh1 Jun 25, 2025
294b4fc
Merge pull request #2647 from SalesforceCommerceCloud/t/commerce/W-18…
shauryemahajanSF Jun 25, 2025
44d6ef1
Merge pull request #2643 from SalesforceCommerceCloud/t/commerce/spar…
aditek-sf Jun 25, 2025
9cd23ae
@W-18779257 BOPIS documentation fixes (#2648)
patricksullivansf Jun 25, 2025
5c9a17f
Merge branch 'develop' into feature/shop-in-store-merge
patricksullivansf Jun 25, 2025
8367fa6
@W-18779257 BOPIS format store hours on confirmation (#2652)
patricksullivansf Jun 25, 2025
5bff364
@W-18902458 Multi-Site store query issue fix (#2667)
aditek-sf Jun 27, 2025
c59c6ea
@W-18779257 BOPIS defer search engine URL feature (#2671)
patricksullivansf Jun 27, 2025
3ea409c
@W-18902385 - [BOPIS][Bug] Fix prefilling shipping address bug (#2673)
yunakim714 Jun 27, 2025
840d33f
fix pdp radio button behavior
shauryemahajanSF Jun 27, 2025
d76268d
Merge pull request #2679 from SalesforceCommerceCloud/t/commerce/W-18…
shauryemahajanSF Jun 27, 2025
f59ef18
@W-18902360 @W-18902533 BOPIS less content switch with store selectio…
patricksullivansf Jun 27, 2025
0f46169
@W-18779257 BOPIS reviewer feedback small corrections (#2692)
patricksullivansf Jun 28, 2025
cfd0c5e
fixed wrong error message bug
shauryemahajanSF Jun 27, 2025
47917e0
rebase
shauryemahajanSF Jun 30, 2025
cea2e28
fixed test
shauryemahajanSF Jun 30, 2025
6f29d79
lint fix
shauryemahajanSF Jun 30, 2025
e3649a9
Merge pull request #2681 from SalesforceCommerceCloud/t/commerce/W-18…
shauryemahajanSF Jun 30, 2025
0d7be96
@W-18902257 - [BOPIS] Implement feature toggle (#2694)
yunakim714 Jun 30, 2025
541a00e
Merge branch 'develop' into feature/shop-in-store
patricksullivansf Jun 30, 2025
0c02e08
Merge branch 'develop' into feature/shop-in-store
patricksullivansf Jul 1, 2025
27f92bd
@W-18942954 BOPIS revert unneeded swatch change (#2700)
patricksullivansf Jul 1, 2025
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
1 change: 1 addition & 0 deletions packages/template-retail-react-app/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
- Updated 6 new languages [#2495](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2495)
- Fix Einstein event tracking for `addToCart` event [#2558](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2558)
- Update latest translations for all languages [#2616](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2616)
- Added support for Buy Online Pick up In Store (BOPIS) [#2646](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2646)
- Load active data scripts on demand only [#2623](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2623)
- Provide base image for convenient perf optimizations [#2642](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2642)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ import {
THEME_COLOR,
CAT_MENU_DEFAULT_NAV_SSR_DEPTH,
CAT_MENU_DEFAULT_ROOT_CATEGORY,
DEFAULT_LOCALE
DEFAULT_LOCALE,
STORE_LOCATOR_IS_ENABLED
} from '@salesforce/retail-react-app/app/constants'

import Seo from '@salesforce/retail-react-app/app/components/seo'
Expand Down Expand Up @@ -354,10 +355,12 @@ const App = (props) => {

<Box id="app" display="flex" flexDirection="column" flex={1}>
<SkipNavLink zIndex="skipLink">Skip to Content</SkipNavLink>
<StoreLocatorModal
isOpen={isOpenStoreLocator}
onClose={onCloseStoreLocator}
/>
{STORE_LOCATOR_IS_ENABLED && (
<StoreLocatorModal
isOpen={isOpenStoreLocator}
onClose={onCloseStoreLocator}
/>
)}
<Box {...styles.headerWrapper}>
{!isCheckout ? (
<>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,17 +166,22 @@ test('bundle product view modal disables update button when quantity exceeds chi
expect(swingTankProductView).toBeInTheDocument()
expect(sizeSelectBtn).toBeInTheDocument()
expect(quantityInput).toBeInTheDocument()
expect(updateBtn).toBeEnabled()
expect(updateBtn).toBeInTheDocument()
})

// Set product bundle quantity selection to 4
fireEvent.change(quantityInput, {target: {value: '4'}})
fireEvent.keyDown(quantityInput, {key: 'Enter', code: 'Enter', charCode: 13})

// Wait for quantity change to be processed
await waitFor(() => {
expect(screen.getByRole('spinbutton', {name: /quantity/i})).toHaveValue('4')
})

// Now click the size selection
fireEvent.click(sizeSelectBtn)

await waitFor(() => {
expect(screen.getByRole('spinbutton', {name: /quantity/i})).toHaveValue('4')
expect(within(swingTankProductView).getAllByText('L')).toHaveLength(2)
expect(updateBtn).toBeDisabled()
expect(screen.getByText('Only 1 left!')).toBeInTheDocument()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,20 @@ import {
Text,
VStack,
Fade,
Stack,
Radio,
RadioGroup,
useTheme
} from '@salesforce/retail-react-app/app/components/shared/ui'

// Constants
const DELIVERY_OPTIONS = {
SHIP: 'ship',
PICKUP: 'pickup'
}
import {useCurrency, useDerivedProduct} from '@salesforce/retail-react-app/app/hooks'
import {useAddToCartModalContext} from '@salesforce/retail-react-app/app/hooks/use-add-to-cart-modal'
import {STORE_LOCATOR_IS_ENABLED} from '@salesforce/retail-react-app/app/constants'

// project components
import ImageGallery from '@salesforce/retail-react-app/app/components/image-gallery'
Expand Down Expand Up @@ -84,7 +94,8 @@ ProductViewHeader.propTypes = {
category: PropTypes.array,
priceData: PropTypes.object,
product: PropTypes.object,
isProductPartOfBundle: PropTypes.bool
isProductPartOfBundle: PropTypes.bool,
showDeliveryOptions: PropTypes.bool
}

const ButtonWithRegistration = withRegistration(Button)
Expand Down Expand Up @@ -118,7 +129,11 @@ const ProductView = forwardRef(
!isProductLoading && variant?.orderable && quantity > 0 && quantity <= stockLevel,
showImageGallery = true,
setSelectedBundleQuantity = () => {},
selectedBundleParentQuantity = 1
selectedBundleParentQuantity = 1,
pickupInStore = false,
setPickupInStore = () => {},
onOpenStoreLocator = () => {},
showDeliveryOptions = true
},
ref
) => {
Expand Down Expand Up @@ -146,7 +161,9 @@ const ProductView = forwardRef(
stockLevel,
stepQuantity,
isOutOfStock,
unfulfillable
unfulfillable,
isSelectedStoreOutOfStock,
selectedStore
} = useDerivedProduct(product, isProductPartOfSet, isProductPartOfBundle)
const priceData = useMemo(() => {
return getPriceData(product, {quantity})
Expand All @@ -155,6 +172,9 @@ const ProductView = forwardRef(
const isProductASet = product?.type.set
const isProductABundle = product?.type.bundle
const errorContainerRef = useRef(null)
const [pickupEnabled, setPickupEnabled] = useState(false)
const storeName = selectedStore?.name
const inventoryId = selectedStore?.inventoryId

const {disableButton, customInventoryMessage} = useMemo(() => {
let shouldDisableButton = showInventoryMessage
Expand Down Expand Up @@ -272,14 +292,17 @@ const ProductView = forwardRef(
return
}
try {
const itemsAdded = await addToCart(variant, quantity)
const itemsAdded = await addToCart([{variant, quantity}])
// Open modal only when `addToCart` returns some data
// It's possible that the item has been added to cart, but we don't want to open the modal.
// See wishlist_primary_action for example.
if (itemsAdded) {
onAddToCartModalOpen({
product,
itemsAdded,
itemsAdded: itemsAdded.map((item) => ({
...item,
product // attach the full product object
})),
selectedQuantity: quantity
})
}
Expand Down Expand Up @@ -399,6 +422,18 @@ const ProductView = forwardRef(
}
}, [showInventoryMessage, inventoryMessage])

// Auto-switch off pickup in store when product becomes unavailable at selected store
useEffect(() => {
setPickupEnabled(!!selectedStore?.inventoryId)
if (pickupInStore && isSelectedStoreOutOfStock) {
setPickupInStore(false)
}
}, [selectedStore])

const handleDeliveryOptionChange = (value) => {
setPickupInStore(value === DELIVERY_OPTIONS.PICKUP)
}

return (
<Flex direction={'column'} data-testid="product-view" ref={ref}>
{/* Basic information etc. title, price, breadcrumb*/}
Expand Down Expand Up @@ -641,12 +676,148 @@ const ProductView = forwardRef(
</Text>
</Fade>
)}
<Box
display={
isProductPartOfSet ? 'block' : ['none', 'none', 'none', 'block']
}
>
{renderActionButtons()}
<Box>
{showDeliveryOptions && (
<>
<Box mb={4}>
<Text fontWeight={600} mb={3}>
<FormattedMessage
defaultMessage="Delivery:"
id="product_view.label.delivery"
/>
</Text>
<RadioGroup
value={
pickupInStore
? DELIVERY_OPTIONS.PICKUP
: DELIVERY_OPTIONS.SHIP
}
onChange={handleDeliveryOptionChange}
mb={1}
>
<Stack direction="column" spacing={2}>
<Radio
value={DELIVERY_OPTIONS.SHIP}
isDisabled={disableButton}
>
<FormattedMessage
defaultMessage="Ship to Address"
id="product_view.label.ship_to_address"
/>
</Radio>
{STORE_LOCATOR_IS_ENABLED && (
<Radio
value={DELIVERY_OPTIONS.PICKUP}
isDisabled={
!pickupEnabled ||
(storeName &&
inventoryId &&
isSelectedStoreOutOfStock)
}
>
<FormattedMessage
defaultMessage="Pickup in Store"
id="product_view.label.pickup_in_store"
/>
</Radio>
)}
</Stack>
</RadioGroup>
</Box>

{STORE_LOCATOR_IS_ENABLED && (
<>
{storeName && inventoryId && (
<Text
color="black"
fontWeight={600}
mb={2}
data-testid="store-stock-status-msg"
>
{!isSelectedStoreOutOfStock
? intl.formatMessage(
{
id: 'product_view.status.in_stock_at_store',
defaultMessage:
'In Stock at {storeName}'
},
{
storeName: (
<Link
as="button"
color="blue.600"
textDecoration="underline"
onClick={
onOpenStoreLocator
}
>
{storeName}
</Link>
)
}
)
: intl.formatMessage(
{
id: 'product_view.status.out_of_stock_at_store',
defaultMessage:
'Out of Stock at {storeName}'
},
{
storeName: (
<Link
as="button"
color="blue.600"
textDecoration="underline"
onClick={
onOpenStoreLocator
}
>
{storeName}
</Link>
)
}
)}
</Text>
)}

{/* Show label if pickup is disabled due to no store/inventoryId */}
{!pickupEnabled && !storeName && !inventoryId && (
<Text
color="black"
fontWeight={600}
mb={3}
data-testid="pickup-select-store-msg"
>
<FormattedMessage
defaultMessage="Pickup in "
id="product_view.label.pickup_in_select_store_prefix"
/>{' '}
<Link
as="button"
color="blue.600"
textDecoration="underline"
onClick={onOpenStoreLocator}
>
<FormattedMessage
defaultMessage="Select Store"
id="product_view.label.select_store_link"
/>
</Link>
</Text>
)}
</>
)}
</>
)}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we break this into its own component (delivery-option)? This will make it easier to strip the BOPIS feature during app generation, also make customization easier.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will address refactoring into smaller components after integrating muti-ship

<Box
display={
isProductPartOfSet
? 'block'
: ['none', 'none', 'none', 'block']
}
>
{renderActionButtons()}
</Box>
</Box>
</Box>
</VStack>
Expand Down Expand Up @@ -698,7 +869,11 @@ ProductView.propTypes = {
validateOrderability: PropTypes.func,
showImageGallery: PropTypes.bool,
setSelectedBundleQuantity: PropTypes.func,
selectedBundleParentQuantity: PropTypes.number
selectedBundleParentQuantity: PropTypes.number,
pickupInStore: PropTypes.bool,
setPickupInStore: PropTypes.func,
onOpenStoreLocator: PropTypes.func,
showDeliveryOptions: PropTypes.bool
}

export default ProductView
Loading
Loading