Многое вам уже написали ниже, от себя добавлю, что меня пугают моменты в верстке, такие как "margin: -100%", по той простой причине, что это ниразу не интуитивно понятно.
Также, но это дело вкуса, я не люблю использование float, т.к. не люблю его поведение. Ну и, на мой взгляд, есть смысл отказаться от использования display: inline-block и float в пользу display: flex, если позволяют требования по кроссбраузерности
1. .product_box_basic - зачем там z-index не понятно. z-index работает только когда у элемента задано одно из значений absolute, fixed или relative
2. Название продукта я бы засунул не в P а в h3 или h4
3. .product_price - display: block; указывать не обязательно, т.к. свойство float автоматически делает блок блочным. И разметку я бы сделал по другому. Параграфу для цены тут не место, здесь подойдет span и плюс цену с кнопкой обернуть в общий блок.