private function checkBasketSet(Basket\BasketSet $set)
 {
     foreach ($set->getItems() as $item) {
         $this->checkBasketVariantItem($item);
     }
 }
Ejemplo n.º 2
0
 /**
  * @param BasketSet $basketSet
  *
  * @return $this
  */
 public function updateItemSet(BasketSet $basketSet)
 {
     $items = $basketSet->getItems();
     if (empty($items)) {
         throw new \InvalidArgumentException('BasketSet needs at least one item');
     }
     $setItems = array();
     foreach ($items as $subItem) {
         $item = array('variant_id' => $subItem->getVariantId(), 'app_id' => $subItem->getAppId());
         $additionalData = $subItem->getAdditionalData();
         if (!empty($additionalData)) {
             $this->checkAdditionData($additionalData);
             $item['additional_data'] = (array) $additionalData;
         }
         $setItems[] = $item;
     }
     $set = array('additional_data' => (array) $basketSet->getAdditionalData(), 'set_items' => $setItems);
     $setId = $basketSet->getId();
     if ($setId) {
         $set['id'] = $setId;
         $this->updatedItems[$setId] = $set;
     } else {
         $this->updatedItems[] = $set;
     }
     return $this;
 }
 /**
  * {@inheritdoc}
  *
  * @return Basket\BasketSet
  */
 public function createBasketSet(stdClass $jsonObject, array $products)
 {
     return Basket\BasketSet::createFromJson($jsonObject, $this, $products);
 }
 public function testAddItemSetToBasketWithProductID()
 {
     $ay = $this->getAY();
     $basket = new Basket();
     $set = new Basket\BasketSet('A123567', array('description' => 'test', 'image_url' => 'http://img-url'));
     $item = new Basket\BasketSetItem($this->getProductId(1));
     $set->addItem($item);
     $basket->updateItemSet($set);
     $result = $ay->updateBasket($this->getSessionId(), $basket);
     $this->assertTrue($result->hasErrors());
 }
 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage image_url is required in additional data
  */
 public function testSetAdditionalDataFailed()
 {
     $basketSet = new BasketSet('12', array('description' => 'test', 'image_url' => 'http://img-url'));
     $basketSet->setAdditionData(array('description' => 'test'));
 }