autotelik / datashift_spree

Comprehensive import and export tools for Spree and Spree Products
Other
90 stars 104 forks source link

Taxons keep failing to import #31

Open chriscarpenter12 opened 10 years ago

chriscarpenter12 commented 10 years ago

From all the docs indicate it is just "categories>test"

id,sku,price,map,name,description,available_on,deleted_at,slug,meta_description,meta_keywords,tax_category_id,shipping_category_id,created_at,updated_at,product_option_types,option_types,properties,product_properties,classifications,taxons,variants,variants_including_master,prices,stock_items,line_items,orders,variant_images,promotion_rules
,test3,3.99,5.99,test3,test3,,,test3,test3,test3,1,1,,,,,"name:test_name|presentation:Name","test_name:This is a test",,"categories>test>sub-test",,,,,,,,

My log

Spree Loading initialised with:
{:verbose=>true}
Product load from File [spree_products.csv]
Product load using forced operators: [["images", "variant_price", "variant_sku", "price"]]
Starting load from file [spree_products.csv]
Perform Load Options:
{"input"=>"spree_products.csv", "verbose"=>true, "mandatory"=>["sku", "name", "price"], "force_inclusion"=>["images", "variant_price", "variant_sku", "price"]}
   (39.1ms)  BEGIN
Processing default value available_on : 2014-09-25 15:43:42
Processing default value cost_price : 0.0
Processing default value price : 0.0
Processing value: []
Populator assigning data via id
Assignging  => [id] (CAST 2 TYPE  0)
Processing value: [test3]
Populator assigning data via sku
Brute force assignment of value  test3 => [sku]
Processing value: [3.99]
Populator assigning data via price
Brute force assignment of value  3.99 => [price]
Processing value: [5.99]
Populator assigning data via map
Brute force assignment of value  5.99 => [map]
Processing value: [test3]
Populator assigning data via name
Assignging test3 => [name] (CAST 2 TYPE  "test3")
Processing value: [test3]
Populator assigning data via description
Assignging test3 => [description] (CAST 2 TYPE  "test3")
Processing value: [2014-09-25 15:43:42]
Populator assigning data via available_on
Assignging 2014-09-25 15:43:42 => [available_on] (CAST 2 TYPE  2014-09-25 15:43:42 UTC)
Processing value: []
Populator assigning data via deleted_at
Assignging  => [deleted_at] (CAST 2 TYPE  nil)
Processing value: [test3]
Populator assigning data via slug
Assignging test3 => [slug] (CAST 2 TYPE  "test3")
Processing value: [test3]
Populator assigning data via meta_description
Assignging test3 => [meta_description] (CAST 2 TYPE  "test3")
Processing value: [test3]
Populator assigning data via meta_keywords
Assignging test3 => [meta_keywords] (CAST 2 TYPE  "test3")
Processing value: [1]
Populator assigning data via tax_category_id
Assignging 1 => [tax_category_id] (CAST 2 TYPE  1)
Processing value: [1]
Populator assigning data via shipping_category_id
Assignging 1 => [shipping_category_id] (CAST 2 TYPE  1)
Processing value: []
Populator assigning data via created_at
Assignging  => [created_at] (CAST 2 TYPE  nil)
Processing value: []
Populator assigning data via updated_at
Assignging  => [updated_at] (CAST 2 TYPE  nil)
Processing value: []
Trying to find operator class with Parent Namespace Spree
  Spree::Product Exists (37.6ms)  SELECT  1 AS one FROM `spree_products`  WHERE `spree_products`.`slug` = BINARY 'test3' LIMIT 1
  Spree::Product Exists (33.8ms)  SELECT  1 AS one FROM `spree_products`  WHERE `spree_products`.`slug` = BINARY 'test3' LIMIT 1
  SQL (38.0ms)  INSERT INTO `spree_products` (`available_on`, `created_at`, `description`, `id`, `meta_description`, `meta_keywords`, `name`, `shipping_category_id`, `slug`, `tax_category_id`, `updated_at`) VALUES ('2014-09-25 15:43:42', '2014-09-25 19:43:43', 'test3', 0, 'test3', 'test3', 'test3', 1, 'test3', 1, '2014-09-25 19:43:43')
  Spree::Variant Exists (39.9ms)  SELECT  1 AS one FROM `spree_variants`  WHERE `spree_variants`.`sku` = BINARY 'test3' AND `spree_variants`.`deleted_at` IS NULL LIMIT 1
  SQL (37.2ms)  INSERT INTO `spree_variants` (`cost_currency`, `cost_price`, `map`, `product_id`, `sku`, `updated_at`) VALUES ('USD', 0.0, 5.99, 0, 'test3', '2014-09-25 19:43:43')
  Spree::Variant Load (40.1ms)  SELECT  `spree_variants`.* FROM `spree_variants`  WHERE `spree_variants`.`id` = 40 LIMIT 1
  SQL (35.1ms)  INSERT INTO `spree_prices` (`amount`, `currency`, `variant_id`) VALUES (3.99, 'USD', 40)
  SQL (37.4ms)  UPDATE `spree_variants` SET `spree_variants`.`updated_at` = '2014-09-25 19:43:43' WHERE `spree_variants`.`id` = 40
  Spree::Product Load (44.4ms)  SELECT  `spree_products`.* FROM `spree_products`  WHERE `spree_products`.`id` = 0 LIMIT 1
  Spree::StockLocation Load (39.6ms)  SELECT `spree_stock_locations`.* FROM `spree_stock_locations`
  Spree::StockLocation Load (51.9ms)  SELECT  `spree_stock_locations`.* FROM `spree_stock_locations`  WHERE `spree_stock_locations`.`id` = 1 LIMIT 1
  Spree::StockItem Exists (36.0ms)  SELECT  1 AS one FROM `spree_stock_items`  WHERE (`spree_stock_items`.`variant_id` = BINARY 40 AND `spree_stock_items`.`stock_location_id` = 1 AND `spree_stock_items`.`deleted_at` IS NULL) LIMIT 1
  SQL (35.8ms)  INSERT INTO `spree_stock_items` (`backorderable`, `created_at`, `stock_location_id`, `updated_at`, `variant_id`) VALUES (1, '2014-09-25 19:43:44', 1, '2014-09-25 19:43:44', 40)
  SQL (43.5ms)  UPDATE `spree_variants` SET `spree_variants`.`updated_at` = '2014-09-25 19:43:44' WHERE `spree_variants`.`id` = 40
  SQL (36.2ms)  UPDATE `spree_products` SET `spree_products`.`updated_at` = '2014-09-25 19:43:44' WHERE `spree_products`.`id` = 0
   (41.1ms)  SELECT MAX(`spree_variants`.`position`) AS max_id FROM `spree_variants`  WHERE `spree_variants`.`deleted_at` IS NULL AND `spree_variants`.`product_id` = 0 AND `spree_variants`.`is_master` = 0
  SQL (40.5ms)  UPDATE `spree_variants` SET `spree_variants`.`position` = 1 WHERE `spree_variants`.`id` = 40
   (43.5ms)  SELECT SUM(`spree_stock_items`.`count_on_hand`) AS sum_id FROM `spree_stock_items` INNER JOIN `spree_stock_locations` ON `spree_stock_locations`.`id` = `spree_stock_items`.`stock_location_id` WHERE `spree_stock_items`.`deleted_at` IS NULL AND `spree_stock_items`.`variant_id` = 40 AND `spree_stock_locations`.`active` = 1
  SQL (37.5ms)  UPDATE `spree_products` SET `spree_products`.`updated_at` = '2014-09-25 19:43:44' WHERE `spree_products`.`id` = 0
  Spree::Variant Exists (41.6ms)  SELECT  1 AS one FROM `spree_variants`  WHERE (`spree_variants`.`sku` = BINARY 'test3' AND `spree_variants`.`id` != 40) AND `spree_variants`.`deleted_at` IS NULL LIMIT 1
  SQL (41.2ms)  UPDATE `spree_variants` SET `is_master` = 1, `updated_at` = '2014-09-25 19:43:44' WHERE `spree_variants`.`id` = 40
  SQL (54.8ms)  UPDATE `spree_products` SET `spree_products`.`updated_at` = '2014-09-25 19:43:44' WHERE `spree_products`.`id` = 0
  Spree::Taxon Load (78.0ms)  SELECT `spree_taxons`.* FROM `spree_taxons` INNER JOIN `spree_products_taxons` ON `spree_taxons`.`id` = `spree_products_taxons`.`taxon_id` WHERE `spree_products_taxons`.`product_id` = 0
  SQL (39.6ms)  UPDATE `spree_taxons` SET `spree_taxons`.`updated_at` = '2014-09-25 19:43:45' WHERE 1=0
  SQL (43.2ms)  UPDATE `spree_taxonomies` SET `spree_taxonomies`.`updated_at` = '2014-09-25 19:43:45' WHERE 1=0 ORDER BY spree_taxonomies.position
