/** * Adds a single item into the wishlist. * You can specify an amount. Please mind, that an amount > 1 will result in #amount basket positions. * So if you read out the basket again later, it's your job to merge the positions again. * * It is highly recommend to use the basket update method, to manage your items. * * @param string $sessionId * @param integer $variantId * @param integer $amount * * @return Basket * * @throws \InvalidArgumentException */ public function addItemToWishList($sessionId, $variantId, $amount = 1) { if (!is_long($variantId)) { if (is_string($variantId) && ctype_digit($variantId)) { $variantId = intval($variantId); } else { throw new \InvalidArgumentException('the variant id must be an integer or string with digits'); } } $wishList = new WishList(); for ($i = 0; $i < $amount; $i++) { $item = new WishList\WishListItem(null, $variantId); $wishList->updateItem($item); } return $this->updateWishList($sessionId, $wishList); }
public function testAddOneItemToWishListWithAppId() { $api = $this->getAY(); $item = new WishList\WishListItem('1234', $this->getVariantId(1), array('description' => 'test', 'image_url' => 'http://www.google.de', 'foo' => 'bar'), 200); $WishList = new WishList(); $WishList->updateItem($item); $WishList = $api->updateWishList($this->getSessionId(), $WishList); $item = $WishList->getItem('1234'); $this->assertEquals(1, $WishList->getTotalAmount()); $this->assertEquals(200, $item->getAppId()); $this->assertInstanceOf('\\AboutYou\\SDK\\Model\\WishList\\WishListItem', $item); $data = $item->getAdditionalData(); $this->assertEquals('test', $data['description']); $this->assertEquals('http://www.google.de', $data['image_url']); $this->assertEquals('bar', $data['foo']); $WishList->deleteAllItems(); $api->updateWishList($this->getSessionId(), $WishList); }