protected function GetUniqueItemKey()
    {
        $iCurrentPointer = $this->getItemPointer();
        $this->GoToStart();
        $aItemKeyList = array();
        while ($oItem = $this->Next()) {
            $aItemKeyList[] = $oItem->sBasketVoucherKey;
        }
        // now generate a key

        do {
            $sKey = md5(uniqid(rand(), true));
        } while (in_array($sKey, $aItemKeyList));

        return $sKey;
    }