Processing value: []
add_options_variants []
Processing value: [name:test_name|presentation:Name]
Trying to find operator class with Parent Namespace Spree
Parsed inbound data into name << test_name
Scan for multiple has_many associations ["test_name"]
  Spree::Property Load (41.2ms)  SELECT `spree_properties`.* FROM `spree_properties`  WHERE `spree_properties`.`name` IN ('test_name')
Scan result #<ActiveRecord::Relation []>
Association properties with key(s) ["test_name"] NOT found - Not added.
Parsed inbound data into presentation << Name
Scan for multiple has_many associations ["Name"]
  Spree::Property Load (37.9ms)  SELECT `spree_properties`.* FROM `spree_properties`  WHERE `spree_properties`.`presentation` IN ('Name')
Scan result #<ActiveRecord::Relation []>
Association properties with key(s) ["Name"] NOT found - Not added.
Processing value: [test_name:This is a test]
Parsed inbound data into test_name << This is a test
  Spree::Property Load (43.7ms)  SELECT  `spree_properties`.* FROM `spree_properties`  WHERE `spree_properties`.`name` = 'test_name' LIMIT 1
  SQL (38.4ms)  INSERT INTO `spree_properties` (`created_at`, `name`, `presentation`, `updated_at`) VALUES ('2014-09-25 19:43:45', 'test_name', 'Test name', '2014-09-25 19:43:45')
