A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_URI::$config is deprecated

Filename: core/URI.php

Line Number: 101

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Router::$uri is deprecated

Filename: core/Router.php

Line Number: 127

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$benchmark is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$hooks is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$config is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$log is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$utf8 is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$uri is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$exceptions is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$router is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$output is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$security is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$input is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$lang is deprecated

Filename: core/Controller.php

Line Number: 75

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$load is deprecated

Filename: core/Controller.php

Line Number: 78

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_files_driver::open($save_path, $name) should either be compatible with SessionHandlerInterface::open(string $path, string $name): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_files_driver.php

Line Number: 132

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_files_driver::close() should either be compatible with SessionHandlerInterface::close(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_files_driver.php

Line Number: 290

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_files_driver::read($session_id) should either be compatible with SessionHandlerInterface::read(string $id): string|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_files_driver.php

Line Number: 164

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_files_driver::write($session_id, $session_data) should either be compatible with SessionHandlerInterface::write(string $id, string $data): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_files_driver.php

Line Number: 233

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_files_driver::destroy($session_id) should either be compatible with SessionHandlerInterface::destroy(string $id): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_files_driver.php

Line Number: 313

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Return type of CI_Session_files_driver::gc($maxlifetime) should either be compatible with SessionHandlerInterface::gc(int $max_lifetime): int|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Filename: drivers/Session_files_driver.php

Line Number: 354

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 282

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_cookie_params(): Session cookie parameters cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 289

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 304

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 314

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 315

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 316

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 317

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 375

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Session ini settings cannot be changed after headers have already been sent

Filename: drivers/Session_files_driver.php

Line Number: 108

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_save_handler(): Session save handler cannot be changed after headers have already been sent

Filename: Session/Session.php

Line Number: 110

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_start(): Session cannot be started after headers have already been sent

Filename: Session/Session.php

Line Number: 143

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property Blog::$session is deprecated

Filename: core/Loader.php

Line Number: 1283

Backtrace:

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$benchmark is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$hooks is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$config is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$log is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$utf8 is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$uri is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$exceptions is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$router is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$output is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$security is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$input is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$lang is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$load is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_Loader::$session is deprecated

Filename: core/Loader.php

Line Number: 931

Backtrace:

File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view

File: /var/www/html/index.php
Line: 319
Function: require_once

E-commerce Boom in South Africa: Data Insights
eCommerce in South Africa: Data-Driven approach to getting ahead

eCommerce in South Africa: Data-Driven approach to getting ahead

6th Jun, 2022

Prashant Dixit

By Prashant Dixit

What an exciting month we’ve had at DataWeave! Our team flew down to gorgeous Cape Town, South Africa to attend the 8th edition of #EcomAfrica! After months of Zoom calls and virtual events, it was a refreshing change to see our customers in person and meet some of the movers and shakers in eCommerce and some of the top South African brands. 

Top eCommerce Companies in South Africa
Top eCommerce Companies in South Africa

My last visit to South Africa was before the pandemic. Things have changed since then, & the difference was stark! The eCommerce landscape had a paradigm shift during Covid-19 and grew exponentially. My customers spoke to me about the new opportunities, growth potential as well as challenges that came in because of this boom. For one, eCommerce in South Africa has become more competitive than ever – from online retail to grocery and food delivery to even alcohol delivery! All retail businesses seem to have jumped onto the eCommerce bandwagon.

A recent Deloitte report found that over 70% of South Africans shop online at least once a month & 2 out of 3 respondents said they plan to increase their frequency of online shopping. 65% said they know what they want, search online & check all stores that stock the product to compare prices. Price is one of the key factors that influence consumer purchase decisions. Other critical factors include delivery fee, delivery time, promotions & discounts & product assortment to name a few. In order to stay ahead in this highly competitive arena, both retailers and brands need to make data-driven decisions about critical KPIs like pricing to stay ahead of the competition.

Increased Online Shopping & Online Shopping Frequency
Increased Online Shopping & Online Shopping Frequency

We’ve been working with customers in South Africa for over 4 years now, even before the pandemic. So on Day 2 of the event – S.Krishnan Thyagarajan “Krish”, President & COO, Dataweave had a chance to share our learnings and experience from all these years and how user data is critical to getting ahead & winning the eCommerce race in South Africa.

For the purpose of Krish’s keynote address, we tracked pricing insights for a finite set of categories across key South African retailers like Checkers, Pick n Pay, EveryShop, Incredible, Makro, Waltons, Shoprite & Dis-Chem to name a few over a period of 16 months from Dec 2020 to April 2022. We highlighted price increase and decrease opportunities and how each retailer reacted in order to stay competitive, increase sales and protect margins. 

BATTLE of the eCommerce GIANTS!

Key Highlights from the Keynote

  • Increasing prices where an opportunity exists helps retailers increase their margins exponentially. Pick n Pay had the highest action rate (73%) when it came to capitalizing on price increase opportunities v/s Dis-Chem at 11%. 
  • When it came to price decrease opportunities (in order to stay competitive with rival brands) Takealot was the most responsive retailer – they capitalized on 30% of the opportunities, followed by Pick n Pay at a close second (28%) and Shoprite & Dis-Chem at just 4%.
  • Most retailers took between 1 – 5 days maximum to make price changes which means responsiveness to the market among all retailers is high making it more important for online retailers to always be on their toes.  
  • The 2 categories where most retailers capitalized on Price Increase Opportunities were Sauces & Condiments and Crackers & Biscuits.

Want to watch the Keynote video on Demand? Click here to register & watch.

Price Increase & Decrease Opportunities
Price Increase & Decrease Opportunities

Bonus video content! 

  • Watch the Impact of price increase & decrease opportunities on Private Label brands! 
  • See how product stock availability impacts price changes over a 16-month period. 
  • Find out which brands are in the lead in the Skin Care, Pet, Baby, Laundry & Cleaning Aid categories 

If you’re an online retailer in South Africa & need insights on staying competitive with the right pricing, product assortment, delivery time, delivery rates, and the other key influencers that affect customers’ choice of online retailers, sign up for a demo with our team at DataWeave to know how we can help!  

- Prashant Dixit
Prashant Dixit is Vice President Business Enablement at DataWeave & works with our Global Brand, Marketplace & Retailer customers to help them improve their eCommerce sales & revenue. He can be reached at prashant.dixit@dataweave.com, 6th Jun, 2022

AI Brand Perception Brands Discounts E Commerce Food Delivery Grocery Delivery Intelligent Pricing on-demand grocery delivery Online Grocery

Book a Demo