regenerateMocks(); parent::setUp(); } public function test_history_order_create() { $product = WC_Helper_Product::create_simple_product(); $order = $this->get_history_data_new_order($product->get_id()); $this->mockHistory( true, true, $this->empty_history(), $order ); $retailcrm_history = new \WC_Retailcrm_History($this->apiMock); $retailcrm_history->getHistory(); $orders = wc_get_orders(array('numberposts' => -1)); $order_added = end($orders); if (!$order_added) { $this->fail('$order_added is null - no orders were added after receiving history'); } $order_added_items = $order_added->get_items(); $order_added_item = reset($order_added_items); $shipping_address = $order_added->get_address('shipping'); $billing_address = $order_added->get_address('billing'); $options = get_option(\WC_Retailcrm_Base::$option_key); $this->assertEquals(self::STATUS_1, $options[$order_added->get_status()]); if (is_object($order_added_item)) { $this->assertEquals($product->get_id(), $order_added_item->get_product()->get_id()); } $this->assertNotEmpty($order_added->get_date_created()); $this->assertEquals("2018-01-01 00:00:00", $order['history'][0]['createdAt']); $this->assertNotEmpty($shipping_address['first_name']); $this->assertNotEmpty($shipping_address['last_name']); $this->assertNotEmpty($shipping_address['postcode']); $this->assertNotEmpty($shipping_address['city']); $this->assertNotEmpty($shipping_address['country']); $this->assertNotEmpty($shipping_address['state']); if (isset($billing_address['phone'])) { $this->assertNotEmpty($billing_address['phone']); } if (isset($billing_address['email'])) { $this->assertNotEmpty($billing_address['email']); } $this->assertNotEmpty($billing_address['first_name']); $this->assertNotEmpty($billing_address['last_name']); $this->assertNotEmpty($billing_address['postcode']); $this->assertNotEmpty($billing_address['city']); $this->assertNotEmpty($billing_address['country']); $this->assertNotEmpty($billing_address['state']); if ($order_added->get_payment_method()) { $this->assertEquals('payment4', $options[$order_added->get_payment_method()]); } } public function test_history_order_add_product() { $product = WC_Helper_Product::create_simple_product(); $order = WC_Helper_Order::create_order(0); $this->mockHistory( true, true, $this->empty_history(), $this->get_history_data_product_add($product->get_id(), $order->get_id()) ); $retailcrm_history = new \WC_Retailcrm_History($this->apiMock); $retailcrm_history->getHistory(); $order_updated = wc_get_order($order->get_id()); $order_updated_items = $order_updated->get_items(); $order_updated_item = end($order_updated_items); $this->assertEquals(2, count($order_updated_items)); $this->assertEquals(2, $order_updated_item->get_quantity()); $this->assertEquals($product->get_id(), $order_updated_item->get_product()->get_id()); } public function test_history_order_update() { $order = WC_Helper_Order::create_order(0); $this->mockHistory( true, true, $this->empty_history(), $this->get_history_data_update($order->get_id()) ); $retailcrm_history = new \WC_Retailcrm_History($this->apiMock); $retailcrm_history->getHistory(); $order_updated = wc_get_order($order->get_id()); $options = get_option(\WC_Retailcrm_Base::$option_key); $this->assertEquals(self::STATUS_2, $options[$order_updated->get_status()]); $this->assertEquals('payment2', $options[$order_updated->get_payment_method()]); } public function test_history_switch_customer_tests() { $this->deleteAllData(); $this->regenerateMocks(); $order_id = $this->history_order_create_for_changing_customer(); $this->assertNotEmpty($order_id); $this->regenerateMocks(); $this->history_order_switch_customer($order_id); $this->regenerateMocks(); $this->history_order_switch_customer_to_corporate($order_id); $this->regenerateMocks(); $this->history_order_switch_customer_to_another_corporate($order_id); $this->regenerateMocks(); $this->history_order_switch_only_company($order_id); $this->regenerateMocks(); $this->history_order_switch_only_contact($order_id); $this->regenerateMocks(); $this->history_order_switch_back_to_individual($order_id); } public function history_order_create_for_changing_customer() { $product = WC_Helper_Product::create_simple_product(); $this->mockHistory( true, true, $this->empty_history(), $this->get_history_order_for_client_replace($product->get_id()) ); $retailcrm_history = new \WC_Retailcrm_History($this->apiMock); $retailcrm_history->getHistory(); $orders = wc_get_orders(array('numberposts' => -1)); $order_added = end($orders); if (!$order_added) { $this->fail('$order_added is null - no orders were added after receiving history'); } $this->assertEquals('tester001@example.com', $order_added->get_billing_email()); $this->assertNotEmpty($order_added->get_id()); return $order_added->get_id(); } /** * @param int $order_id * * @throws \Exception */ public function history_order_switch_customer($order_id) { $this->mockHistory( true, true, $this->empty_history(), $this->get_history_change_to_another_individual($order_id) ); $this->ordersGetMock( true, $this->get_order_with_customer_and_contact($this->get_new_individual_for_order()) ); $retailcrm_history = new \WC_Retailcrm_History($this->apiMock); $retailcrm_history->getHistory(); try { $order = new WC_Order($order_id); } catch (\Exception $exception) { $post = get_post($order_id); if (!$post instanceof WP_Post) { $this->fail(sprintf('Cannot find order with id=%d', $order_id)); } if (!in_array($post->post_type, wc_get_order_types())) { $this->fail(sprintf( 'Invalid order post type `%s`. Should be one of these: %s', $post->post_type, implode(', ', wc_get_order_types()) )); } else { $this->fail(sprintf( 'Cannot determine what\'s wrong with order id=%d. Message from WooCommerce: %s', $order_id, $exception->getMessage() )); } return; } $this->assertEquals('tester002', $order->get_billing_first_name()); $this->assertEquals('tester002', $order->get_billing_last_name()); $this->assertEquals('ewtrhibehb126879@example.com', $order->get_billing_email()); $this->assertEquals('с. Верхненазаровское', $order->get_billing_city()); $this->assertEquals('34000', $order->get_billing_postcode()); $this->assertEquals('Адыгея Республика', $order->get_billing_state()); $this->assertEquals('с. Верхненазаровское', $order->get_shipping_city()); $this->assertEquals('34000', $order->get_shipping_postcode()); $this->assertEquals('Адыгея Республика', $order->get_shipping_state()); $this->assertEquals('34687453268933', $order->get_billing_phone()); $this->assertEmpty($order->get_billing_company()); $this->assertEmpty($order->get_customer_id()); } /** * @param int $order_id * * @throws \Exception */ public function history_order_switch_customer_to_corporate($order_id) { $this->mockHistory( true, true, $this->empty_history(), $this->get_history_change_to_corporate($order_id) ); $this->ordersGetMock( true, $this->get_order_with_customer_and_contact( $this->get_new_corporate_for_order(), $this->get_new_contact_for_order(), array('name' => 'Компания1'), 'legal-entity' ) ); $retailcrm_history = new \WC_Retailcrm_History($this->apiMock); $retailcrm_history->getHistory(); try { $order = new WC_Order($order_id); } catch (\Exception $exception) { $post = get_post($order_id); if (!$post instanceof WP_Post) { $this->fail(sprintf('Cannot find order with id=%d', $order_id)); } if (!in_array($post->post_type, wc_get_order_types())) { $this->fail(sprintf( 'Invalid order post type `%s`. Should be one of these: %s', $post->post_type, implode(', ', wc_get_order_types()) )); } else { $this->fail(sprintf( 'Cannot determine what\'s wrong with order id=%d. Message from WooCommerce: %s', $order_id, $exception->getMessage() )); } return; } $this->assertEquals('psycho913', $order->get_billing_first_name()); $this->assertEquals('psycho913', $order->get_billing_last_name()); $this->assertEquals('psycho913@example.com', $order->get_billing_email()); $this->assertEquals('Валдгейм', $order->get_shipping_city()); $this->assertEquals('344091', $order->get_shipping_postcode()); $this->assertEquals('Еврейская Автономная область', $order->get_shipping_state()); $this->assertEquals('Компания1', $order->get_billing_company()); $this->assertEquals('9135487458709', $order->get_billing_phone()); $this->assertEmpty($order->get_customer_id()); } /** * @param int $order_id * * @throws \Exception */ public function history_order_switch_customer_to_another_corporate($order_id) { $this->mockHistory( true, true, $this->empty_history(), $this->get_history_change_to_another_corporate($order_id) ); $this->ordersGetMock( true, $this->get_order_with_customer_and_contact( $this->get_another_corporate_for_order(), $this->get_another_contact_for_order(), array('name' => 'TestCompany3428769'), 'legal-entity' ) ); $retailcrm_history = new \WC_Retailcrm_History($this->apiMock); $retailcrm_history->getHistory(); try { $order = new WC_Order($order_id); } catch (\Exception $exception) { $post = get_post($order_id); if (!$post instanceof WP_Post) { $this->fail(sprintf('Cannot find order with id=%d', $order_id)); } if (!in_array($post->post_type, wc_get_order_types())) { $this->fail(sprintf( 'Invalid order post type `%s`. Should be one of these: %s', $post->post_type, implode(', ', wc_get_order_types()) )); } else { $this->fail(sprintf( 'Cannot determine what\'s wrong with order id=%d. Message from WooCommerce: %s', $order_id, $exception->getMessage() )); } return; } $this->assertEquals('Tester4867', $order->get_billing_first_name()); $this->assertEquals('Tester4867', $order->get_billing_last_name()); $this->assertEquals('tester4867@example.com', $order->get_billing_email()); $this->assertEquals('TestCompany3428769', $order->get_billing_company()); $this->assertEquals('--', $order->get_shipping_city()); $this->assertEquals('--', $order->get_shipping_postcode()); $this->assertEquals('--', $order->get_shipping_state()); $this->assertEquals('--', $order->get_shipping_country()); $this->assertEquals('', $order->get_billing_phone()); $this->assertEmpty($order->get_customer_id()); } /** * @param int $order_id * * @throws \Exception */ public function history_order_switch_only_company($order_id) { $this->mockHistory( true, true, $this->empty_history(), $this->get_history_change_only_company($order_id) ); $this->ordersGetMock( true, $this->get_order_with_customer_and_contact( $this->get_another_corporate_for_order(), $this->get_another_contact_for_order(), array('name' => 'TestCompany017089465'), 'legal-entity' ) ); $retailcrm_history = new \WC_Retailcrm_History($this->apiMock); $retailcrm_history->getHistory(); try { $order = new WC_Order($order_id); } catch (\Exception $exception) { $post = get_post($order_id); if (!$post instanceof WP_Post) { $this->fail(sprintf('Cannot find order with id=%d', $order_id)); } if (!in_array($post->post_type, wc_get_order_types())) { $this->fail(sprintf( 'Invalid order post type `%s`. Should be one of these: %s', $post->post_type, implode(', ', wc_get_order_types()) )); } else { $this->fail(sprintf( 'Cannot determine what\'s wrong with order id=%d. Message from WooCommerce: %s', $order_id, $exception->getMessage() )); } return; } $this->assertEquals('Tester4867', $order->get_billing_first_name()); $this->assertEquals('Tester4867', $order->get_billing_last_name()); $this->assertEquals('tester4867@example.com', $order->get_billing_email()); $this->assertEquals('TestCompany017089465', $order->get_billing_company()); $this->assertEquals('--', $order->get_shipping_city()); $this->assertEquals('--', $order->get_shipping_postcode()); $this->assertEquals('--', $order->get_shipping_state()); $this->assertEquals('--', $order->get_shipping_country()); $this->assertEquals('', $order->get_billing_phone()); $this->assertEmpty($order->get_customer_id()); } /** * @param int $order_id * * @throws \Exception */ public function history_order_switch_only_contact($order_id) { $this->mockHistory( true, true, $this->empty_history(), $this->get_history_change_only_contact($order_id) ); $this->ordersGetMock( true, $this->get_order_with_customer_and_contact( $this->get_another_corporate_for_order(), $this->get_contact_when_only_contact_changed(), array('name' => 'TestCompany017089465'), 'legal-entity' ) ); $retailcrm_history = new \WC_Retailcrm_History($this->apiMock); $retailcrm_history->getHistory(); try { $order = new WC_Order($order_id); } catch (\Exception $exception) { $post = get_post($order_id); if (!$post instanceof WP_Post) { $this->fail(sprintf('Cannot find order with id=%d', $order_id)); } if (!in_array($post->post_type, wc_get_order_types())) { $this->fail(sprintf( 'Invalid order post type `%s`. Should be one of these: %s', $post->post_type, implode(', ', wc_get_order_types()) )); } else { $this->fail(sprintf( 'Cannot determine what\'s wrong with order id=%d. Message from WooCommerce: %s', $order_id, $exception->getMessage() )); } return; } $this->assertEquals('Tester2890', $order->get_billing_first_name()); $this->assertEquals('Tester2890', $order->get_billing_last_name()); $this->assertEquals('tester2890@example.com', $order->get_billing_email()); $this->assertEquals('TestCompany017089465', $order->get_billing_company()); $this->assertEquals('--', $order->get_shipping_city()); $this->assertEquals('--', $order->get_shipping_postcode()); $this->assertEquals('--', $order->get_shipping_state()); $this->assertEquals('--', $order->get_shipping_country()); $this->assertEquals('32418790888', $order->get_billing_phone()); $this->assertEmpty($order->get_customer_id()); } /** * @param int $order_id * * @throws \Exception */ public function history_order_switch_back_to_individual($order_id) { $this->mockHistory( true, true, $this->empty_history(), $this->get_history_change_from_corporate_to_individual($order_id) ); $this->ordersGetMock( true, $this->get_order_with_customer_and_contact($this->get_initial_regular_customer()) ); $retailcrm_history = new \WC_Retailcrm_History($this->apiMock); $retailcrm_history->getHistory(); try { $order = new WC_Order($order_id); } catch (\Exception $exception) { $post = get_post($order_id); if (!$post instanceof WP_Post) { $this->fail(sprintf('Cannot find order with id=%d', $order_id)); } if (!in_array($post->post_type, wc_get_order_types())) { $this->fail(sprintf( 'Invalid order post type `%s`. Should be one of these: %s', $post->post_type, implode(', ', wc_get_order_types()) )); } else { $this->fail(sprintf( 'Cannot determine what\'s wrong with order id=%d. Message from WooCommerce: %s', $order_id, $exception->getMessage() )); } return; } $this->assertEquals('tester001', $order->get_billing_first_name()); $this->assertEquals('tester001', $order->get_billing_last_name()); $this->assertEquals('tester001@example.com', $order->get_billing_email()); $this->assertEquals('--', $order->get_billing_city()); $this->assertEquals('--', $order->get_billing_postcode()); $this->assertEquals('--', $order->get_billing_state()); $this->assertEquals('--', $order->get_billing_country()); $this->assertEquals('--', $order->get_shipping_city()); $this->assertEquals('--', $order->get_shipping_postcode()); $this->assertEquals('--', $order->get_shipping_state()); $this->assertEquals('--', $order->get_shipping_country()); $this->assertEquals('2354708915097', $order->get_billing_phone()); $this->assertEquals('ул. Пушкина дом Колотушкина', $order->get_billing_address_1()); $this->assertEmpty($order->get_billing_company()); $this->assertEmpty($order->get_customer_id()); } /** * Mock ordersGet response. * * @param bool $isSuccessful * @param array $response */ private function ordersGetMock($isSuccessful, $response) { $mock = $this->getMockBuilder('\WC_Retailcrm_Response_Helper') ->disableOriginalConstructor() ->setMethods(array( 'isSuccessful' )) ->getMock(); $mock->expects($this->any()) ->method('isSuccessful') ->willReturn($isSuccessful); $mock->setResponse($response); $this->apiMock->expects($this->any())->method('ordersGet')->willReturn($mock); } /** * Mocks customers and orders history responses with provided data * * @param bool $isSuccessfulCustomers * @param bool $isSuccessfulOrders * @param array $customersHistoryResponse * @param array $orderHistoryResponse */ private function mockHistory( $isSuccessfulCustomers, $isSuccessfulOrders, $customersHistoryResponse, $orderHistoryResponse ) { $this->setOptions(); if (!add_option('retailcrm_orders_history_since_id', 0)) { update_option('retailcrm_orders_history_since_id', 0); } if (!add_option('retailcrm_customers_history_since_id', 0)) { update_option('retailcrm_customers_history_since_id', 0); } $this->customersHistoryResponse->expects($this->any()) ->method('isSuccessful') ->willReturn($isSuccessfulCustomers); $this->ordersHistoryResponse->expects($this->any()) ->method('isSuccessful') ->willReturn($isSuccessfulOrders); $this->customersHistoryResponse->setResponse($customersHistoryResponse); $this->ordersHistoryResponse->setResponse($orderHistoryResponse); $this->apiMock->expects($this->any())->method('customersHistory')->willReturn($this->customersHistoryResponse); $this->apiMock->expects($this->any())->method('ordersHistory')->willReturn($this->ordersHistoryResponse); } private function regenerateMocks() { $this->apiMock = $this->getMockBuilder('\WC_Retailcrm_Proxy') ->disableOriginalConstructor() ->setMethods(array( 'ordersHistory', 'customersHistory', 'ordersGet' )) ->getMock(); $this->customersHistoryResponse = $this->getMockBuilder('\WC_Retailcrm_Response_Helper') ->disableOriginalConstructor() ->setMethods(array( 'isSuccessful' )) ->getMock(); $this->ordersHistoryResponse = $this->getMockBuilder('\WC_Retailcrm_Response_Helper') ->disableOriginalConstructor() ->setMethods(array( 'isSuccessful' )) ->getMock(); } private function empty_history() { return array( 'success' => true, 'history' => array(), "pagination" => array( "limit" => 100, "totalCount" => 0, "currentPage" => 1, "totalPageCount" => 0 ) ); } private function get_history_data_new_order($product_create_id) { return array( 'success' => true, 'history' => array( array( 'id' => 1, 'createdAt' => '2018-01-01 00:00:00', 'created' => true, 'source' => 'user', 'user' => array( 'id' => 1 ), 'field' => 'status', 'oldValue' => null, 'newValue' => array( 'code' => self::STATUS_1 ), 'order' => array( 'slug' => 1, 'id' => 1, 'number' => '1C', 'orderType' => 'eshop-individual', 'orderMethod' => 'phone', 'countryIso' => 'RU', 'createdAt' => '2018-01-01 00:00:00', 'statusUpdatedAt' => '2018-01-01 00:00:00', 'summ' => 100, 'totalSumm' => 100, 'prepaySum' => 0, 'purchaseSumm' => 50, 'markDatetime' => '2018-01-01 00:00:00', 'firstName' => 'Test', 'lastName' => 'Test', 'phone' => '80000000000', 'call' => false, 'expired' => false, 'customer' => array( 'type' => 'customer', 'segments' => array(), 'id' => 1, 'firstName' => 'Test', 'lastName' => 'Test', 'email' => 'email@test.ru', 'phones' => array( array( 'number' => '111111111111111' ), array( 'number' => '+7111111111' ) ), 'address' => array( 'index' => '111111', 'countryIso' => 'RU', 'region' => 'Test region', 'city' => 'Test', 'text' => 'Test text address' ), 'createdAt' => '2018-01-01 00:00:00', 'managerId' => 1, 'vip' => false, 'bad' => false, 'site' => 'test-com', 'contragent' => array( 'contragentType' => 'individual' ), 'personalDiscount' => 0, 'cumulativeDiscount' => 0, 'marginSumm' => 58654, 'totalSumm' => 61549, 'averageSumm' => 15387.25, 'ordersCount' => 4, 'costSumm' => 101, 'customFields' => array( 'custom' => 'test' ) ), 'contragent' => array(), 'delivery' => array( 'cost' => 0, 'netCost' => 0, 'address' => array( 'index' => '111111', 'countryIso' => 'RU', 'region' => 'Test region', 'city' => 'Test', 'text' => 'Test text address' ) ), 'site' => 'test-com', 'status' => self::STATUS_1, 'items' => array( array( 'id' => 160, 'initialPrice' => 100, 'discountTotal' => 5, 'createdAt' => '2018-01-01 00:00:00', 'quantity' => 1, 'status' => 'new', 'externalIds' =>array( array( 'code' =>'woocomerce', 'value' =>"160_".$product_create_id ) ), 'initialPrice' => 15, 'discountTotal' => 1, 'offer' => array( 'id' => 1, 'externalId' => $product_create_id, 'xmlId' => '1', 'name' => 'Test name', 'vatRate' => 'none' ), 'properties' => array(), 'purchasePrice' => 50 ) ), 'paymentType' => 'payment4', 'payments' => array( array( 'id'=> 1, 'type'=> 'payment4', 'amount'=> 100, ) ), 'fromApi' => false, 'length' => 0, 'width' => 0, 'height' => 0, 'shipmentStore' => 'main', 'shipped' => false, 'customFields' => array(), 'uploadedToExternalStoreSystem' => false ) ) ), "pagination" => array( "limit" => 100, "totalCount" => 1, "currentPage" => 1, "totalPageCount" => 1 ) ); } private function get_history_data_product_add($product_add_id, $order_id) { return array( 'success' => true, 'history' => array( array( 'id' => 2, 'createdAt' => '2018-01-01 00:00:01', 'source'=> 'user', 'user' => array( 'id'=> 1 ), 'field' => 'order_product', 'oldValue' => null, 'newValue' => array( 'id' => 2, 'offer' => array( 'id'=> 2, 'externalId' => $product_add_id, 'xmlId' => 'xmlId' ) ), 'order' => array( 'id' => 2, 'externalId' => $order_id, 'site' => 'test-com', 'status' => self::STATUS_1 ), 'item' => array( 'id' => 2, 'initialPrice' => 999, 'createdAt' => '2018-01-01 00:02:00', 'quantity' => 2, 'status' => self::STATUS_1, 'externalIds' =>array( array( 'code' =>'woocomerce', 'value' =>"160_".$product_add_id ) ), 'offer' => array( 'id' => 2, 'externalId' => $product_add_id, 'xmlId' => 'xmlId', 'name' => 'Test name 2' ), 'properties' => array(), 'purchasePrice' => 500 ) ) ), "pagination" => array( "limit" => 100, "totalCount" => 1, "currentPage" => 1, "totalPageCount" => 1 ) ); } private function get_history_data_update($order_id) { $history = array( 'success' => true, 'history' => array( array( 'id' => 3, 'createdAt' => '2018-01-01 00:03:00', 'source' => 'user', 'user' => array( 'id' => 1 ), 'field' => 'status', 'oldValue' => array( 'code' => 'new' ), 'newValue' => array( 'code' => self::STATUS_2 ), 'order' => array( 'id' => 2, 'externalId' => $order_id, 'managerId' => 6, 'site' => 'test-com', 'status' => self::STATUS_2 ) ) ), "pagination" => array( "limit" => 100, "totalCount" => 1, "currentPage" => 1, "totalPageCount" => 1 ) ); $payment_v5 = array( 'id' => 4, 'createdAt' => '2018-01-01 00:03:00', 'source' => 'user', 'user' => array( 'id' => 1 ), 'field' => 'payments', 'oldValue' => null, 'newValue' => array( 'code' => 'payment2' ), 'order' => array( 'id' => 2, 'externalId' => $order_id, 'managerId' => 6, 'site' => 'test-com', 'status' => self::STATUS_2 ), 'payment' => array( 'id' => 1, 'type' => 'payment2', "amount" => 100 ) ); array_push($history['history'], $payment_v5); return $history; } private function get_history_order_for_client_replace($productId) { return array( 'success' => true, 'generatedAt' => '2020-06-04 15:05:39', 'history' => array(array( 'id' => 25011, 'createdAt' => '2020-06-04 15:05:10', 'created' => true, 'source' => 'user', 'field' => 'status', 'oldValue' => NULL, 'newValue' => array ('code' => 'new'), 'order' => array ( 'slug' => 5868, 'id' => 5868, 'number' => '5868C', 'orderType' => 'test', 'orderMethod' => 'phone', 'countryIso' => 'RU', 'createdAt' => '2020-06-04 15:05:10', 'statusUpdatedAt' => '2020-06-04 15:05:10', 'summ' => 16, 'totalSumm' => 16, 'prepaySum' => 0, 'purchaseSumm' => 0, 'markDatetime' => '2020-06-04 15:05:10', 'lastName' => 'tester001', 'firstName' => 'tester001', 'phone' => '2354708915097', 'email' => 'tester001@example.com', 'call' => false, 'expired' => false, 'managerId' => 27, 'customer' => array( 'type' => 'customer', 'id' => 4228, 'externalId' => '2', 'isContact' => false, 'createdAt' => '2020-06-01 15:31:46', 'managerId' => 27, 'vip' => false, 'bad' => false, 'site' => 'bitrix-test', 'contragent' => array( 'contragentType' => 'individual', ), 'tags' => array(), 'marginSumm' => 9412, 'totalSumm' => 9412, 'averageSumm' => 9412, 'ordersCount' => 1, 'costSumm' => 0, 'customFields' => array(), 'personalDiscount' => 0, 'cumulativeDiscount' => 0, 'address' => array( 'id' => 3132, 'text' => 'ул. Пушкина дом Колотушкина', ), 'segments' => array(), 'firstName' => 'tester001', 'lastName' => 'tester001', 'email' => 'tester001@example.com', 'emailMarketingUnsubscribedAt' => '2020-06-01 15:34:23', 'phones' => array(array('number' => '2354708915097')) ), 'contact' => array( 'type' => 'customer', 'id' => 4228, 'externalId' => '2', 'isContact' => false, 'createdAt' => '2020-06-01 15:31:46', 'managerId' => 27, 'vip' => false, 'bad' => false, 'site' => 'bitrix-test', 'contragent' => array( 'contragentType' => 'individual', ), 'tags' => array(), 'marginSumm' => 9412, 'totalSumm' => 9412, 'averageSumm' => 9412, 'ordersCount' => 1, 'costSumm' => 0, 'customFields' => array(), 'personalDiscount' => 0, 'cumulativeDiscount' => 0, 'address' => array( 'id' => 3132, 'text' => 'ул. Пушкина дом Колотушкина', ), 'segments' => array(), 'firstName' => 'tester001', 'lastName' => 'tester001', 'email' => 'tester001@example.com', 'emailMarketingUnsubscribedAt' => '2020-06-01 15:34:23', 'phones' => array(array('number' => '2354708915097')) ), 'contragent' => array( 'contragentType' => 'individual', ), 'delivery' => array( 'cost' => 0, 'netCost' => 0, 'address' => array( 'id' => 5864, 'countryIso' => 'RU', 'text' => 'ул. Пушкина дом Колотушкина', ), ), 'site' => 'woocommerce', 'status' => 'new', 'items' => array( array( 'id' => 160, 'initialPrice' => 100, 'discountTotal' => 5, 'createdAt' => '2018-01-01 00:00:00', 'quantity' => 1, 'status' => 'new', 'externalIds' =>array( array( 'code' =>'woocomerce', 'value' =>"160_".$productId ) ), 'initialPrice' => 15, 'discountTotal' => 1, 'offer' => array( 'id' => 1, 'externalId' => $productId, 'xmlId' => '1', 'name' => 'Test name', 'vatRate' => 'none' ), 'properties' => array(), 'purchasePrice' => 50 ) ), 'fromApi' => false, 'length' => 0, 'width' => 0, 'height' => 0, 'shipmentStore' => 'main', 'shipped' => false, 'customFields' => array() ) )), 'pagination' => array( 'limit' => 100, 'totalCount' => 1, 'currentPage' => 1, 'totalPageCount' => 1, ) ); } private function get_history_change_to_another_individual($orderExternalId) { return array( 'success' => true, 'generatedAt' => '2020-06-05 12:29:14', 'history' => array( array( 'id' => 25398, 'createdAt' => '2020-06-05 12:29:08', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'contact', 'oldValue' => array( 'id' => 4228, 'externalId' => '2', 'site' => 'bitrix-test', ), 'newValue' => array( 'id' => 4231, 'site' => 'bitrix-test', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25399, 'createdAt' => '2020-06-05 12:29:08', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'customer', 'oldValue' => array( 'id' => 4228, 'externalId' => '2', 'site' => 'bitrix-test', ), 'newValue' => array( 'id' => 4231, 'site' => 'bitrix-test', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25400, 'createdAt' => '2020-06-05 12:29:08', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'email', 'oldValue' => 'tester001@example.com', 'newValue' => 'ewtrhibehb126879@example.com', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25401, 'createdAt' => '2020-06-05 12:29:08', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'first_name', 'oldValue' => 'tester001', 'newValue' => 'tester002', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25402, 'createdAt' => '2020-06-05 12:29:08', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'last_name', 'oldValue' => 'tester001', 'newValue' => 'tester002', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25403, 'createdAt' => '2020-06-05 12:29:08', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'patronymic', 'oldValue' => null, 'newValue' => 'tester002', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25404, 'createdAt' => '2020-06-05 12:29:08', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'phone', 'oldValue' => '2354708915097', 'newValue' => '34687453268933', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), ), 'pagination' => array( 'limit' => 100, 'totalCount' => 7, 'currentPage' => 1, 'totalPageCount' => 1, ), ); } private function get_history_change_to_corporate($orderExternalId) { return array( 'success' => true, 'generatedAt' => '2020-06-05 15:24:19', 'history' => array( array( 'id' => 25744, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'delivery_address.city', 'oldValue' => 'с. Верхненазаровское', 'newValue' => 'Валдгейм', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25745, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'delivery_address.index', 'oldValue' => '34000', 'newValue' => '344091', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25746, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'delivery_address.region', 'oldValue' => 'Адыгея Республика', 'newValue' => 'Еврейская Автономная область', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25747, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'contragent.contragent_type', 'oldValue' => 'individual', 'newValue' => 'legal-entity', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25748, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'contragent.legal_address', 'oldValue' => null, 'newValue' => '344090 * Москва упцупуцйпуц йцавафыафыафыафы', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25749, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'company', 'oldValue' => null, 'newValue' => array( 'id' => 591, 'name' => 'Компания1', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25750, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'contact', 'oldValue' => array( 'id' => 4231, 'site' => 'bitrix-test', ), 'newValue' => array( 'id' => 4219, 'externalId' => '4', 'site' => 'woocommerce', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25751, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'customer', 'oldValue' => array( 'id' => 4231, 'site' => 'bitrix-test', ), 'newValue' => array( 'id' => 4220, 'site' => 'woocommerce', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25752, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'email', 'oldValue' => 'ewtrhibehb126879@example.com', 'newValue' => 'psycho913@example.com', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25753, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'first_name', 'oldValue' => 'tester002', 'newValue' => 'psycho913', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25754, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'last_name', 'oldValue' => 'tester002', 'newValue' => 'psycho913', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25755, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'patronymic', 'oldValue' => 'tester002', 'newValue' => null, 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25756, 'createdAt' => '2020-06-05 15:24:12', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'phone', 'oldValue' => '34687453268933', 'newValue' => '9135487458709', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), ), 'pagination' => array( 'limit' => 100, 'totalCount' => 13, 'currentPage' => 1, 'totalPageCount' => 1, ), ); } private function get_history_change_to_another_corporate($orderExternalId) { return array( 'success' => true, 'generatedAt' => '2020-06-05 16:37:53', 'history' => array( array( 'id' => 25979, 'createdAt' => '2020-06-05 16:37:46', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'contragent.legal_address', 'oldValue' => '344090 * Москва упцупуцйпуц йцавафыафыафыафы', 'newValue' => null, 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25980, 'createdAt' => '2020-06-05 16:37:46', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'company', 'oldValue' => array( 'id' => 591, 'name' => 'Компания1', ), 'newValue' => array( 'id' => 621, 'name' => 'TestCompany3428769', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25981, 'createdAt' => '2020-06-05 16:37:46', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'contact', 'oldValue' => array( 'id' => 4219, 'externalId' => '4', 'site' => 'woocommerce', ), 'newValue' => array( 'id' => 4304, 'site' => 'woocommerce', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25982, 'createdAt' => '2020-06-05 16:37:46', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'customer', 'oldValue' => array( 'id' => 4220, 'site' => 'woocommerce', ), 'newValue' => array( 'id' => 4303, 'site' => 'woocommerce', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25983, 'createdAt' => '2020-06-05 16:37:46', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'email', 'oldValue' => 'psycho913@example.com', 'newValue' => 'tester4867@example.com', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25984, 'createdAt' => '2020-06-05 16:37:46', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'first_name', 'oldValue' => 'psycho913', 'newValue' => 'Tester4867', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25985, 'createdAt' => '2020-06-05 16:37:46', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'last_name', 'oldValue' => 'psycho913', 'newValue' => 'Tester4867', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25986, 'createdAt' => '2020-06-05 16:37:46', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'patronymic', 'oldValue' => null, 'newValue' => 'Tester4867', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25987, 'createdAt' => '2020-06-05 16:37:46', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'phone', 'oldValue' => '9135487458709', 'newValue' => null, 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), ), 'pagination' => array( 'limit' => 100, 'totalCount' => 9, 'currentPage' => 1, 'totalPageCount' => 1, ), ); } private function get_history_change_only_company($orderExternalId) { return array( 'success' => true, 'generatedAt' => '2020-06-05 17:13:23', 'history' => array( array( 'id' => 25988, 'createdAt' => '2020-06-05 17:13:17', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'company', 'oldValue' => array( 'id' => 621, 'name' => 'TestCompany3428769', ), 'newValue' => array( 'id' => 622, 'name' => 'TestCompany017089465', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), ), 'pagination' => array( 'limit' => 100, 'totalCount' => 1, 'currentPage' => 1, 'totalPageCount' => 1, ), ); } private function get_history_change_only_contact($orderExternalId) { return array( 'success' => true, 'generatedAt' => '2020-06-05 17:36:28', 'history' => array( array( 'id' => 25989, 'createdAt' => '2020-06-05 17:36:20', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'contact', 'oldValue' => array( 'id' => 4304, 'site' => 'woocommerce', ), 'newValue' => array( 'id' => 4305, 'site' => 'woocommerce', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25990, 'createdAt' => '2020-06-05 17:36:20', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'email', 'oldValue' => 'tester4867@example.com', 'newValue' => 'tester2890@example.com', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25991, 'createdAt' => '2020-06-05 17:36:20', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'first_name', 'oldValue' => 'Tester4867', 'newValue' => 'Tester2890', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25992, 'createdAt' => '2020-06-05 17:36:20', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'last_name', 'oldValue' => 'Tester4867', 'newValue' => 'Tester2890', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25993, 'createdAt' => '2020-06-05 17:36:20', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'patronymic', 'oldValue' => 'Tester4867', 'newValue' => 'Tester2890', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25994, 'createdAt' => '2020-06-05 17:36:20', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'phone', 'oldValue' => null, 'newValue' => '32418790888', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), ), 'pagination' => array( 'limit' => 100, 'totalCount' => 6, 'currentPage' => 1, 'totalPageCount' => 1, ), ); } private function get_history_change_from_corporate_to_individual($orderExternalId) { return array( 'success' => true, 'generatedAt' => '2020-06-05 17:47:05', 'history' => array( array( 'id' => 25995, 'createdAt' => '2020-06-05 17:46:58', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'contragent.contragent_type', 'oldValue' => 'legal-entity', 'newValue' => 'individual', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25996, 'createdAt' => '2020-06-05 17:46:58', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'contact', 'oldValue' => array( 'id' => 4305, 'site' => 'woocommerce', ), 'newValue' => array( 'id' => 4228, 'externalId' => '2', 'site' => 'bitrix-test', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25997, 'createdAt' => '2020-06-05 17:46:58', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'customer', 'oldValue' => array( 'id' => 4303, 'site' => 'woocommerce', ), 'newValue' => array( 'id' => 4228, 'externalId' => '2', 'site' => 'bitrix-test', ), 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25998, 'createdAt' => '2020-06-05 17:46:58', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'email', 'oldValue' => 'tester2890@example.com', 'newValue' => 'tester001@example.com', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 25999, 'createdAt' => '2020-06-05 17:46:58', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'first_name', 'oldValue' => 'Tester2890', 'newValue' => 'tester001', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 26000, 'createdAt' => '2020-06-05 17:46:58', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'last_name', 'oldValue' => 'Tester2890', 'newValue' => 'tester001', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 26001, 'createdAt' => '2020-06-05 17:46:58', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'patronymic', 'oldValue' => 'Tester2890', 'newValue' => null, 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), array( 'id' => 26002, 'createdAt' => '2020-06-05 17:46:58', 'source' => 'user', 'user' => array( 'id' => 27, ), 'field' => 'phone', 'oldValue' => '32418790888', 'newValue' => '2354708915097', 'order' => array( 'id' => 5868, 'externalId' => $orderExternalId, 'managerId' => 27, 'site' => 'woocommerce', 'status' => 'new', ), ), ), 'pagination' => array( 'limit' => 100, 'totalCount' => 8, 'currentPage' => 1, 'totalPageCount' => 1, ), ); } private function get_initial_regular_customer() { return array( 'type' => 'customer', 'id' => 4228, 'externalId' => '2', 'isContact' => false, 'createdAt' => '2020-06-01 15:31:46', 'managerId' => 27, 'vip' => false, 'bad' => false, 'site' => 'bitrix-test', 'contragent' => array( 'contragentType' => 'individual', ), 'tags' => array(), 'marginSumm' => 9428, 'totalSumm' => 9428, 'averageSumm' => 4714, 'ordersCount' => 2, 'costSumm' => 0, 'personalDiscount' => 0, 'address' => array( 'id' => 3132, 'text' => 'ул. Пушкина дом Колотушкина', ), 'firstName' => 'tester001', 'lastName' => 'tester001', 'email' => 'tester001@example.com', 'emailMarketingUnsubscribedAt' => '2020-06-01 15:34:23', 'phones' => array( array( 'number' => '2354708915097', ), ), ); } private function get_contact_when_only_contact_changed() { return array( 'type' => 'customer', 'id' => 4305, 'isContact' => true, 'createdAt' => '2020-06-05 17:11:53', 'managerId' => 27, 'vip' => false, 'bad' => false, 'site' => 'woocommerce', 'tags' => array(), 'marginSumm' => 0, 'totalSumm' => 0, 'averageSumm' => 0, 'ordersCount' => 0, 'costSumm' => 0, 'customFields' => array( 'galkatrue' => true, ), 'personalDiscount' => 0, 'segments' => array(), 'firstName' => 'Tester2890', 'lastName' => 'Tester2890', 'patronymic' => 'Tester2890', 'email' => 'tester2890@example.com', 'phones' => array( array( 'number' => '32418790888', ), ), ); } private function get_order_with_customer_and_contact( $customer, $contact = array(), $company = array(), $contragentType = 'individual' ) { $order = array( 'success' => true, 'order' => array( 'slug' => 5868, 'id' => 5868, 'number' => '5868C', 'externalId' => '85', 'customer' => $customer, 'contact' => empty($contact) ? $customer : $contact, 'orderType' => 'test', 'orderMethod' => 'phone', 'countryIso' => 'RU', 'createdAt' => '2020-06-04 15:05:10', 'statusUpdatedAt' => '2020-06-04 15:05:10', 'summ' => 16, 'totalSumm' => 16, 'prepaySum' => 0, 'purchaseSumm' => 0, 'markDatetime' => '2020-06-04 15:05:10', 'lastName' => 'tester002', 'firstName' => 'tester002', 'patronymic' => 'tester002', 'phone' => '34687453268933', 'email' => 'ewtrhibehb126879@example.com', 'call' => false, 'expired' => false, 'managerId' => 27, 'contragent' => array( 'contragentType' => $contragentType, ), 'delivery' => array( 'cost' => 0, 'netCost' => 0, 'address' => array( 'index' => '34000', 'countryIso' => 'RU', 'region' => 'Адыгея Республика', 'regionId' => 26, 'city' => 'с. Верхненазаровское', 'cityId' => 240863, 'street' => 'ул. Зеленая', 'streetId' => 962815, 'building' => '22', 'text' => 'ул. Зеленая, д. 22', ), ), 'site' => 'woocommerce', 'status' => 'new', 'items' => array( array( 'markingCodes' => array(), 'id' => 8955, 'externalIds' => array( array( 'code' => 'woocomerce', 'value' => '23_31', ), ), 'priceType' => array( 'code' => 'base', ), 'initialPrice' => 16, 'discountTotal' => 5, 'vatRate' => 'none', 'createdAt' => '2020-06-04 14:54:54', 'quantity' => 1, 'status' => 'new', 'offer' => array( 'displayName' => 'Cap', 'id' => 67424, 'externalId' => '23', 'name' => 'Cap', 'vatRate' => 'none', 'unit' => array( 'code' => 'pc', 'name' => 'Штука', 'sym' => 'шт.', ), ), 'properties' => array(), 'purchasePrice' => 0, ), ), 'payments' => array(), 'fromApi' => false, 'length' => 0, 'width' => 0, 'height' => 0, 'shipmentStore' => 'main', 'shipped' => false, 'customFields' => array( 'galka' => false, 'test_number' => 0, 'otpravit_dozakaz' => false, ), ), ); if (!empty($company)) { $order['order']['company'] = $company; } return $order; } private function get_new_individual_for_order() { return array( 'type' => 'customer', 'id' => 4231, 'isContact' => false, 'createdAt' => '2020-06-01 15:50:33', 'managerId' => 27, 'vip' => false, 'bad' => false, 'site' => 'bitrix-test', 'contragent' => array( 'contragentType' => 'individual', ), 'tags' => array(), 'marginSumm' => 2144, 'totalSumm' => 2144, 'averageSumm' => 1072, 'ordersCount' => 2, 'costSumm' => 0, 'customFields' => array( 'galkatrue' => true, ), 'personalDiscount' => 0, 'address' => array( 'id' => 3135, 'index' => '34000', 'countryIso' => 'RU', 'region' => 'Адыгея Республика', 'regionId' => 26, 'city' => 'с. Верхненазаровское', 'cityId' => 240863, 'street' => 'ул. Зеленая', 'streetId' => 962815, 'building' => '22', 'text' => 'ул. Зеленая, д. 22', ), 'firstName' => 'tester002', 'lastName' => 'tester002', 'patronymic' => 'tester002', 'email' => 'ewtrhibehb126879@example.com', 'phones' => array( array( 'number' => '34687453268933', ), ), ); } private function get_new_corporate_for_order() { return array( 'type' => 'customer_corporate', 'id' => 4220, 'nickName' => 'Компания1', 'mainAddress' => array( 'id' => 3131, 'name' => 'Компания2', ), 'createdAt' => '2020-05-27 15:20:33', 'managerId' => 27, 'vip' => false, 'bad' => false, 'site' => 'woocommerce', 'tags' => array(), 'marginSumm' => 604, 'totalSumm' => 604, 'averageSumm' => 604, 'ordersCount' => 1, 'costSumm' => 0, 'customFields' => array( 'galkatrue' => true, ), 'personalDiscount' => 0, 'mainCustomerContact' => array( 'id' => 711, 'customer' => array( 'id' => 4219, 'externalId' => '4', ), 'companies' => array(), ), 'mainCompany' => array( 'id' => 591, 'name' => 'Компания1', ), ); } private function get_new_contact_for_order() { return array( 'type' => 'customer', 'id' => 4219, 'externalId' => '4', 'isContact' => false, 'createdAt' => '2020-05-27 12:09:00', 'managerId' => 27, 'vip' => false, 'bad' => false, 'site' => 'woocommerce', 'contragent' => array( 'contragentType' => 'individual', ), 'tags' => array(), 'marginSumm' => 0, 'totalSumm' => 0, 'averageSumm' => 0, 'ordersCount' => 0, 'costSumm' => 0, 'customFields' => array( 'galkatrue' => true, ), 'personalDiscount' => 0, 'address' => array( 'id' => 3130, 'index' => '344091', 'countryIso' => 'RU', 'region' => 'Еврейская Автономная область', 'regionId' => 47, 'city' => 'Валдгейм', 'text' => 'упцупуцйпуц, йцавафыафыафыафы', ), 'firstName' => 'psycho913', 'lastName' => 'psycho913', 'email' => 'psycho913@example.com', 'phones' => array( array( 'number' => '9135487458709', ), ), ); } private function get_another_corporate_for_order() { return array( 'type' => 'customer_corporate', 'id' => 4303, 'nickName' => 'Another Test Legal Entity', 'mainAddress' => array( 'id' => 3177, 'name' => 'Test Address', ), 'createdAt' => '2020-06-05 16:34:05', 'managerId' => 27, 'vip' => false, 'bad' => false, 'site' => 'woocommerce', 'tags' => array(), 'marginSumm' => 0, 'totalSumm' => 0, 'averageSumm' => 0, 'ordersCount' => 0, 'customFields' => array( 'galkatrue' => true, ), 'personalDiscount' => 0, 'mainCustomerContact' => array( 'id' => 748, 'customer' => array( 'id' => 4304, ), 'companies' => array( array( 'id' => 110, 'company' => array( 'id' => 621, 'name' => 'TestCompany3428769', ), ), ), ), 'mainCompany' => array( 'id' => 621, 'name' => 'TestCompany3428769', ), ); } private function get_another_contact_for_order() { return array( 'type' => 'customer', 'id' => 4304, 'isContact' => true, 'createdAt' => '2020-06-05 16:34:27', 'vip' => false, 'bad' => false, 'site' => 'woocommerce', 'tags' => array(), 'marginSumm' => 0, 'totalSumm' => 0, 'averageSumm' => 0, 'ordersCount' => 0, 'personalDiscount' => 0, 'segments' => array(), 'firstName' => 'Tester4867', 'lastName' => 'Tester4867', 'patronymic' => 'Tester4867', 'sex' => 'male', 'email' => 'tester4867@example.com', 'phones' => array(), ); } }