pimcore / ecommerce-framework-bundle

Ecommerce Framework community bundle provides e-commerce functionality such as product listing and filtering, pricing, carts and checkouts for Pimcore.
https://pimcore.com/docs/platform/Ecommerce_Framework/
Other
11 stars 33 forks source link

[Bug]: Apply multiple filters to `OrderList` #197

Open cng-meb opened 2 months ago

cng-meb commented 2 months ago

Expected behavior

It should be possible to apply multiple filters to an OrderList. Working_with_Order_Lists.

Actual behavior

The OrderDateTime-Filter is using named condition params to the query (>= :from_date, <= :till_date) while CustomerObject-Filter is using positional conditions params (order.customer__id = ?).

Combining both leads to an error (SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters") in the final query because the condition params are not allowed to be mixed.

Steps to reproduce

  1. Install the Demo
  2. Navigate AccountController->indexAction
    • Here we can see the demo code filtering orders by customer Working_with_Order_Lists $orderList->addFilter(new CustomerObject($user));
  3. add an additional filter of type OrderDateTime as below

    $orderManager = Factory::getInstance()->getOrderManager();
    $orderList = $orderManager->createOrderList();
    $orderList->addFilter(new CustomerObject($user));
    
    // add additional filter
    $orderDateFilter = new OrderDateTime();
    $orderDateFilter->setFrom(Carbon::now()->sub(1, 'year')->addMonth());
    $orderDateFilter->setTill(Carbon::now());
    $orderList->addFilter($orderDateFilter);
  4. Access the /account/index route after login to see the exception.
github-actions[bot] commented 1 month ago

Thanks a lot for reporting the issue. We did not consider the issue as "Pimcore:Priority", "Pimcore:ToDo" or "Pimcore:Backlog", so we're not going to work on that anytime soon. Please create a pull request to fix the issue if this is a bug report. We'll then review it as quickly as possible. If you're interested in contributing a feature, please contact us first here before creating a pull request. We'll then decide whether we'd accept it or not. Thanks for your understanding.