Шпрее: ассоциированный продукт для хранения - PullRequest
0 голосов
/ 14 марта 2020

У меня есть веселье с некоторыми расширениями и некоторые сайты настроены. Когда я пытаюсь создать продукт программно или в форме администратора, он существует в форме администратора. Но он не существует на сайте в соответствующей категории (таксон). Продукт также не существует на маршруте /products/1930 ответ:

Страница, которую вы искали, не существует.

Я обнаружил, что проблема связана с к товару не привязан к магазину. Я полагаю, что какое-то расширение или код мешают создать запись в spree_products_store.

Когда я создаю запись следующим образом:

insert into spree_products_stores (prodict_id, store_id) values (1930,1);

После этого она появляется по URL /products/1930 или слагом /products/test , (Но все еще не появляется в категории)

РЕДАКТИРОВАТЬ: Я обнаружил проблему, почему она не была видна в списке категорий: я заменил product.master.default_price на новый Spree::Price с неправильными параметрами (неправильная валюта). Но вопрос тот же:

Что плохого в сохранении с объединением товара и магазина? Что я могу найти и проверить, чтобы отладить и выяснить проблему? Может быть, мне нужно сделать это вручную и как (в Интернете или документах такого не найдено)? Как это сделать правильно, (этот путь неправильный: product.store = current_store)?

РЕДАКТИРОВАТЬ: Я нашел драгоценный камень, который препятствует появлению продукта в списке, то есть spree-multi-domain, и он работает правильно, как и ожидалось. Но запись о товаре в магазине не появляется из-за какой-то другой проблемы.

РЕДАКТИРОВАТЬ: Я обнаружил, что поле stores пусто, и его нужно вручную добавить в хранилище (удалите его, прежде чем предотвратить дублирование):

  product.stores.delete(current_store)
  product.stores << current_store

Но насчет формы в разделе администратора, что-то не так с полем магазина. Не видно:

enter image description here

Проверка выглядит так:

<div class="form-group field" id="product_stores_field">
  <label for="product_store_ids">Stores</label>
    <input value="1" type="hidden" name="product[store_ids]" id="product_store_ids">
</div>

Спасибо

...