本文整理汇总了PHP中Aimeos\MShop\Order\Manager\Factory::createManager方法的典型用法代码示例。如果您正苦于以下问题:PHP Factory::createManager方法的具体用法?PHP Factory::createManager怎么用?PHP Factory::createManager使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Aimeos\MShop\Order\Manager\Factory
的用法示例。
在下文中一共展示了Factory::createManager方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testSaveDeleteItem
public function testSaveDeleteItem()
{
$manager = \Aimeos\MShop\Order\Manager\Factory::createManager(\TestHelperExtjs::getContext());
$baseManager = $manager->getSubManager('base');
$search = $baseManager->createSearch();
$search->setConditions($search->compare('==', 'order.base.price', '53.50'));
$results = $baseManager->searchItems($search);
if (($expected = reset($results)) === false) {
throw new \RuntimeException('No base item found');
}
$saveParams = (object) array('site' => 'unittest', 'items' => (object) array('order.base.product.id' => null, 'order.base.product.baseid' => $expected->getId(), 'order.base.product.type' => 'default', 'order.base.product.suppliercode' => 'unitsupplier', 'order.base.product.prodcode' => 'EFGH22', 'order.base.product.name' => 'FoooBar', 'order.base.product.quantity' => 5, 'order.base.product.flags' => 0, 'order.base.product.status' => 1, 'order.base.product.position' => 5));
$searchParams = (object) array('site' => 'unittest', 'condition' => (object) array('&&' => array(0 => array('==' => (object) array('order.base.product.name' => 'FoooBar')), 1 => array('==' => (object) array('order.base.product.prodcode' => 'EFGH22')))));
$saved = $this->object->saveItems($saveParams);
$searched = $this->object->searchItems($searchParams);
$deleteParams = (object) array('site' => 'unittest', 'items' => $saved['items']->{'order.base.product.id'});
$this->object->deleteItems($deleteParams);
$result = $this->object->searchItems($searchParams);
$this->assertInternalType('object', $saved['items']);
$this->assertNotNull($saved['items']->{'order.base.product.id'});
$this->assertEquals($saved['items']->{'order.base.product.id'}, $searched['items'][0]->{'order.base.product.id'});
$this->assertEquals($saved['items']->{'order.base.product.baseid'}, $searched['items'][0]->{'order.base.product.baseid'});
$this->assertEquals($saved['items']->{'order.base.product.suppliercode'}, $searched['items'][0]->{'order.base.product.suppliercode'});
$this->assertEquals($saved['items']->{'order.base.product.prodcode'}, $searched['items'][0]->{'order.base.product.prodcode'});
$this->assertEquals($saved['items']->{'order.base.product.name'}, $searched['items'][0]->{'order.base.product.name'});
$this->assertEquals($saved['items']->{'order.base.product.quantity'}, $searched['items'][0]->{'order.base.product.quantity'});
$this->assertEquals($saved['items']->{'order.base.product.flags'}, $searched['items'][0]->{'order.base.product.flags'});
$this->assertEquals($saved['items']->{'order.base.product.status'}, $searched['items'][0]->{'order.base.product.status'});
$this->assertEquals(1, count($searched['items']));
$this->assertEquals(0, count($result['items']));
}
示例2: testSaveDeleteItem
public function testSaveDeleteItem()
{
$manager = \Aimeos\MShop\Order\Manager\Factory::createManager(\TestHelper::getContext());
$baseManager = $manager->getSubManager('base');
$search = $baseManager->createSearch();
$search->setConditions($search->compare('==', 'order.base.price', '53.50'));
$results = $baseManager->searchItems($search);
if (($expected = reset($results)) === false) {
throw new \Exception('No items found.');
}
$saveParams = (object) array('site' => 'unittest', 'items' => (object) array('order.baseid' => $expected->getId(), 'order.type' => 'web', 'order.datepayment' => '2000-01-01 00:00:00', 'order.datedelivery' => '2001-01-01 00:00:00', 'order.statuspayment' => 2, 'order.statusdelivery' => 4, 'order.relatedid' => 55));
$searchParams = (object) array('site' => 'unittest', 'condition' => (object) array('&&' => array(0 => array('==' => (object) array('order.relatedid' => 55)))));
$saved = $this->object->saveItems($saveParams);
$searched = $this->object->searchItems($searchParams);
$deleteParams = (object) array('site' => 'unittest', 'items' => $saved['items']->{'order.id'});
$this->object->deleteItems($deleteParams);
$result = $this->object->searchItems($searchParams);
$this->assertInternalType('object', $saved['items']);
$this->assertNotNull($saved['items']->{'order.id'});
$this->assertEquals($saved['items']->{'order.id'}, $searched['items'][0]->{'order.id'});
$this->assertEquals($saved['items']->{'order.baseid'}, $searched['items'][0]->{'order.baseid'});
$this->assertEquals($saved['items']->{'order.type'}, $searched['items'][0]->{'order.type'});
$this->assertEquals($saved['items']->{'order.datepayment'}, $searched['items'][0]->{'order.datepayment'});
$this->assertEquals($saved['items']->{'order.datedelivery'}, $searched['items'][0]->{'order.datedelivery'});
$this->assertEquals($saved['items']->{'order.statuspayment'}, $searched['items'][0]->{'order.statuspayment'});
$this->assertEquals($saved['items']->{'order.statusdelivery'}, $searched['items'][0]->{'order.statusdelivery'});
$this->assertEquals($saved['items']->{'order.relatedid'}, $searched['items'][0]->{'order.relatedid'});
$this->assertEquals(1, count($searched['items']));
$this->assertEquals(0, count($result['items']));
}
示例3: testProcessOK
public function testProcessOK()
{
$controller = \Aimeos\Controller\Frontend\Basket\Factory::createController($this->context);
$baseManager = \Aimeos\MShop\Order\Manager\Factory::createManager($this->context)->getSubManager('base');
$serviceManager = \Aimeos\MShop\Service\Manager\Factory::createManager($this->context);
$search = $serviceManager->createSearch();
$search->setConditions($search->compare('==', 'service.code', 'unitpaymentcode'));
$result = $serviceManager->searchItems($search);
if (($serviceItem = reset($result)) === false) {
throw new \Exception('No service item found');
}
$controller->setService('payment', $serviceItem->getId());
$controller->setAddress('payment', array('order.base.address.languageid' => 'en'));
$this->context->setUserId('-1');
$view = \TestHelper::getView();
$param = array('cs_order' => 1);
$helper = new \Aimeos\MW\View\Helper\Parameter\Standard($view, $param);
$view->addHelper('param', $helper);
$this->object->setView($view);
$this->object->process();
$search = $baseManager->createSearch();
$search->setConditions($search->compare('==', 'order.base.customerid', '-1'));
$result = $baseManager->searchItems($search);
if (($item = reset($result)) === false) {
throw new \Exception('No order placed');
}
$baseManager->deleteItem($item->getId());
$this->assertInstanceOf('\\Aimeos\\MShop\\Order\\Item\\Iface', $view->orderItem);
$this->assertEquals($item->getId(), $view->orderItem->getBaseId());
}
示例4: testSaveDeleteItem
public function testSaveDeleteItem()
{
$manager = \Aimeos\MShop\Order\Manager\Factory::createManager(\TestHelper::getContext());
$baseManager = $manager->getSubManager('base');
$productManager = $baseManager->getSubManager('product');
$search = $productManager->createSearch();
$search->setConditions($search->compare('==', 'order.base.product.prodcode', 'CNE'));
$results = $productManager->searchItems($search);
if (($expected = reset($results)) === false) {
throw new \Exception('No product item found');
}
$saveParams = (object) array('site' => 'unittest', 'items' => (object) array('order.base.product.attribute.productid' => $expected->getId(), 'order.base.product.attribute.code' => 'color', 'order.base.product.attribute.value' => 'purple', 'order.base.product.attribute.name' => 'Lila'));
$searchParams = (object) array('site' => 'unittest', 'condition' => (object) array('&&' => array(0 => array('==' => (object) array('order.base.product.attribute.name' => 'Lila')))));
$saved = $this->object->saveItems($saveParams);
$searched = $this->object->searchItems($searchParams);
$deleteParams = (object) array('site' => 'unittest', 'items' => $saved['items']->{'order.base.product.attribute.id'});
$this->object->deleteItems($deleteParams);
$result = $this->object->searchItems($searchParams);
$this->assertInternalType('object', $saved['items']);
$this->assertNotNull($saved['items']->{'order.base.product.attribute.id'});
$this->assertEquals($saved['items']->{'order.base.product.attribute.id'}, $searched['items'][0]->{'order.base.product.attribute.id'});
$this->assertEquals($saved['items']->{'order.base.product.attribute.code'}, $searched['items'][0]->{'order.base.product.attribute.code'});
$this->assertEquals($saved['items']->{'order.base.product.attribute.value'}, $searched['items'][0]->{'order.base.product.attribute.value'});
$this->assertEquals($saved['items']->{'order.base.product.attribute.name'}, $searched['items'][0]->{'order.base.product.attribute.name'});
$this->assertEquals(1, count($searched['items']));
$this->assertEquals(0, count($result['items']));
}
示例5: setUp
/**
* Sets up the fixture. This method is called before a test is executed.
*/
protected function setUp()
{
$this->editor = \TestHelper::getContext()->getEditor();
$this->context = \TestHelper::getContext();
$orderManager = \Aimeos\MShop\Order\Manager\Factory::createManager($this->context);
$this->object = $orderManager->getSubManager('base')->getSubManager('address');
}
示例6: setUp
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*
* @access protected
*/
protected function setUp()
{
$context = \TestHelper::getContext();
$pluginManager = \Aimeos\MShop\Plugin\Manager\Factory::createManager($context);
$this->plugin = $pluginManager->createItem();
$this->plugin->setProvider('ProductGone');
$this->plugin->setStatus(1);
$this->orderManager = \Aimeos\MShop\Order\Manager\Factory::createManager($context);
$orderBaseManager = $this->orderManager->getSubManager('base');
$search = $orderBaseManager->createSearch();
$search->setConditions($search->compare('==', 'order.base.price', 672.0));
$search->setSlice(0, 1);
$items = $orderBaseManager->searchItems($search);
if (($baseItem = reset($items)) === false) {
throw new \Exception('No order base item found.');
}
$this->order = $baseItem;
// create a product to mess with in the tests
$productManager = \Aimeos\MShop\Product\Manager\Factory::createManager(\TestHelper::getContext());
$search = $productManager->createSearch();
$search->setConditions($search->compare('==', 'product.code', 'CNE'));
$search->setSlice(0, 1);
$items = $productManager->searchItems($search);
if (($newProduct = reset($items)) === false) {
throw new \Exception('Product code "CNE" not found.');
}
$newProduct->setId(null);
$newProduct->setLabel('Bad Product');
$newProduct->setCode('WTF');
$productManager->saveItem($newProduct);
$this->product = $newProduct;
}
示例7: process
/**
* Adds order test data.
*/
protected function process()
{
$iface = '\\Aimeos\\MShop\\Context\\Item\\Iface';
if (!$this->additional instanceof $iface) {
throw new \Aimeos\MW\Setup\Exception(sprintf('Additionally provided object is not of type "%1$s"', $iface));
}
$this->msg('Adding order test data', 0);
$this->additional->setEditor('core:unittest');
$localeManager = \Aimeos\MShop\Locale\Manager\Factory::createManager($this->additional, 'Standard');
$orderManager = \Aimeos\MShop\Order\Manager\Factory::createManager($this->additional, 'Standard');
$orderBaseManager = $orderManager->getSubManager('base');
$search = $orderBaseManager->createSearch();
$search->setConditions($search->compare('==', 'order.base.sitecode', array('unittest', 'unit')));
foreach ($orderBaseManager->searchItems($search) as $order) {
$orderBaseManager->deleteItem($order->getId());
}
$ds = DIRECTORY_SEPARATOR;
$path = __DIR__ . $ds . 'data' . $ds . 'order.php';
if (($testdata = (include $path)) == false) {
throw new \Aimeos\MShop\Exception(sprintf('No file "%1$s" found for order domain', $path));
}
$bases = $this->addOrderBaseData($localeManager, $orderBaseManager, $testdata);
$bases['items'] = $this->addOrderBaseProductData($orderBaseManager, $bases, $testdata);
$bases['items'] = $this->addOrderBaseServiceData($orderBaseManager, $bases, $testdata);
//update order bases (getPrice)
foreach ($bases['items'] as $baseItem) {
$orderBaseManager->saveItem($baseItem, false);
}
$this->addOrderData($orderManager, $bases['ids'], $testdata);
$this->status('done');
}
示例8: testRun
public function testRun()
{
$context = \TestHelper::getContext();
$aimeos = \TestHelper::getAimeos();
$mailStub = $this->getMockBuilder('\\Aimeos\\MW\\Mail\\None')->disableOriginalConstructor()->getMock();
$mailMsgStub = $this->getMockBuilder('\\Aimeos\\MW\\Mail\\Message\\None')->disableOriginalConstructor()->disableOriginalClone()->getMock();
$mailStub->expects($this->once())->method('createMessage')->will($this->returnValue($mailMsgStub));
$mailStub->expects($this->once())->method('send');
$context->setMail($mailStub);
$orderAddressItem = \Aimeos\MShop\Order\Manager\Factory::createManager($context)->getSubManager('base')->getSubManager('address')->createItem();
$name = 'ControllerJobsEmailPaymentDefaultRun';
$context->getConfig()->set('mshop/order/manager/name', $name);
$orderManagerStub = $this->getMockBuilder('\\Aimeos\\MShop\\Order\\Manager\\Standard')->setMethods(array('searchItems', 'getSubManager'))->setConstructorArgs(array($context))->getMock();
$orderStatusManagerStub = $this->getMockBuilder('\\Aimeos\\MShop\\Order\\Manager\\Status\\Standard')->setMethods(array('saveItem'))->setConstructorArgs(array($context))->getMock();
$orderBaseManagerStub = $this->getMockBuilder('\\Aimeos\\MShop\\Order\\Manager\\Base\\Standard')->setMethods(array('load'))->setConstructorArgs(array($context))->getMock();
\Aimeos\MShop\Order\Manager\Factory::injectManager('\\Aimeos\\MShop\\Order\\Manager\\' . $name, $orderManagerStub);
$orderItem = new \Aimeos\MShop\Order\Item\Standard(array('ctime' => '2000-01-01 00:00:00'));
$orderBaseItem = $orderBaseManagerStub->createItem();
$orderBaseItem->setAddress($orderAddressItem);
$orderManagerStub->expects($this->exactly(2))->method('getSubManager')->will($this->onConsecutiveCalls($orderStatusManagerStub, $orderBaseManagerStub));
$orderManagerStub->expects($this->exactly(4))->method('searchItems')->will($this->onConsecutiveCalls(array($orderItem), array(), array(), array()));
$orderBaseManagerStub->expects($this->once())->method('load')->will($this->returnValue($orderBaseItem));
$orderStatusManagerStub->expects($this->once())->method('saveItem');
$object = new \Aimeos\Controller\Jobs\Order\Email\Payment\Standard($context, $aimeos);
$object->run();
}
示例9: testProcess
public function testProcess()
{
$manager = \Aimeos\MShop\Order\Manager\Factory::createManager(\TestHelper::getContext());
$order = $manager->createItem();
$this->object->process($order);
$this->assertEquals(\Aimeos\MShop\Order\Item\Base::STAT_PROGRESS, $order->getDeliveryStatus());
}
示例10: setUp
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*
* @access protected
*/
protected function setUp()
{
$pluginManager = \Aimeos\MShop\Plugin\Manager\Factory::createManager(\TestHelper::getContext());
$this->plugin = $pluginManager->createItem();
$this->plugin->setTypeId(2);
$this->plugin->setProvider('ProductLimit');
$this->plugin->setConfig(array('single-number-max' => 10));
$this->plugin->setStatus('1');
$orderManager = \Aimeos\MShop\Order\Manager\Factory::createManager(\TestHelper::getContext());
$orderBaseManager = $orderManager->getSubManager('base');
$orderBaseProductManager = $orderBaseManager->getSubManager('product');
$manager = \Aimeos\MShop\Product\Manager\Factory::createManager(\TestHelper::getContext());
$search = $manager->createSearch();
$search->setConditions($search->compare('==', 'product.code', array('CNE', 'CNC')));
$products = $manager->searchItems($search);
if (count($products) !== 2) {
throw new \Exception('Wrong number of products');
}
$this->products = array();
foreach ($products as $product) {
$item = $orderBaseProductManager->createItem();
$item->copyFrom($product);
$this->products[$product->getCode()] = $item;
}
$this->order = $orderBaseManager->createItem();
$this->object = new \Aimeos\MShop\Plugin\Provider\Order\ProductLimit(\TestHelper::getContext(), $this->plugin);
}
示例11: setUp
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*
* @access protected
*/
protected function setUp()
{
$orderManager = \Aimeos\MShop\Order\Manager\Factory::createManager(\TestHelperMShop::getContext());
$orderBaseManager = $orderManager->getSubManager('base');
$this->order = $orderBaseManager->createItem();
$orderBaseProductManager = $orderBaseManager->getSubManager('product');
$search = $orderBaseProductManager->createSearch();
$search->setConditions($search->combine('&&', array($search->compare('==', 'order.base.product.prodcode', array('CNE', 'CNC')), $search->compare('==', 'order.base.product.price', array('600.00', '36.00')))));
$items = $orderBaseProductManager->searchItems($search);
if (count($items) < 2) {
throw new \Exception('Please fix the test data in your database.');
}
foreach ($items as $item) {
$this->products[$item->getProductCode()] = $item;
}
$this->products['CNE']->setQuantity(2);
$this->products['CNC']->setQuantity(1);
$config = array('min-value' => array('EUR' => '75.00'), 'max-value' => array('EUR' => '625.00'), 'min-products' => '2', 'max-products' => 5);
$pluginManager = \Aimeos\MShop\Plugin\Manager\Factory::createManager(\TestHelperMShop::getContext());
$plugin = $pluginManager->createItem();
$plugin->setTypeId(2);
$plugin->setProvider('BasketLimits');
$plugin->setConfig($config);
$plugin->setStatus('1');
$this->object = new \Aimeos\MShop\Plugin\Provider\Order\BasketLimits(\TestHelperMShop::getContext(), $plugin);
}
示例12: testCancel
public function testCancel()
{
$manager = \Aimeos\MShop\Order\Manager\Factory::createManager(\TestHelperMShop::getContext());
$orderItem = $manager->createItem();
$this->object->cancel($orderItem);
$this->assertEquals(\Aimeos\MShop\Order\Item\Base::PAY_CANCELED, $orderItem->getPaymentStatus());
}
示例13: setUp
/**
* Sets up the fixture, especially creates products.
* This method is called before a test is executed.
*
* @access protected
*/
protected function setUp()
{
$orderProducts = array();
$context = \TestHelper::getContext();
$this->couponItem = \Aimeos\MShop\Coupon\Manager\Factory::createManager($context)->createItem();
$provider = new \Aimeos\MShop\Coupon\Provider\Example($context, $this->couponItem, 'abcd');
$this->object = new \Aimeos\MShop\Coupon\Provider\Decorator\Required($context, $this->couponItem, 'abcd', $provider);
$this->object->setObject($this->object);
$orderManager = \Aimeos\MShop\Order\Manager\Factory::createManager($context);
$orderBaseManager = $orderManager->getSubManager('base');
$orderProductManager = $orderBaseManager->getSubManager('product');
$productManager = \Aimeos\MShop\Product\Manager\Factory::createManager($context);
$search = $productManager->createSearch();
$search->setConditions($search->compare('==', 'product.code', array('CNC')));
$products = $productManager->searchItems($search);
$priceManager = \Aimeos\MShop\Price\Manager\Factory::createManager($context);
$price = $priceManager->createItem();
$price->setValue(321);
foreach ($products as $product) {
$orderProduct = $orderProductManager->createItem();
$orderProduct->copyFrom($product);
$orderProducts[$product->getCode()] = $orderProduct;
}
$orderProducts['CNC']->setPrice($price);
$this->orderBase = new \Aimeos\MShop\Order\Item\Base\Standard($priceManager->createItem(), $context->getLocale());
$this->orderBase->addProduct($orderProducts['CNC']);
}
示例14: testSaveDeleteItem
public function testSaveDeleteItem()
{
$manager = \Aimeos\MShop\Order\Manager\Factory::createManager(\TestHelperExtjs::getContext());
$baseManager = $manager->getSubManager('base');
$search = $baseManager->createSearch();
$search->setConditions($search->compare('==', 'order.base.price', '53.50'));
$results = $baseManager->searchItems($search);
if (($expected = reset($results)) === false) {
throw new \Exception('No base item found');
}
$saveParams = (object) array('site' => 'unittest', 'items' => (object) array('order.base.service.baseid' => $expected->getId(), 'order.base.service.type' => 'delivery', 'order.base.service.code' => '74', 'order.base.service.name' => 'TestName'));
$searchParams = (object) array('site' => 'unittest', 'condition' => (object) array('&&' => array(0 => array('==' => (object) array('order.base.service.code' => '74')))));
$saved = $this->object->saveItems($saveParams);
$searched = $this->object->searchItems($searchParams);
$deleteParams = (object) array('site' => 'unittest', 'items' => $saved['items']->{'order.base.service.id'});
$this->object->deleteItems($deleteParams);
$result = $this->object->searchItems($searchParams);
$this->assertInternalType('object', $saved['items']);
$this->assertNotNull($saved['items']->{'order.base.service.id'});
$this->assertEquals($saved['items']->{'order.base.service.id'}, $searched['items'][0]->{'order.base.service.id'});
$this->assertEquals($saved['items']->{'order.base.service.baseid'}, $searched['items'][0]->{'order.base.service.baseid'});
$this->assertEquals($saved['items']->{'order.base.service.type'}, $searched['items'][0]->{'order.base.service.type'});
$this->assertEquals($saved['items']->{'order.base.service.code'}, $searched['items'][0]->{'order.base.service.code'});
$this->assertEquals($saved['items']->{'order.base.service.name'}, $searched['items'][0]->{'order.base.service.name'});
$this->assertEquals(1, count($searched['items']));
$this->assertEquals(0, count($result['items']));
}
示例15: run
/**
* Executes the job.
*
* @throws \Aimeos\Controller\Jobs\Exception If an error occurs
*/
public function run()
{
$context = $this->getContext();
/** controller/jobs/order/service/delivery/limit-days
* Only start the delivery process of orders that were created in the past within the configured number of days
*
* The delivery process is normally started immediately after the
* notification about a successful payment arrived. This option prevents
* orders from being shipped in case anything went wrong or an update
* failed and old orders would have been shipped now.
*
* @param integer Number of days
* @since 2014.03
* @category User
* @category Developer
* @see controller/jobs/order/email/payment/standard/limit-days
* @see controller/jobs/order/email/delivery/standard/limit-days
*/
$days = $context->getConfig()->get('controller/jobs/order/service/delivery/limit-days', 90);
$date = date('Y-m-d 00:00:00', time() - 86400 * $days);
$serviceManager = \Aimeos\MShop\Service\Manager\Factory::createManager($context);
$serviceSearch = $serviceManager->createSearch();
$serviceSearch->setConditions($serviceSearch->compare('==', 'service.type.code', 'delivery'));
$orderManager = \Aimeos\MShop\Order\Manager\Factory::createManager($context);
$orderSearch = $orderManager->createSearch();
$start = 0;
do {
$serviceItems = $serviceManager->searchItems($serviceSearch);
foreach ($serviceItems as $serviceItem) {
try {
$serviceProvider = $serviceManager->getProvider($serviceItem);
$expr = array($orderSearch->compare('==', 'order.siteid', $serviceItem->getSiteId()), $orderSearch->compare('>', 'order.datepayment', $date), $orderSearch->compare('>', 'order.statuspayment', \Aimeos\MShop\Order\Item\Base::PAY_PENDING), $orderSearch->compare('==', 'order.statusdelivery', \Aimeos\MShop\Order\Item\Base::STAT_UNFINISHED), $orderSearch->compare('==', 'order.base.service.code', $serviceItem->getCode()), $orderSearch->compare('==', 'order.base.service.type', 'delivery'));
$orderSearch->setConditions($orderSearch->combine('&&', $expr));
$orderStart = 0;
do {
$orderItems = $orderManager->searchItems($orderSearch);
foreach ($orderItems as $orderItem) {
try {
$serviceProvider->process($orderItem);
$orderManager->saveItem($orderItem);
} catch (\Exception $e) {
$str = 'Error while processing order with ID "%1$s": %2$s';
$context->getLogger()->log(sprintf($str, $orderItem->getId(), $e->getMessage()));
}
}
$orderCount = count($orderItems);
$orderStart += $orderCount;
$orderSearch->setSlice($orderStart);
} while ($orderCount >= $orderSearch->getSliceSize());
} catch (\Exception $e) {
$str = 'Error while processing service with ID "%1$s": %2$s';
$context->getLogger()->log(sprintf($str, $serviceItem->getId(), $e->getMessage()));
}
}
$count = count($serviceItems);
$start += $count;
$serviceSearch->setSlice($start);
} while ($count >= $serviceSearch->getSliceSize());
}