Created New Property #<Spree::Property id: 20, name: "test_name", presentation: "Test name", created_at: "2014-09-25 19:43:45", updated_at: "2014-09-25 19:43:45">
  SQL (36.5ms)  INSERT INTO `spree_product_properties` (`created_at`, `property_id`, `updated_at`, `value`) VALUES ('2014-09-25 19:43:45', 20, '2014-09-25 19:43:45', 'This is a test')
  SQL (39.2ms)  UPDATE `spree_product_properties` SET `product_id` = 0, `updated_at` = '2014-09-25 19:43:45' WHERE `spree_product_properties`.`id` = 75
  SQL (33.1ms)  UPDATE `spree_products` SET `spree_products`.`updated_at` = '2014-09-25 19:43:45' WHERE `spree_products`.`id` = 0
Created New ProductProperty #<Spree::ProductProperty id: 75, value: "This is a test", product_id: 0, property_id: 20, created_at: "2014-09-25 19:43:45", updated_at: "2014-09-25 19:43:45", position: 0>
Processing value: []
Trying to find operator class with Parent Namespace Spree
Processing value: [categories>test>sub-test]
Failed to process row [0] ([nil, "test3", "3.99", "5.99", "test3", "test3", nil, nil, "test3", "test3", "test3", "1", "1", nil, nil, nil, nil, "name:test_name|presentation:Name", "test_name:This is a test", nil, "categories>test>sub-test", nil, nil, nil, nil, nil, nil, nil, nil])
   (47.2ms)  COMMIT

The Product, Variant and Properties are working, but I cannot get Taxons working.

autotelik commented 10 years ago

superficially can't see anything wrong with the Taxon data

