diff --git a/Block/Checkout/LayoutProcessor.php b/Block/Checkout/LayoutProcessor.php index d72df6b..d71bfbb 100644 --- a/Block/Checkout/LayoutProcessor.php +++ b/Block/Checkout/LayoutProcessor.php @@ -51,40 +51,55 @@ public function __construct( public function process($jsLayout) { if ($this->carrierFactory->getIfActive($this->methodCode)) { - // @codingStandardsIgnoreStart - $storeDelivery = $jsLayout['components']['checkout']['children']['steps']['children'] - ['shipping-step']['children']['shippingAddress']['children']['address-list'] - ['rendererTemplates']['store-delivery']['children']['smile-store-delivery'] - ['children']['store-delivery']; - // @codingStandardsIgnoreEnd - - $storeDelivery['provider'] = $this->map->getIdentifier(); - $storeDelivery['markers'] = $this->getStores(); - $storeDelivery = array_merge($storeDelivery, $this->map->getConfig()); - - // @codingStandardsIgnoreStart - $jsLayout['components']['checkout']['children']['steps']['children'] - ['shipping-step']['children']['shippingAddress']['children']['address-list'] - ['rendererTemplates']['store-delivery']['children']['smile-store-delivery'] - ['children']['store-delivery'] = $storeDelivery; - // @codingStandardsIgnoreEnd - - // @codingStandardsIgnoreStart - $geocoder = $jsLayout['components']['checkout']['children']['steps']['children'] - ['shipping-step']['children']['shippingAddress']['children']['address-list'] - ['rendererTemplates']['store-delivery']['children']['smile-store-delivery'] - ['children']['store-delivery']['children']['geocoder']; - // @codingStandardsIgnoreEnd - - $geocoder['provider'] = $this->map->getIdentifier(); - $geocoder = array_merge($geocoder, $this->map->getConfig()); - - // @codingStandardsIgnoreStart - $jsLayout['components']['checkout']['children']['steps']['children'] - ['shipping-step']['children']['shippingAddress']['children']['address-list'] - ['rendererTemplates']['store-delivery']['children']['smile-store-delivery'] - ['children']['store-delivery']['children']['geocoder'] = $geocoder; - // @codingStandardsIgnoreEnd + $markers = $this->getStores(); + + if ($markers) { + // @codingStandardsIgnoreStart + $storeDelivery = $jsLayout['components']['checkout']['children']['steps']['children'] + ['shipping-step']['children']['shippingAddress']['children']['address-list'] + ['rendererTemplates']['store-delivery']['children']['smile-store-delivery'] + ['children']['store-delivery']; + // @codingStandardsIgnoreEnd + + $storeDelivery['provider'] = $this->map->getIdentifier(); + $storeDelivery['markers'] = $markers; + $storeDelivery = array_merge($storeDelivery, $this->map->getConfig()); + + // @codingStandardsIgnoreStart + $jsLayout['components']['checkout']['children']['steps']['children'] + ['shipping-step']['children']['shippingAddress']['children']['address-list'] + ['rendererTemplates']['store-delivery']['children']['smile-store-delivery'] + ['children']['store-delivery'] = $storeDelivery; + // @codingStandardsIgnoreEnd + + // @codingStandardsIgnoreStart + $geocoder = $jsLayout['components']['checkout']['children']['steps']['children'] + ['shipping-step']['children']['shippingAddress']['children']['address-list'] + ['rendererTemplates']['store-delivery']['children']['smile-store-delivery'] + ['children']['store-delivery']['children']['geocoder']; + // @codingStandardsIgnoreEnd + + $geocoder['provider'] = $this->map->getIdentifier(); + $geocoder = array_merge($geocoder, $this->map->getConfig()); + + // @codingStandardsIgnoreStart + $jsLayout['components']['checkout']['children']['steps']['children'] + ['shipping-step']['children']['shippingAddress']['children']['address-list'] + ['rendererTemplates']['store-delivery']['children']['smile-store-delivery'] + ['children']['store-delivery']['children']['geocoder'] = $geocoder; + // @codingStandardsIgnoreEnd + } + + // unset store-delivery if $markers found + if (!$markers) { + unset($jsLayout['components']['checkout']['children']['steps']['children'] + ['shipping-step']['children']['shippingAddress']['children']['address-list'] + ['rendererTemplates']['store-delivery']); + unset($jsLayout['components']['checkout']['children']['steps']['children'] + ['shipping-step']['children']['smile-store-delivery-address-provider']); + unset($jsLayout['components']['checkout']['children']['sidebar']['children'] + ['shipping-information']['children']['ship-to']['rendererTemplates']['store-delivery']); + } } return $jsLayout;