/**
     * @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());
 }
Ejemplo n.º 3
0
 /**
  * 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);
 }