/** * @return \Generated\Shared\Transfer\WishlistTransfer */ public function getWishlist() { $wishlist = $this->wishlistQueryContainer->queryWishlist()->findOneByFkCustomer($this->customerTransfer->getIdCustomer()); $wishlistTransfer = new WishlistTransfer(); foreach ($wishlist->getSpyWishlistItems() as $wishlistItemEntity) { $wishlistItemTransfer = new ItemTransfer(); $productEntity = $wishlistItemEntity->getSpyProduct(); $wishlistItemTransfer->setGroupKey($wishlistItemEntity->getGroupKey())->setAddedAt($wishlistItemEntity->getAddedAt())->setIdProductAbstract($wishlistItemEntity->getFkProductAbstract())->setSku($productEntity->getSku())->setQuantity($wishlistItemEntity->getQuantity()); $wishlistTransfer->addItem($wishlistItemTransfer); } return $wishlistTransfer; }
/** * @param \Generated\Shared\Transfer\WishlistChangeTransfer $wishlistChange * * @return \Generated\Shared\Transfer\WishlistTransfer */ public function removeItems(WishlistChangeTransfer $wishlistChange) { $idCustomer = $this->customerTransfer->getIdCustomer(); $wishlistEntity = $this->getWishlistEntity($idCustomer); $wishlistItems = $wishlistChange->getItems(); foreach ($wishlistItems as $wishlistItemTransfer) { $wishlistItemEntity = $this->getWishlistItemEntity($wishlistItemTransfer, $wishlistEntity->getIdWishlist()); if (empty($wishlistItemEntity)) { continue; } $quantityDifference = $wishlistItemEntity->getQuantity() - $wishlistItemTransfer->getQuantity(); if ($quantityDifference <= 0) { $this->deleteWishlistItem($wishlistItemEntity); } else { $wishlistItemEntity->setQuantity($quantityDifference); $wishlistItemEntity->save(); } } $wishlistTransfer = $this->customer->getWishlist(); return $wishlistTransfer; }
/** * @param \Generated\Shared\Transfer\CustomerTransfer $customerTransfer * * @return bool */ protected function hasCustomer(CustomerTransfer $customerTransfer) { $result = false; $customerEntity = null; if ($customerTransfer->getIdCustomer()) { $customerEntity = $this->queryContainer->queryCustomerById($customerTransfer->getIdCustomer())->findOne(); } elseif ($customerTransfer->getEmail()) { $customerEntity = $this->queryContainer->queryCustomerByEmail($customerTransfer->getEmail())->findOne(); } if ($customerEntity !== null) { $result = true; } return $result; }
/** * @param \Generated\Shared\Transfer\CustomerTransfer $customerTransfer * * @return bool */ protected function isNewCustomer(CustomerTransfer $customerTransfer) { return $customerTransfer->getIdCustomer() === null; }
/** * @param \Generated\Shared\Transfer\CustomerTransfer $customerTransfer * * @return \Generated\Shared\Transfer\AddressTransfer */ protected function createTestAddressTransfer(CustomerTransfer $customerTransfer) { $addressTransfer = new AddressTransfer(); $addressTransfer->setFkCustomer($customerTransfer->getIdCustomer()); $addressTransfer->setEmail(self::TESTER_EMAIL); $addressTransfer->setFirstName(self::TESTER_NAME); $addressTransfer->setLastName(self::TESTER_NAME); $addressTransfer->setAddress1(self::TESTER_ADDRESS1); $addressTransfer->setCity(self::TESTER_CITY); $addressTransfer->setZipCode(self::TESTER_ZIP_CODE); return $addressTransfer; }
/** * @param \Generated\Shared\Transfer\CustomerTransfer $customerTransfer * * @throws \Spryker\Zed\Customer\Business\Exception\CustomerNotFoundException * * @return \Orm\Zed\Customer\Persistence\SpyCustomer */ protected function getCustomerFromCustomerTransfer(CustomerTransfer $customerTransfer) { $customer = null; if ($customerTransfer->getEmail()) { $customer = $this->queryContainer->queryCustomerByEmail($customerTransfer->getEmail())->findOne(); } elseif ($customerTransfer->getIdCustomer()) { $customer = $this->queryContainer->queryCustomerById($customerTransfer->getIdCustomer())->findOne(); } if ($customer === null) { throw new CustomerNotFoundException(sprintf('Customer not found for email `%s` or ID `%s`.', $customerTransfer->getEmail(), $customerTransfer->getIdCustomer())); } return $customer; }