Esempio n. 1
0
 /**
  * {@inheritdoc}
  */
 function submitForm(array &$form, FormStateInterface $form_state)
 {
     $variation = $this->variationStorage->load($form_state->getValue('variation'));
     $available_stores = $variation->getProduct()->getStores();
     if (count($available_stores) === 1) {
         $store = reset($available_stores);
     } else {
         $store = $this->storeContext->getStore();
         if (!in_array($store, $available_stores)) {
             // Throw an exception.
         }
     }
     // @todo The order type should not be hardcoded.
     $cart = $this->cartProvider->getCart('default', $store);
     if (!$cart) {
         $cart = $this->cartProvider->createCart('default', $store);
     }
     $quantity = $form_state->getValue('quantity');
     $combine = $form['#settings']['combine'];
     $this->cartManager->addEntity($cart, $variation, $quantity, $combine);
     drupal_set_message(t('@variation added to @cart-link.', ['@variation' => $variation->label(), '@cart-link' => Link::createFromRoute('your cart', 'commerce_cart.page')->toString()]));
 }