Reducing the amount of List in a WebScraper
Review


Creating functions that read and modify global variables is not a good idea, for example if someone wants to reuse your function, they won't know about side effects.
index is not useful, and range(0, n) is the same as range(n)
Using == is more appropriate than is in general, hence response.status_code == 200
If response.status_code != 200, I think the function should ~return an empty result~ raise an exception like said by @Ludisposed.
You use json_data["data"]["items"] a lot, you could define items = json_data["data"]["items"] instead, but see below.
Your usage of i is totally messy. Never use both for and while on the same variable. I think you just want to get the information for each item. So just use for item in json_data["data"]["items"]:.
Actually, print("Getting data from site... please wait a few seconds") is wrong as you got the data at response = get(url). Also, sleep(0.5) and sleep(5) don't make any sense.
Speaking from this, requests.get is more explicit.
You can actually create a pandas DataFrame directly from a list of dictionaries.
Actually, if you don't use the response in another place, you can use the url as an argument of the function.
Putting spaces in column names of a DataFrame is not a good idea. It removes the possibility to access the column named stock (for example) with df.stock. If you still want that, you can use pandas.DataFrame.rename
You don't need to import json.
The discounts are given as strings like "59%". I think integers are preferable if you want to perform computations on them. I used df.discount = df.discount.apply(lambda s: int(s[:-1])) to perform this.
Optional: you might want to use logging instead of printing everything. Or at least print to stderr with:

from sys import stderr

print('Information', file=stderr)


Code

import requests
import pandas as pd


def getShockingSales(url):
    response = requests.get(url)
    columns = ["name", "price", "discount", "stock"]
    response.raise_for_status()
    print("Response: OK")
    json_data = response.json()
    df = pd.DataFrame(json_data["data"]["items"])[columns]
    df.discount = df.discount.apply(lambda s: int(s[:-1]))
    print("Task is completed...")
    return df


URL = "https://shopee.com.my/api/v2/flash_sale/get_items?offset=0&amp;limit=16&amp;filter_soldout=true"
df = getShockingSales(URL)