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

Tuesday, 30 April 2019

Fabletics, the activewear brand from Kate Hudson, launches NYC pop-up shop

Fabletics, the digital-first activewear brand founded by Kate Hudson, Adam Goldenberg and Don Ressler, has recently opened up a physical store in Soho as part of its 2019 expansion plans.

The company has plans to open up 12 new permanent retail stores over the course of this year alongside the Soho pop up shop, all of which will include a heavy tech element.

For one, Fabletics has built its own POS system that connects offline and online sales. The system, called OmniShop, allows Fabletics to track the conversion of every item that goes into a dressing room, by size color and style all the way down to each individual customer.

Co-CEO and cofounder Adam Goldenberg said that the company invested more than $150 million in OmniShop.

But the system doesn’t just make the product easier to buy; it actually informs the product itself. The system allows Fabletics to see when a certain size of a particular SKU isn’t converting well and investigate if there is a fit/sizing issue.

“From a creative perspective, it allows design team to actually test out new things in a way that creates less waste,” said cofounder Kate Hudson. “We know that when we test something we know exactly what that buy is going to be. We’re able to get this information so quickly.”

Hudson explained that these insights allow Fabletics to both maintain quality and move quickly to address exactly what the customer wants.

Fabletics can also use OmniShop to understand what’s trending, which helps with how the store is merchandized and gives designers insights to create new products.

It also allows shopping carts to be connected in store and online, which means customers can try on clothes they’ve already put in their shopping cart at home and sales clerks can pass a customer between stores quickly and easily. It also means that the relationship that begins in a store can be tracked online, which gives the company a more wholistic view of its own performance with customers.

The new Soho pop-up, located at 577 Broadway, has iPads in each of the dressing rooms that are personalized to the customer and also offer a single-tap button that calls an associate for a new size or some other question. Fabletics is also testing heat maps in store to measure interest in certain products and combinations.

Beyond the use of tech in physical stores, Fabletics has also carved a path for itself through a unique membership-based business model. Fabletics VIP members receive hand-picked outfits each month that start at $49.95, and are expected to opt out of any month where they don’t want a new outfit. If they don’t actively opt out, that $49.95 is credited to the account to be used toward future outfits.

This model feeds heavily into the OmniShop data set. Because users must come back to the Fabletics site each month, either to approve their new outfit or opt out for the month, Fabletics has a steady stream of information about its 1.5 million VIP members.

When asked about Fabletics’ greatest challenge, Hudson identified two.

“When you’re a name coming into a business and you have success,” said Hudson. “You hae one of those names that people would like putting in a headline, you have to be incredibly transparent about everything that you’re doing. Anything that might be considered negative feedback becomes a headline.”

She explained that, as an entertainer, it was a personal challenge and transition for Hudson to realize that you can’t make everyone happy in business.

“Being an entertainer, you want everyone to like you,” said Hudson. “In big business, there are moments where you aren’t going to please everybody. But that’s made us a very vigilant company with everything we do.”

The other challenge for Fabletics is simply keeping up with demand, which Hudson sees as a good problem to have.



from TechCrunch https://tcrn.ch/2GS6xt7
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support