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();

Friday 31 January 2020

Moda Operandi, an online marketplace for high-end fashion, raises $100M led by NEA and Apax

Moda Operandi, an online marketplace for luxury fashion, accessories and home decor, is today announcing a high-priced event of its own: it’s raised $100 million, a mix of equity and debt that it will use to invest in its platform and technology as well as to continue growing business overall, which was founded in 2010 and today offers products from some 1,000 brands and designers and ships to 125 countries.

“For the past eight years, Moda has disrupted the way people shop for luxury fashion,” said Moda Operandi CEO Ganesh Srivats in a statement. “This investment will enable us to build on that innovation, investing further in the client and designer experience and connecting more of the world’s best fashion to more people.”

The financing is being co-led by NEA and Apax Partners, both previous investors in Moda Operandi, with participation also from the Santo Domingo Family (connected to Lauren Santo Domingo, who co-founded the company with Aslaug Magnusdottir), Comerica Bank, TriplePoint Capital and other unnamed investors.

The company’s valuation is not being disclosed but in its last round, in 2017, Moda Operandi had a post-money valuation of $650 million, according to data from PitchBook. It has raised $345 million to date.

High-end fashion might not be the first thing that comes to mind when you think about online shopping, but it has actually been a ripe market for e-commerce industry.

While those in the know (and in the money) might attend catwalk shows, and bijou boutiques in swish locales are likely to be around for many years to come, there is a massive population of people who have the income and inclination to shop for luxury fashion, but might not be in the right place, or have the time, to do so.

For these shoppers, websites, mobile apps — and most recently new channels like Instagram and messaging services — have become a key route to browsing and buying, leading to the rise of huge businesses like Farfetch, Net-a-Porter and more.

That trend has helped to buffer Moda Operandi up to now, but it’s also the one that will be interesting to watch down the line.

We’ve written about the rise of direct-to-consumer brands and how that has played out specifically in the world of fashion, which in turn becomes a new group of competitors to aggregating marketplaces like Moda Operandi.

Similarly, the growing trend of targeting consumers wherever they happen to be also represents a rival business model, with some fashion retailers now foregoing websites altogether in favor of using third-party messaging apps to reach their target customers. Will Moda Operandi change with the times to do more of this kind of selling, too? Like fashion, what’s in today might be out tomorrow, so even the best channels are moving targets.

In any case, Moda Operandi has most definitely shown that it’s prepared to evolve and upset the status quo. The company got its start in 2010 in part out of an aha-moment from Santo Domingo, a socialite, former model and former editor at Vogue.

As someone who had worked for years in the luxury fashion industry, fully immersed as a consumer to boot, she knew that only a small, rarefied group of people ever got full access to a designer’s runway collection.

Moda Operandi was her solution — a platform to broaden that out, giving access to a full trunkshows (as the runway collections are called) to a wider selection of possible buyers and improving revenues for designers and brands in the process, since they no longer had to rely just on more traditional channels, namely buyers for retailers. The site had some catches — for example, as we pointed out at the time, you could shop a runway look, but still had to wait months for the piece to actually arrive with you, since those items would have yet to be made; but it caught on with a loyal following.

Over the years, the site’s basic remit has expanded, covering not only runway collections but also extending into jewellery, accessories and home decor. (We asked what size the business is today, and whether Moda Operandi can share any details on how that has changed over time, but a spokesperson said the company would not be sharing these or other financial details today.)

In any case, it’s remained a compelling enough business to have brought in a hefty round of growth funding from its previous backers.

“We continue to be impressed with the power of Moda’s brand and its positioning in the luxury market,” said Dan O’Keefe, managing partner of Apax Digital, in a statement. “Moda has been enhancing its technology capabilities as a world leading platform for fashion discovery and is led by a world-class team. We look forward to continuing to support their expansion.”

“Moda Operandi has really disrupted the traditional ecommerce model, using technology to give people unprecedented access to fashion,” added Tony Florence, general partner and head of technology investing at NEA, in a statement. “It was a really big idea when we led the Series A, and today Ganesh and the team are executing on that data-enabled retail model at scale. We are thrilled to continue supporting the company in this latest round.”



from TechCrunch https://ift.tt/2uPf38Y
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support