Skip to content

Commit cf81b0b

Browse files
product recalculations are now handled with high priority when a product is deleted in admin
1 parent 2b3cb07 commit cf81b0b

2 files changed

Lines changed: 10 additions & 6 deletions

File tree

src/Controller/Admin/ProductController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,13 +230,14 @@ public function listAction(Request $request)
230230
* @Route("/product/delete/{id}", requirements={"id" = "\d+"})
231231
* @CsrfProtection
232232
* @param int $id
233+
* @return \Symfony\Component\HttpFoundation\Response
233234
*/
234-
public function deleteAction($id)
235+
public function deleteAction(int $id): Response
235236
{
236237
try {
237238
$product = $this->productFacade->getById($id);
238239

239-
$this->productFacade->delete($id);
240+
$this->productFacade->delete($id, ProductRecalculationPriorityEnum::HIGH);
240241

241242
$this->addSuccessFlashTwig(
242243
t('Product <strong>{{ product|productDisplayName }}</strong> deleted'),

src/Model/Product/ProductFacade.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,18 +180,21 @@ public function edit(
180180

181181
/**
182182
* @param int $productId
183+
* @param \Shopsys\FrameworkBundle\Model\Product\Recalculation\ProductRecalculationPriorityEnum|null $priority nullable because of https://github.com/nikic/PHP-Parser/pull/940
183184
*/
184-
public function delete($productId)
185-
{
185+
public function delete(
186+
int $productId,
187+
?ProductRecalculationPriorityEnumInterface $priority = null,
188+
): void {
186189
$product = $this->productRepository->getById($productId);
187190
$productDeleteResult = $product->getProductDeleteResult();
188191
$productsForRecalculations = $productDeleteResult->getProductsForRecalculations();
189192

190193
foreach ($productsForRecalculations as $productForRecalculations) {
191-
$this->productRecalculationDispatcher->dispatchSingleProductId($productForRecalculations->getId());
194+
$this->productRecalculationDispatcher->dispatchSingleProductId($productForRecalculations->getId(), $priority ?? ProductRecalculationPriorityEnum::REGULAR);
192195
}
193196

194-
$this->productRecalculationDispatcher->dispatchSingleProductId($product->getId());
197+
$this->productRecalculationDispatcher->dispatchSingleProductId($product->getId(), $priority ?? ProductRecalculationPriorityEnum::REGULAR);
195198

196199
$this->em->remove($product);
197200
$this->em->flush();

0 commit comments

Comments
 (0)