Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix order creation on PrestaShop V9 #12

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/Creator/OrderCreator.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@

use Address;
use Cart;
use Context;
use Customer;
use Employee;
use Faker\Generator as Faker;
use Order;
use OrderState;
Expand All @@ -25,6 +27,12 @@ public function __construct(
$this->faker = $faker;
$this->cartCreator = $cartCreator;
$this->customerCreator = $customerCreator;

// Because we could be in CLI mode, there might be no employee in context, so we must set it manually
$context = Context::getContext();
if (!isset($context->employee) || !isset($context->employee->id)) {
$context->employee = new Employee(1);
}
Comment on lines +31 to +35
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Because we could be in CLI mode, there might be no employee in context, so we must set it manually
$context = Context::getContext();
if (!isset($context->employee) || !isset($context->employee->id)) {
$context->employee = new Employee(1);
}

This service is not related to the context, and even less about its initialisation It shouldn't be its responsibility to init the legacy context

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a useful tool for that, not very well known or used, that allows the Symfony command to initialize the context instead:
https://github.com/PrestaShop/PrestaShop/blob/d68bfe619ea9ef8e9d57e96ce817028c68f3b885/tests/Integration/PrestaShopBundle/Command/LoadLegacyClassesinCommandTest.php#L123-L124

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@matthieu-rolland friendly reminder 😉

Copy link
Contributor Author

@matthieu-rolland matthieu-rolland Jul 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@matks when using the tool suggested by @jolelievre I saw that it was broken for this use case, so I made a fix on the core

I need this PR to be merged first: PrestaShop/PrestaShop#36358, it's waiting for qa dev

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR is now fixed 😄 PrestaShop/PrestaShop#36358

}

public function generate(int $number, int $idShopGroup, int $idShop, array $productIds): void
Expand Down
Loading