private void OnCollisionStay(Collision collision)
    {
        foreach (ContactPoint contactPoint in collision.contacts)
        {
            Transform other = contactPoint.otherCollider.transform.root;

            int result = 0;

            StockItem stockItem = other.GetComponent <StockItem>();

            if (other.CompareTag("Product") || other.CompareTag("StockCrate"))
            {
                // Claim the product before any other shelf can >:D
                if (stockItem.IsClaimed())
                {
                    return;
                }
                else
                {
                    stockItem.ClaimItem(gameObject);
                }

                result = AddStock(stockItem.GetStockType());
            }

            Debug.Log(result);

            if (result == 0)
            {
                Destroy(other.gameObject);
            }
            else
            {
                // Unclaim item
                stockItem.UnclaimItem(gameObject);

                // Get the damn item out of this shelf
                if (allowPickupF)
                {
                    other.transform.position = boundsOfShelf.center + (transform.forward * 0.5f);
                }
                else if (allowPickupB)
                {
                    other.transform.position = boundsOfShelf.center + (transform.forward * -0.5f);
                }

                else if (allowPickupL)
                {
                    other.transform.position = boundsOfShelf.center + (transform.forward * -0.5f);
                }
                else
                {
                    other.transform.position = boundsOfShelf.center + (transform.right * 0.5f);
                }
            }
        }
    }
    private void OnCollisionEnter(Collision collision)
    {
        ContactPoint contact = collision.GetContact(0);

        GameObject other = contact.otherCollider.transform.root.gameObject;

        //Debug.Log(collision.relativeVelocity.magnitude);

        // Add products to the shelf if it hits it hard enough
        if (collision.relativeVelocity.magnitude < COLLISION_SENSITIVITY)
        {
            return;
        }

        StockItem stockItem = other.GetComponent <StockItem>();
        int       result    = 0;

        if (other.CompareTag("Product") || other.CompareTag("StockCrate"))
        {
            // Claim the product before any other shelf can >:D
            if (stockItem.IsClaimed())
            {
                return;
            }
            else
            {
                stockItem.ClaimItem(gameObject);
            }

            result = AddStock(stockItem.GetStockType());
        }

        Debug.Log(result);

        if (result == 0)
        {
            Destroy(other);
        }
        else
        {
            stockItem.UnclaimItem(gameObject);
        }
    }