from log wonder if the issue is occurring before and throwing a spanner in the works somehow

have you tried a more simple line with just basic product plus taxons

I won't have time to look at this till the weekend

cheers tom

albums : http://aqwan.bandcamp.com all music:http://soundcloud.com/aqwan


From: Chris Carpenter notifications@github.com To: autotelik/datashift_spree datashift_spree@noreply.github.com Sent: Thursday, 25 September 2014, 20:46 Subject: [datashift_spree] Taxons keep failing to import (#31)

From all the docs indicate it is just "categories>test" id,sku,price,map,name,description,available_on,deleted_at,slug,meta_description,meta_keywords,tax_category_id,shipping_category_id,created_at,updated_at,product_option_types,option_types,properties,product_properties,classifications,taxons,variants,variants_including_master,prices,stock_items,line_items,orders,variant_images,promotion_rules ,test3,3.99,5.99,test3,test3,,,test3,test3,test3,1,1,,,,,"name:test_name|presentation:Name","test_name:This is a test",,"categories>test>sub-test",,,,,,,, My log Spree Loading initialised with: {:verbose=>true} Product load from File [spree_products.csv] Product load using forced operators: [["images", "variant_price", "variant_sku", "price"]] Starting load from file [spree_products.csv] Perform Load Options: {"input"=>"spree_products.csv", "verbose"=>true, "mandatory"=>["sku", "name", "price"], "force_inclusion"=>["images", "variant_price", "variant_sku", "price"]} [1m[36m (39.1ms)[0m [1mBEGIN[0m Processing default value available_on : 2014-09-25 15:43:42 Processing default value cost_price : 0.0 Processing default value price : 0.0 Processing value: [] Populator assigning data via id Assignging => [id](CAST 2 TYPE 0) Processing value: [test3] Populator assigning data via sku Brute force assignment of value test3 => [sku] Processing value: [3.99] Populator assigning data via price Brute force assignment of value 3.99 => [price] Processing value: [5.99] Populator assigning data via map Brute force assignment of value 5.99 => [map] Processing value: [test3] Populator assigning data via name Assignging test3 => [name](CAST 2 TYPE) Processing value: [test3] Populator assigning data via description Assignging test3 => [description](CAST 2 TYPE) Processing value: [2014-09-25 15:43:42] Populator assigning data via available_on Assignging 2014-09-25 15:43:42 => [available_on](CAST 2 TYPE 2014-09-25 15:43:42 UTC) Processing value: [] Populator assigning data via deleted_at Assignging => [deleted_at](CAST 2 TYPE nil) Processing value: [test3] Populator assigning data via slug Assignging test3 => [slug](CAST 2 TYPE) Processing value: [test3] Populator assigning data via meta_description Assignging test3 => [meta_description](CAST 2 TYPE) Processing value: [test3] Populator assigning data via meta_keywords Assignging test3 => [meta_keywords](CAST 2 TYPE) Processing value: [1] Populator assigning data via tax_category_id Assignging 1 => [tax_category_id](CAST 2 TYPE 1) Processing value: [1] Populator assigning data via shipping_category_id Assignging 1 => [shipping_category_id](CAST 2 TYPE 1) Processing value: [] Populator assigning data via created_at Assignging => [created_at](CAST 2 TYPE nil) Processing value: [] Populator assigning data via updated_at Assignging => [updated_at](CAST 2 TYPE nil) Processing value: [] Trying to find operator class with Parent Namespace Spree [1m[35mSpree::Product Exists (37.6ms)[0m SELECT 1 AS one FROM spree_products WHERE spree_products.slug = BINARY 'test3' LIMIT 1 [1m[36mSpree::Product Exists (33.8ms)[0m [1mSELECT 1 AS one FROM spree_products WHERE spree_products.slug = BINARY 'test3' LIMIT 1[0m [1m[35mSQL (38.0ms)[0m INSERT INTO spree_products (available_on, created_at, description, id, meta_description, meta_keywords, name, shipping_category_id, slug, tax_category_id, updated_at) VALUES ('2014-09-25 15:43:42', '2014-09-25 19:43:43', 'test3', 0, 'test3', 'test3', 'test3', 1, 'test3', 1, '2014-09-25 19:43:43') [1m[36mSpree::Variant Exists (39.9ms)[0m [1mSELECT 1 AS one FROM spree_variants WHERE spree_variants.sku = BINARY 'test3' AND spree_variants.deleted_at IS NULL LIMIT 1[0m [1m[35mSQL (37.2ms)[0m INSERT INTO spree_variants (cost_currency, cost_price, map, product_id, sku, updated_at) VALUES ('USD', 0.0, 5.99, 0, 'test3', '2014-09-25 19:43:43') [1m[36mSpree::Variant Load (40.1ms)[0m [1mSELECT spree_variants.* FROM spree_variants WHERE spree_variants.id = 40 LIMIT 1[0m [1m[35mSQL (35.1ms)[0m INSERT INTO spree_prices (amount, currency, variant_id) VALUES (3.99, 'USD', 40) [1m[36mSQL (37.4ms)[0m [1mUPDATE spree_variants SET spree_variants.updated_at = '2014-09-25 19:43:43' WHERE spree_variants.id = 40[0m [1m[35mSpree::Product Load (44.4ms)[0m SELECT spree_products.* FROM spree_products WHERE spree_products.id = 0 LIMIT 1 [1m[36mSpree::StockLocation Load (39.6ms)[0m [1mSELECT spree_stock_locations.* FROM spree_stock_locations[0m [1m[35mSpree::StockLocation Load (51.9ms)[0m SELECT spree_stock_locations.* FROM spree_stock_locations WHERE spree_stock_locations.id = 1 LIMIT 1 [1m[36mSpree::StockItem Exists (36.0ms)[0m [1mSELECT 1 AS one FROM spree_stock_items WHERE (spree_stock_items.variant_id = BINARY 40 AND spree_stock_items.stock_location_id = 1 AND spree_stock_items.deleted_at IS NULL) LIMIT 1[0m [1m[35mSQL (35.8ms)[0m INSERT INTO spree_stock_items (backorderable, created_at, stock_location_id, updated_at, variant_id) VALUES (1, '2014-09-25 19:43:44', 1, '2014-09-25 19:43:44', 40) [1m[36mSQL (43.5ms)[0m [1mUPDATE spree_variants SET spree_variants.updated_at = '2014-09-25 19:43:44' WHERE spree_variants.id = 40[0m [1m[35mSQL (36.2ms)[0m UPDATE spree_products SET spree_products.updated_at = '2014-09-25 19:43:44' WHERE spree_products.id = 0 [1m[36m (41.1ms)[0m [1mSELECT MAX(spree_variants.position) AS max_id FROM spree_variants WHERE spree_variants.deleted_at IS NULL AND spree_variants.product_id = 0 AND spree_variants.is_master = 0[0m [1m[35mSQL (40.5ms)[0m UPDATE spree_variants SET spree_variants.position = 1 WHERE spree_variants.id = 40 [1m[36m (43.5ms)[0m [1mSELECT SUM(spree_stock_items.count_on_hand) AS sum_id FROM spree_stock_items INNER JOIN spree_stock_locations ON spree_stock_locations.id = spree_stock_items.stock_location_id WHERE spree_stock_items.deleted_at IS NULL AND spree_stock_items.variant_id = 40 AND spree_stock_locations.active = 1[0m [1m[35mSQL (37.5ms)[0m UPDATE spree_products SET spree_products.updated_at = '2014-09-25 19:43:44' WHERE spree_products.id = 0 [1m[36mSpree::Variant Exists (41.6ms)[0m [1mSELECT 1 AS one FROM spree_variants WHERE (spree_variants.sku = BINARY 'test3' AND spree_variants.id != 40) AND spree_variants.deleted_at IS NULL LIMIT 1[0m [1m[35mSQL (41.2ms)[0m UPDATE spree_variants SET is_master = 1, updated_at = '2014-09-25 19:43:44' WHERE spree_variants.id = 40 [1m[36mSQL (54.8ms)[0m [1mUPDATE spree_products SET spree_products.updated_at = '2014-09-25 19:43:44' WHERE spree_products.id = 0[0m [1m[35mSpree::Taxon Load (78.0ms)[0m SELECT spree_taxons.* FROM spree_taxons INNER JOIN spree_products_taxons ON spree_taxons.id = spree_products_taxons.taxon_id WHERE spree_products_taxons.product_id = 0 [1m[36mSQL (39.6ms)[0m [1mUPDATE spree_taxons SET spree_taxons.updated_at = '2014-09-25 19:43:45' WHERE 1=0[0m [1m[35mSQL (43.2ms)[0m UPDATE spree_taxonomies SET spree_taxonomies.updated_at = '2014-09-25 19:43:45' WHERE 1=0 ORDER BY spree_taxonomies.position Processing value: [] add_options_variants [] Processing value: [name:test_name|presentation:Name] Trying to find operator class with Parent Namespace Spree Parsed inbound data into name << test_name Scan for multiple has_many associations ["test_name"] [1m[36mSpree::Property Load (41.2ms)[0m [1mSELECT spree_properties.* FROM spree_properties WHERE spree_properties.name IN ('test_name')[0m Scan result #<ActiveRecord::Relation []> Association properties with key(s) ["test_name"] NOT found - Not added. Parsed inbound data into presentation << Name Scan for multiple has_many associations ["Name"] [1m[35mSpree::Property Load (37.9ms)[0m SELECT spree_properties.* FROM spree_properties WHERE spree_properties.presentation IN ('Name') Scan result #<ActiveRecord::Relation []> Association properties with key(s) ["Name"] NOT found - Not added. Processing value: [test_name:This is a test] Parsed inbound data into test_name << This is a test [1m[36mSpree::Property Load (43.7ms)[0m [1mSELECT spree_properties.* FROM spree_properties WHERE spree_properties.name = 'test_name' LIMIT 1[0m [1m[35mSQL (38.4ms)[0m INSERT INTO spree_properties (created_at, name, presentation, updated_at) VALUES ('2014-09-25 19:43:45', 'test_name', 'Test name', '2014-09-25 19:43:45') Created New Property #<Spree::Property id: 20, name: "test_name", presentation: "Test name", created_at: "2014-09-25 19:43:45", updated_at: "2014-09-25 19:43:45"> [1m[36mSQL (36.5ms)[0m [1mINSERT INTO spree_product_properties (created_at, property_id, updated_at, value) VALUES ('2014-09-25 19:43:45', 20, '2014-09-25 19:43:45', 'This is a test')[0m [1m[35mSQL (39.2ms)[0m UPDATE spree_product_properties SET product_id = 0, updated_at = '2014-09-25 19:43:45' WHERE spree_product_properties.id = 75 [1m[36mSQL (33.1ms)[0m [1mUPDATE spree_products SET spree_products.updated_at = '2014-09-25 19:43:45' WHERE spree_products.id = 0[0m Created New ProductProperty #<Spree::ProductProperty id: 75, value: "This is a test", product_id: 0, property_id: 20, created_at: "2014-09-25 19:43:45", updated_at: "2014-09-25 19:43:45", position: 0> Processing value: [] Trying to find operator class with Parent Namespace Spree Processing value: [categories>test>sub-test] Failed to process row [0]([nil, "test3", "3.99", "5.99", "test3", "test3", nil, nil, "test3", "test3", "test3", "1", "1", nil, nil, nil, nil, "name:test_name|presentation:Name", "test_name:This is a test", nil, "categories>test>sub-test", nil, nil, nil, nil, nil, nil, nil, nil]) [1m[35m (47.2ms)[0m COMMIT The Product, Variant and Properties are working, but I cannot get Taxons working. — Reply to this email directly or view it on GitHub.

chriscarpenter12 commented 10 years ago

Did some digging in the product_loader.rb last night and found a few things. Line 388: I think find_or_createby* was deprecated. Maybe should be:

parent_taxonomy = @@taxonomy_klass.find_or_create_by(name: parent_name)

Line 398: I think find_or_createby* was deprecated. Maybe should be:

taxon = @@taxon_klass.find_or_create_by(name: name, parent_id: parent.id, taxonomy_id: parent_taxonomy.id)

The taxon assigned to the product doesn't seem to be correct either. It is generating a product_id of 0 on every line in spree_products_taxons.

Also from what I understand of spree if a product is in Category > Clothing > Shirts then it belongs to Shirts not Shirts, Clothing and Category. It should only be assigned to the last taxon. If you want multiple taxons then define Category > Clothing > Shirts | Category > Clothing

Where does @@taxon_klass come from? I can't seem to find it defined anywhere? Is it the Spree Class related to the function being run?

macah1 commented 9 years ago

I'm having the same problem here. Trying with products with a simple hierarchy of taxons, same issue, products are imported ok (properties too, etc), but taxons are not created, here is what I've got in logs:

Processing value: [Rubros>Guitarras|Marcas>Fender]
  Spree::Taxonomy Load (0.8ms)  SELECT "spree_taxonomies".* FROM "spree_taxonomies" INNER JOIN "spree_taxonomy_translations" ON "spree_taxonomy_translations"."spree_taxonomy_id" = "spree_taxonomies"."id" WHERE "spree_taxonomy_translations"."name" = 'Rubros' AND "spree_taxonomy_translations"."locale" = 'es' AND (spree_taxonomy_translations.name IS NOT NULL) ORDER BY spree_taxonomies.position LIMIT 1
  Spree::Taxonomy::Translation Load (0.5ms)  SELECT "spree_taxonomy_translations".* FROM "spree_taxonomy_translations" WHERE "spree_taxonomy_translations"."spree_taxonomy_id" IN (1)
  Spree::Taxon Load (0.9ms)  SELECT "spree_taxons".* FROM "spree_taxons" WHERE "spree_taxons"."taxonomy_id" = $1 AND "spree_taxons"."parent_id" IS NULL ORDER BY "spree_taxons"."id" ASC LIMIT 1  [["taxonomy_id", 1]]
#<NoMethodError: undefined method `id' for nil:NilClass>
Cannot assign Taxon [''] to Product ['SST-01 - Stratocaster']
  Spree::Taxon Load (1.0ms)  SELECT "spree_taxons".* FROM "spree_taxons" INNER JOIN "spree_products_taxons" ON "spree_taxons"."id" = "spree_products_taxons"."taxon_id" WHERE "spree_products_taxons"."product_id" = $1  [["product_id", 14683]]
Product assigned to Taxons : []
  Spree::Taxonomy Load (0.6ms)  SELECT "spree_taxonomies".* FROM "spree_taxonomies" INNER JOIN "spree_taxonomy_translations" ON "spree_taxonomy_translations"."spree_taxonomy_id" = "spree_taxonomies"."id" WHERE "spree_taxonomy_translations"."name" = 'Marcas' AND "spree_taxonomy_translations"."locale" = 'es' AND (spree_taxonomy_translations.name IS NOT NULL) ORDER BY spree_taxonomies.position LIMIT 1
  Spree::Taxonomy::Translation Load (0.8ms)  SELECT "spree_taxonomy_translations".* FROM "spree_taxonomy_translations" WHERE "spree_taxonomy_translations"."spree_taxonomy_id" IN (2)
  Spree::Taxon Load (0.6ms)  SELECT "spree_taxons".* FROM "spree_taxons" WHERE "spree_taxons"."taxonomy_id" = $1 AND "spree_taxons"."parent_id" IS NULL ORDER BY "spree_taxons"."id" ASC LIMIT 1  [["taxonomy_id", 2]]
#<NoMethodError: undefined method `id' for nil:NilClass>
Cannot assign Taxon [''] to Product ['SST-01 - Stratocaster']
Product assigned to Taxons : []

I've tried with only "Rubros>Guitarras" hierarchy and same issue.

UPDATE: Now it's working ok, I had an issue with the database, the root taxon wasn't created.