Exemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public static function createFromPurchasableEntity(PurchasableEntityInterface $entity) {
   $values = [
     'type' => $entity->getLineItemType(),
     'title' => $entity->getLineItemTitle(),
     'purchased_entity' => $entity,
   ];
   return self::create($values);
 }
Exemplo n.º 2
0
 /**
  * Selects the store for the given purchasable entity.
  *
  * If the entity is sold from one store, then that store is selected.
  * If the entity is sold from multiple stores, and the current store is
  * one of them, then that store is selected.
  *
  * @param \Drupal\commerce\PurchasableEntityInterface $entity
  *   The entity being added to cart.
  *
  * @throws \Exception
  *   When the entity can't be purchased from the current store.
  *
  * @return \Drupal\commerce_store\Entity\StoreInterface
  *   The selected store.
  */
 protected function selectStore(PurchasableEntityInterface $entity)
 {
     // @todo Add getStores() to the PurchasableEntityInterface.
     $stores = $entity->getProduct()->getStores();
     if (count($stores) === 1) {
         $store = reset($stores);
     } else {
         $store = $this->storeContext->getStore();
         if (!in_array($store, $stores)) {
             // Indicates that the site listings are not filtered properly.
             throw new \Exception("The given entity can't be purchased from the current store.");
         }
     }
     return $store;
 }