Sonata\Component\Basket\BaseBasketFactory::load PHP Méthode

load() public méthode

public load ( Sonata\Component\Customer\CustomerInterface $customer )
$customer Sonata\Component\Customer\CustomerInterface
    public function load(CustomerInterface $customer)
    {
        $basket = $this->getFromSession($customer);
        if (!$basket) {
            $basket = $this->basketManager->create();
            $basket->setLocale($customer->getLocale());
            $basket->setCurrency($this->currencyDetector->getCurrency());
        }
        $basket->setCustomer($customer);
        $this->basketBuilder->build($basket);
        return $basket;
    }

Usage Example

 /**
  * {@inheritdoc}
  */
 public function load(CustomerInterface $customer)
 {
     $sessionBasket = parent::load($customer);
     if ($customer->getId()) {
         $basket = $this->basketManager->loadBasketPerCustomer($customer);
         if (!$basket) {
             return $sessionBasket;
         }
         $this->basketBuilder->build($basket);
         if ($sessionBasket && !$sessionBasket->isEmpty()) {
             // Retrieve elements put in session before user logged in and replace db elements with it
             $basket->setBasketElements($sessionBasket->getBasketElements());
         }
         // Clear session to avoid retaking elements from session afterwards
         $this->clearSession($customer);
         // We need to ensure that both customer & customer id are set
         $basket->setCustomer($customer);
         return $basket;
     }
     return $sessionBasket;
 }
All Usage Examples Of Sonata\Component\Basket\BaseBasketFactory::load