Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Wednesday 8 May 2019

Rent the Runway just opened its largest brick-and-mortar store yet

Who would have thought Rent the Runway would emerge as a competitor to The Wing and all traditional brick-and-mortar retail?

Its newest store, complete with co-working space, shows it’s more than just a designer gown rental service. Shortly after landing a $125 million investment at a $1 billion valuation, Rent the Runway (RTR) has replanted roots in San Francisco, opening an 8,300 square foot West Coast flagship in the city’s Union Square neighborhood.

Located on 228 Grant Avenue, the store is RTR’s fifth and largest location yet. In addition to 3,000 pieces of merchandise curated daily, the store includes stylists, a coffee cart, space for evening programming and networking events, desk space for co-working, a beauty bar and some 20 dressing rooms.

“Think of it like your gym or your Starbucks; it’s part of what you do on a daily basis,” RTR chief operating officer Maureen Sullivan told TechCrunch.

[gallery ids="1823892,1823893,1823894"]

RTR was founded in 2009 by Jenn Hyman and Jenny Fleiss as a website for renting expensive, designer dresses. Since then it’s expanded to become a fashion rental marketplace equipped with accessories, casual pieces and its bread and butter: formal wear.

The company’s core product, RTR Reserve, lets customers rent one piece of clothing for four to eight days with prices starting at $30 per garment. RTR Update, at $89 per month, gives customers access to up to four pieces of clothing per month. And finally, RTR Unlimited charges users $159 for unlimited swaps every month, meaning you get up to four pieces at a time but can visit a store daily and swap the pieces out, if you wanted.

Its new space is essentially The Wing with an enormous closet of designer clothing available to rent. RTR even used the same all-female design team that crafted The Wing’s spaces to create its newest spot, which mimics The Wing’s airy, West Elm-like vibe.

Of course, RTR isn’t trying to compete with co-working spaces or salons or coffee shops; rather, the team recognizes that sometimes women need to find beautiful clothes and get shit done simultaneously.

“Our subscriber is a busy working woman,” Sullivan said. “Sometimes she may want to come in and work.”

The new store was built for the 21st century tech-enabled consumer. A “physical manifestation of the shared closet,” the store’s technology allows customers to return rented items within a few seconds, check out with their RTR Pass on their phone and pick up orders without having to wait in line.

RTR currently operates physical stores in Chicago, New York, Woodland Hills, Calif. and Washington, DC. Sullivan says San Francisco is the company’s third largest market behind New York and DC.

RTR opened its first standalone location in San Francisco last year and quickly realized the space was too small for its expanding crowd of subscribers. While the service was intended to be all-digital, data collected by RTR indicated users wanted to try on clothes before they rented. With that in mind, RTR will continue to open additional stores and “experiment with its physical presence” in other ways, too.

“Data is at the heart of our company,” Sullivan said. “We aren’t a typical direct-to-consumer brand.”

RTR has raised a total of $521 million in equity funding from Franklin Templeton Investments, T. Rowe Price, Female Founders Fund and others.



from TechCrunch https://tcrn.ch/306JDpt
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support