Hi.
setCarriers is an array field and all necessary parameters need to be passed.
$carriersId = [1, 3, 5]; // id reference carriers $idShop = $this->context->shop->id; // id shop $idLang = $this->context->language->id; // id language $idProduct = 1; // id product $data = []; foreach ( $carriersId as $c ) { $data[] = (int) $c; } if ($data) { $product = new Product ((int) $idProduct, false, $idLang, $idShop, $this->context); $product->setCarriers($data); }