/** * @depends testBasket */ public function testUpdateBasket(Basket $basket) { $this->markTestSkipped('This test is useless'); $exceptedRequestBody = '[{"basket":{"session_id":"testing"}}]'; $ay = $this->getAYWithResultFile('result/basket1.json', $exceptedRequestBody); $basket = $ay->updateBasket($this->sessionId, $basket); $this->checkBasket($basket); $basket->deleteItem('item3'); $exceptedRequestBody = '[{"basket":{"session_id":"testing","order_lines":[{"delete":"item3"}]}}]'; $ay = $this->getAYWithResultFile('result/basket1.json', $exceptedRequestBody); $ay->updateBasket($this->sessionId, $basket); $basket = Basket::createFromJson(json_decode('{"products":[], "order_line":[], "total_price":123, "total_net":12,"total_vat":34}'), $ay->getResultFactory()); $basket->updateItem(new Basket\BasketItem('item1', 123)); $exceptedRequestBody = '[{"basket":{"session_id":"testing","order_lines":[{"variant_id":123,"app_id":null,"id":"item1"}]}}]'; $ay = $this->getAYWithResultFile('result/basket1.json', $exceptedRequestBody); $ay->updateBasket($this->sessionId, $basket); $basket = new Basket(); $basket->updateItem(new Basket\BasketItem(null, 123)); $exceptedRequestBody = '[{"basket":{"session_id":"testing","order_lines":[{"variant_id":123,"app_id":null}]}}]'; $ay = $this->getAYWithResultFile('result/basket1.json', $exceptedRequestBody); $ay->updateBasket($this->sessionId, $basket); $basket = new Basket(); $basket->updateItem(new Basket\BasketItem('item2', 123)); $exceptedRequestBody = '[{"basket":{"session_id":"testing","order_lines":[{"variant_id":123,"app_id":null,"id":"item2"}]}}]'; $ay = $this->getAYWithResultFile('result/basket1.json', $exceptedRequestBody); $ay->updateBasket($this->sessionId, $basket); $basket = new Basket(); $basket->updateItem(new Basket\BasketItem('item3', 123, array('description' => 'Wudnerschön'))); $exceptedRequestBody = '[{"basket":{"session_id":"testing","order_lines":[{"variant_id":123,"app_id":null,"id":"item3","additional_data":{"description":"Wudnersch\\u00f6n"}}]}}]'; $ay = $this->getAYWithResultFile('result/basket1.json', $exceptedRequestBody); $ay->updateBasket($this->sessionId, $basket); $basket = new Basket(); $item = new Basket\BasketItem('item3', 123); $item->setAdditionData(array('description' => 'Wudnerschön')); $basket->updateItem($item); $exceptedRequestBody = '[{"basket":{"session_id":"testing","order_lines":[{"variant_id":123,"app_id":null,"id":"item3","additional_data":{"description":"Wudnersch\\u00f6n"}}]}}]'; $ay = $this->getAYWithResultFile('result/basket1.json', $exceptedRequestBody); $ay->updateBasket($this->sessionId, $basket); $updatedItem4 = <<<EOS { "additional_data": {"description": "Wudnersch\\u00f6n und so", "image_url": "http://google.de"}, "set_items": [ { "variant_id": 12312121, "app_id":null }, { "variant_id": 66666, "app_id":null, "additional_data": { "description": "engravingssens", "internal_infos":["stuff"] } } ], "id": "identifier4" } EOS; $updatedItem4 = json_encode(json_decode($updatedItem4)); // reformat $basket = new Basket(); $basket->updateItemSet(Basket\BasketSet::create('identifier4', array(array(12312121), array(66666, array('description' => 'engravingssens', 'internal_infos' => array('stuff')))), array('description' => 'Wudnerschön und so', "image_url" => "http://google.de"))); $exceptedRequestBody = '[{"basket":{"session_id":"testing","order_lines":[' . $updatedItem4 . ']}}]'; $ay = $this->getAYWithResultFile('result/basket1.json', $exceptedRequestBody); $ay->updateBasket($this->sessionId, $basket); }
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()); }
/** * Remove basket item. * * @param string $sessionId Free to choose ID of the current website visitor. * @param string[] $itemIds array of basket item ids to delete, this can be sets or single items * @param bool $cleanErrors * @param bool $refresh * * @return \AboutYou\SDK\Model\Basket */ public function removeItemsFromBasket($sessionId, $itemIds, $cleanErrors = true, $refresh = true) { $basket = new Basket(); $basket->deleteItems($itemIds); return $this->updateBasket($sessionId, $basket, $cleanErrors, $refresh); }
/** * @param string $basketId * @param Basket $basket * @param bool $cleanErrors * @param bool $refresh * * @return $this */ public function updateBasket($basketId, Basket $basket, $cleanErrors = true, $refresh = true) { $this->checkBasketId($basketId); $basketQuery = array('session_id' => $basketId, 'clean_errors' => $cleanErrors, 'refresh' => $refresh); if ($basket->isClearedOnUpdate()) { $basketQuery['clear'] = true; } $orderLines = $basket->getOrderLinesArray(); if (!empty($orderLines)) { $basketQuery['order_lines'] = $orderLines; } $this->query[] = array('basket' => $basketQuery); return $this; }
/** * {@inheritdoc} * * @return Basket */ public function createBasket(stdClass $jsonObject) { return Basket::createFromJson($jsonObject, $this); }