diff --git a/modules/ubercart/migrations/uc6_product_variation.yml b/modules/ubercart/migrations/uc6_product_variation.yml index 3d32a4d..9c0a6b2 100644 --- a/modules/ubercart/migrations/uc6_product_variation.yml +++ b/modules/ubercart/migrations/uc6_product_variation.yml @@ -15,7 +15,7 @@ process: # 'default' is the default 'commerce_product_variation' bundle initially # installed default_value: default - uid: uid + uid: node_uid sku: model title: title 'price/number': sell_price diff --git a/modules/ubercart/src/Plugin/migrate/source/uc6/ProductVariation.php b/modules/ubercart/src/Plugin/migrate/source/uc6/ProductVariation.php index 6370d87..6c91155 100644 --- a/modules/ubercart/src/Plugin/migrate/source/uc6/ProductVariation.php +++ b/modules/ubercart/src/Plugin/migrate/source/uc6/ProductVariation.php @@ -3,7 +3,7 @@ namespace Drupal\commerce_migrate_ubercart\Plugin\migrate\source\uc6; use Drupal\migrate\Row; -use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase; +use Drupal\node\Plugin\migrate\source\d6\Node; /** * Ubercart 6 product variation source. @@ -13,28 +13,15 @@ use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase; * source_module = "uc_product" * ) */ -class ProductVariation extends DrupalSqlBase { +class ProductVariation extends Node { /** * {@inheritdoc} */ public function query() { - $query = $this->select('node', 'n')->fields('n', [ - 'nid', - 'vid', - 'type', - 'title', - 'uid', - 'created', - 'changed', - 'status', - ]); + $query = parent::query(); $query->innerJoin('uc_products', 'ucp', 'n.nid = ucp.nid AND n.vid = ucp.vid'); $query->fields('ucp', ['model', 'sell_price']); - $query->distinct(); - if (isset($this->configuration['node_type'])) { - $query->condition('n.type', $this->configuration['node_type']); - } return $query; } @@ -42,18 +29,14 @@ class ProductVariation extends DrupalSqlBase { * {@inheritdoc} */ public function fields() { - return ([ - 'nid' => $this->t('Node ID'), - 'vid' => $this->t('Node revision ID'), - 'title' => $this->t('Product title'), - 'type' => $this->t('Product type'), + $fields = [ + 'vid' => t('The primary identifier for this version.'), + 'log' => $this->t('Revision Log message'), 'uid' => $this->t('Node UID.'), - 'status' => $this->t('Node status'), - 'created' => $this->t('Node created time'), - 'changed' => $this->t('Node changed time'), 'model' => $this->t('SKU code'), 'sell_price' => $this->t('Product price'), - ]); + ]; + return parent::fields() + $fields; } /** diff --git a/modules/ubercart/tests/src/Functional/uc6/MigrateUpgradeUbercart6Test.php b/modules/ubercart/tests/src/Functional/uc6/MigrateUpgradeUbercart6Test.php index aecc682..f6914ac 100644 --- a/modules/ubercart/tests/src/Functional/uc6/MigrateUpgradeUbercart6Test.php +++ b/modules/ubercart/tests/src/Functional/uc6/MigrateUpgradeUbercart6Test.php @@ -194,7 +194,7 @@ class MigrateUpgradeUbercart6Test extends MigrateUpgradeTestBase { 'commerce_product_attribute' => '4', 'commerce_product_attribute_value' => '7', 'commerce_product_variation_type' => '1', - 'commerce_product_variation' => '7', + 'commerce_product_variation' => '5', 'commerce_product_type' => '4', 'commerce_promotion_coupon' => '0', 'commerce_promotion' => '0', diff --git a/modules/ubercart/tests/src/Kernel/Migrate/uc6/ProductRollbackTest.php b/modules/ubercart/tests/src/Kernel/Migrate/uc6/ProductRollbackTest.php index 847d069..0ddc0f3 100644 --- a/modules/ubercart/tests/src/Kernel/Migrate/uc6/ProductRollbackTest.php +++ b/modules/ubercart/tests/src/Kernel/Migrate/uc6/ProductRollbackTest.php @@ -33,7 +33,7 @@ class ProductRollbackTest extends ProductTest { $this->assertTrue($product, "Product $product_id does not exist."); } - $product_variation_ids = [1, 2, 3, 4, 5, 6, 7]; + $product_variation_ids = [1, 2, 3, 4, 5]; foreach ($product_variation_ids as $product_variation_id) { $product_variation = ProductVariation::load($product_variation_id); $this->assertTrue($product_variation, "Product variation $product_variation_id does not exist."); diff --git a/modules/ubercart/tests/src/Kernel/Migrate/uc6/ProductVariationTest.php b/modules/ubercart/tests/src/Kernel/Migrate/uc6/ProductVariationTest.php index a57a2bf..ee0b7f5 100644 --- a/modules/ubercart/tests/src/Kernel/Migrate/uc6/ProductVariationTest.php +++ b/modules/ubercart/tests/src/Kernel/Migrate/uc6/ProductVariationTest.php @@ -3,6 +3,7 @@ namespace Drupal\Tests\commerce_migrate_ubercart\Kernel\Migrate\uc6; use Drupal\Tests\commerce_migrate\Kernel\CommerceMigrateTestTrait; +use Drupal\commerce_product\Entity\ProductVariation; /** * Tests Product variation migration. @@ -69,6 +70,10 @@ class ProductVariationTest extends Ubercart6TestBase { $this->assertProductVariationEntity(3, '1', 'Fairy-Cake-001', '1500.000000', 'NZD', '3', 'Fairy cake', 'default', '1492989703', NULL); $this->assertProductVariationEntity(4, '1', 'ship-001', '6000000000.000000', 'NZD', '4', 'Golgafrincham B-Ark', 'default', '1500868190', NULL); $this->assertProductVariationEntity(5, '1', 'ship-002', '123000000.000000', 'NZD', '5', 'Heart of Gold', 'default', '1500868361', NULL); + $variation = ProductVariation::load(6); + $this->assertNull($variation); + $variation = ProductVariation::load(7); + $this->assertNull($variation); } } diff --git a/modules/ubercart/tests/src/Kernel/Plugin/migrate/source/uc6/ProductVariationTest.php b/modules/ubercart/tests/src/Kernel/Plugin/migrate/source/uc6/ProductVariationTest.php index 2bee899..69d08e1 100644 --- a/modules/ubercart/tests/src/Kernel/Plugin/migrate/source/uc6/ProductVariationTest.php +++ b/modules/ubercart/tests/src/Kernel/Plugin/migrate/source/uc6/ProductVariationTest.php @@ -16,7 +16,7 @@ class ProductVariationTest extends MigrateSqlSourceTestBase { /** * {@inheritdoc} */ - public static $modules = ['migrate_drupal', 'commerce_migrate_ubercart']; + public static $modules = ['node', 'migrate_drupal', 'commerce_migrate_ubercart']; /** * {@inheritdoc} @@ -76,6 +76,42 @@ class ProductVariationTest extends MigrateSqlSourceTestBase { 'tnid' => 0, ], ]; + $tests[0]['source_data']['node_revisions'] = [ + [ + 'nid' => 1, + 'vid' => 1, + 'uid' => 1, + 'title' => 'node title 1', + 'body' => 'body for node 1', + 'teaser' => 'teaser for node 1', + 'log' => '', + 'format' => 1, + 'timestamp' => 1279051598, + ], + [ + 'nid' => 2, + 'vid' => 2, + 'uid' => 1, + 'title' => 'ship 1', + 'body' => 'body for node 2', + 'teaser' => 'teaser for node 2', + 'log' => '', + 'format' => 1, + 'timestamp' => 1279308993, + ], + [ + 'nid' => 3, + 'vid' => 3, + 'uid' => 1, + 'title' => 'product 1', + 'body' => 'body for node 3', + 'teaser' => 'teaser for node 3', + 'log' => '', + 'format' => 1, + 'timestamp' => 1279308993, + ], + ]; + $tests[0]['source_data']['uc_products'] = [ [ 'vid' => '2', @@ -123,26 +159,52 @@ class ProductVariationTest extends MigrateSqlSourceTestBase { [ 'nid' => 2, 'vid' => 2, - 'type' => 'ship', + 'language' => 'en', + 'status' => '1', + 'created' => '1279290900', + 'changed' => '1279308000', + 'comment' => '0', + 'promote' => '1', + 'moderate' => '0', + 'sticky' => '0', + 'tnid' => '2', + 'translate' => '0', 'title' => 'ship 1', - 'uid' => 1, - 'status' => 1, - 'created' => 1279290900, - 'changed' => 1279308000, + 'body' => 'body for node 2', + 'teaser' => 'teaser for node 2', + 'log' => '', + 'timestamp' => '1279308993', + 'format' => '1', + 'node_uid' => '1', + 'revision_uid' => '1', 'model' => 'Heart of Gold', 'sell_price' => '900.0000', + 'type' => 'ship', ], [ 'nid' => 3, 'vid' => 3, - 'type' => 'product', + 'language' => 'en', + 'status' => '1', + 'created' => '1279290908', + 'changed' => '1279308993', + 'comment' => '0', + 'promote' => '1', + 'moderate' => '0', + 'sticky' => '0', + 'tnid' => '3', + 'translate' => '0', 'title' => 'product 1', - 'uid' => 1, - 'status' => 1, - 'created' => 1279290908, - 'changed' => 1279308993, + 'body' => 'body for node 3', + 'teaser' => 'teaser for node 3', + 'log' => '', + 'timestamp' => '1279308993', + 'format' => '1', + 'node_uid' => '1', + 'revision_uid' => '1', 'model' => 'book', 'sell_price' => '20.0000', + 'type' => 'product', ], ]; $tests[0]['expected_count'] = 2; @@ -153,14 +215,28 @@ class ProductVariationTest extends MigrateSqlSourceTestBase { [ 'nid' => 2, 'vid' => 2, - 'type' => 'ship', + 'language' => 'en', + 'status' => '1', + 'created' => '1279290900', + 'changed' => '1279308000', + 'comment' => '0', + 'promote' => '1', + 'moderate' => '0', + 'sticky' => '0', + 'tnid' => '2', + 'translate' => '0', 'title' => 'ship 1', - 'uid' => 1, - 'status' => 1, - 'created' => 1279290900, - 'changed' => 1279308000, + 'body' => 'body for node 2', + 'teaser' => 'teaser for node 2', + 'log' => '', + 'timestamp' => '1279308993', + 'format' => '1', + 'node_uid' => '1', + 'revision_uid' => '1', 'model' => 'Heart of Gold', 'sell_price' => '900.0000', + 'type' => 'ship', + ], ]; $tests[1]['expected_count'] = 1;