2121use Shopsys \FrameworkBundle \Model \Product \Pricing \ProductPriceCalculation ;
2222use Shopsys \FrameworkBundle \Model \Product \Pricing \ProductSellingPrice ;
2323use Shopsys \FrameworkBundle \Model \Product \Recalculation \ProductRecalculationDispatcher ;
24+ use Shopsys \FrameworkBundle \Model \Product \Recalculation \ProductRecalculationPriorityEnum ;
25+ use Shopsys \FrameworkBundle \Model \Product \Recalculation \ProductRecalculationPriorityEnumInterface ;
2426use Shopsys \FrameworkBundle \Model \Stock \ProductStockData ;
2527use Shopsys \FrameworkBundle \Model \Stock \ProductStockFacade ;
2628use Shopsys \FrameworkBundle \Model \Stock \StockFacade ;
@@ -84,10 +86,13 @@ public function getById($productId)
8486
8587 /**
8688 * @param \Shopsys\FrameworkBundle\Model\Product\ProductData $productData
89+ * @param \Shopsys\FrameworkBundle\Model\Product\Recalculation\ProductRecalculationPriorityEnum|null $priority nullable because of https://github.com/nikic/PHP-Parser/pull/940
8790 * @return \Shopsys\FrameworkBundle\Model\Product\Product
8891 */
89- public function create (ProductData $ productData )
90- {
92+ public function create (
93+ ProductData $ productData ,
94+ ?ProductRecalculationPriorityEnumInterface $ priority = null ,
95+ ): Product {
9196 $ product = $ this ->productFactory ->create ($ productData );
9297
9398 $ this ->em ->persist ($ product );
@@ -98,7 +103,7 @@ public function create(ProductData $productData)
98103
99104 $ this ->editProductStockRelation ($ productData , $ product );
100105
101- $ this ->productRecalculationDispatcher ->dispatchSingleProductId ($ product ->getId ());
106+ $ this ->productRecalculationDispatcher ->dispatchSingleProductId ($ product ->getId (), $ priority ?? ProductRecalculationPriorityEnum:: REGULAR );
102107
103108 return $ product ;
104109 }
@@ -131,10 +136,14 @@ public function setAdditionalDataAfterCreate(Product $product, ProductData $prod
131136 /**
132137 * @param int $productId
133138 * @param \Shopsys\FrameworkBundle\Model\Product\ProductData $productData
139+ * @param \Shopsys\FrameworkBundle\Model\Product\Recalculation\ProductRecalculationPriorityEnum|null $priority nullable because of https://github.com/nikic/PHP-Parser/pull/940
134140 * @return \Shopsys\FrameworkBundle\Model\Product\Product
135141 */
136- public function edit ($ productId , ProductData $ productData )
137- {
142+ public function edit (
143+ int $ productId ,
144+ ProductData $ productData ,
145+ ?ProductRecalculationPriorityEnumInterface $ priority = null ,
146+ ): Product {
138147 $ product = $ this ->productRepository ->getById ($ productId );
139148
140149 $ productCategoryDomains = $ this ->productCategoryDomainFactory ->createMultiple (
@@ -164,25 +173,28 @@ public function edit($productId, ProductData $productData)
164173
165174 $ this ->editProductStockRelation ($ productData , $ product );
166175
167- $ this ->productRecalculationDispatcher ->dispatchSingleProductId ($ product ->getId ());
176+ $ this ->productRecalculationDispatcher ->dispatchSingleProductId ($ product ->getId (), $ priority ?? ProductRecalculationPriorityEnum:: REGULAR );
168177
169178 return $ product ;
170179 }
171180
172181 /**
173182 * @param int $productId
183+ * @param \Shopsys\FrameworkBundle\Model\Product\Recalculation\ProductRecalculationPriorityEnum|null $priority nullable because of https://github.com/nikic/PHP-Parser/pull/940
174184 */
175- public function delete ($ productId )
176- {
185+ public function delete (
186+ int $ productId ,
187+ ?ProductRecalculationPriorityEnumInterface $ priority = null ,
188+ ): void {
177189 $ product = $ this ->productRepository ->getById ($ productId );
178190 $ productDeleteResult = $ product ->getProductDeleteResult ();
179191 $ productsForRecalculations = $ productDeleteResult ->getProductsForRecalculations ();
180192
181193 foreach ($ productsForRecalculations as $ productForRecalculations ) {
182- $ this ->productRecalculationDispatcher ->dispatchSingleProductId ($ productForRecalculations ->getId ());
194+ $ this ->productRecalculationDispatcher ->dispatchSingleProductId ($ productForRecalculations ->getId (), $ priority ?? ProductRecalculationPriorityEnum:: REGULAR );
183195 }
184196
185- $ this ->productRecalculationDispatcher ->dispatchSingleProductId ($ product ->getId ());
197+ $ this ->productRecalculationDispatcher ->dispatchSingleProductId ($ product ->getId (), $ priority ?? ProductRecalculationPriorityEnum:: REGULAR );
186198
187199 $ this ->em ->remove ($ product );
188200 $ this ->em ->flush ();
0 commit comments