Igor wrote:

> 1. Let's say we have a category \\(\mathcal{C}\\), which has all products. Is it true that we can define a functor \\(\otimes: \mathcal{C} \times \mathcal{C} \to \mathcal{C}\\) by pointing each pair \\((x, y)\\) to the product of \\(x\\) and \\(y\\), \\(x \leftarrow p \rightarrow y\\), and in this way make \\(\mathcal{C}\\) somewhat monoidal?


More precisely: given two objects \\(x\\) and \\(y\\) we can define the concept of _a_ product of these objects. Not _the_ product. Anyone who hasn't seen this important definition, and wants to see it now, should go here:

* Wikipedia, [Product (category theory)](https://en.wikipedia.org/wiki/Product_(category_theory)#Definition)

There can be more than one product of \\(x\\) and \\(y\\), but any two choices will be canonically isomorphic: that is, isomorphic in a unique way making a certain diagram commute.

If we _choose_ a product of \\(x \\) and \\(y\\) for every pair of objects in \\(\mathcal{C}\\), we can use this choices to make \\(\mathcal{C}\\) into a monoidal category.

This takes a bit of work: for example, we have to get our hands on the associators and unitors, and show that they obey the necessary laws. Everyone who learns category theory needs to do this work at some point.

But it works. So, there is no need for the word "somewhat" in your question: we do indeed get a monoidal category from any category with products.

> 2. Working with the same category \\(\mathcal{C}\\), which happens to have all coproducts, we define a functor \\(\oplus: \mathcal{C} \times \mathcal{C} \to \mathcal{C}\\) by sending each pair \\((x, y)\\) to their coproduct \\(x \rightarrow p \leftarrow y\\). How this structure (\\(\mathcal{C}, \oplus)\\) is called then?

We also get a monoidal category form any category with coproducts! Again, we need to pick a specific coproduct for each pair of objects. And again, people who don't know about coproducts should turn to Wikipedia:

* Wikipedia, [Coproduct](https://en.wikipedia.org/wiki/Coproduct).

Products and coproducts are the two most important ways of getting monoidal categories, so your questions here are very good. The first kind of monoidal category is called a **[cartesian monoidal category](https://ncatlab.org/nlab/show/cartesian+monoidal+category)**, while the second kind is called a **cocartesian monoidal category**.

They're connected: \\(\mathcal{C}\\) is cartesian monoidal iff \\(\mathcal{C}^{\text{op}}\\) is cocartesian monoidal.

There is more to say, but I hope this is good for starters.