def METHOD_NAME(self, json_info):
    self.layout = QVBoxLayout()
    self.image = ImageLabel()
    self.layout.addWidget(self.image)
    mini_layout = QHBoxLayout()
    self.layout.addLayout(mini_layout)
    if not json_info:
        self.layout.addWidget(QLabel("An error occurred"))
        self.setLayout(self.layout)
        return
    self.title_label = QLabel(json_info.get("title"))
    self.title_label.setWordWrap(True)
    mini_layout.addWidget(self.title_label)
    mini_layout.addStretch(1)
    price = json_info["price"]["totalPrice"]["fmtPrice"]["originalPrice"]
    discount_price = json_info["price"]["totalPrice"]["fmtPrice"]["discountPrice"]
    price_label = QLabel(price)
    if price != discount_price:
        font = QFont()
        font.setStrikeOut(True)
        price_label.setFont(font)
        mini_layout.addWidget(
            QLabel(discount_price if discount_price != "0" else self.tr("Free"))
        )
        mini_layout.addWidget(price_label)
    else:
        if price == "0":
            price_label.setText(self.tr("Free"))
        mini_layout.addWidget(price_label)
    for c in r'<>?":|\/*':
        json_info["title"] = json_info["title"].replace(c, "")
    self.json_info = json_info
    self.slug = json_info["productSlug"]
    self.title = json_info["title"]
    for img in json_info["keyImages"]:
        if img["type"] in [
            "DieselStoreFrontWide",
            "OfferImageWide",
            "VaultClosed",
            "ProductLogo",
        ]:
            if img["type"] == "VaultClosed" and self.title != "Mystery Game":
                continue
            self.image.update_image(
                img["url"],
                json_info["title"],
                (self.width, int(self.width * 9 / 16)),
            )
            break
    else:
        logger.info(", ".join([img["type"] for img in json_info["keyImages"]]))
    self.setLayout(self.layout)
    self.setFixedSize(self.width + 10, self.width * 9 // 16 + 50)