Подпишитесь на рассылку о самых интересных материалах в мире веб-разработки :)

Spree_datashift и ему подобные. Импорт из csv


#1

Заинтересовала тема импорта в spree из csv-файла; из опыта работы с жумлами-престашопами-вирчмартами и опенкартами, импорт товаров в интернет-магазин - самое первое, что требует заказчик. Прошерстил github, погуглил… и с удивлением убедился, что работоспособных решений, которые бы работали на актуальных сегодня версиях гемов без длительных плясок с бубнами - пожалуй, не существует. Поправьте, если я неправ. Глянул в сторону datashift_spree, spree_datashift_prod_import, что-то там еще… впечатление, что покрываются пылью постепенно, ибо никто ими не занимается.

Может ли кто-нибудь посоветовать рабочее решение в этом контексте, чтобы не пилить его вдоль и поперек? Ничего адекватного не нашел. Актуален ли вообще spree? слыхал про какую-то его новую ветку, не упомню название.


(Kortirso) #2

Сам по себе импорт из csv - пара строк кода
Интернет-магазин на Rails - дело пары дней, дольше дизайн придумывать и верстать, и spree никакие не нужны


#3

С этим я спорить не буду, возможно, оно и так. Особенно если являешься фанатом нетленного труда Сэма Руби и иже с ним, озаглавленного в русской редакции “Гибкая разработка веб-приложений”, и поражающей воображение новичков крутой корзиной на аяксе оттуда же… Но, к сожалению, имело место некое тестовое задание, в контексте которого прозвучало название гема spree. Так что в выборе архитектуры проекта и используемых технологий я не свободен.


(Сергей) #4

Solidus - форк spree, где основной целью было отрефакторить код. В основном мнение такое, что для новых проектов лучше использовать его. Из минусов, не все дополнения, которые есть для spree адаптированы для solidus.
spree_datashift_prod_import - редактировался 5 месяцев назад, это для вас покрылся пылью? Сколько раз брал библиотеку, которая уже несколько лет не обновлялась, зависимости менял на свежие версии и работало без проблем, понятно что это как повезет, но на тот он и опенсорс. Делай пулреквесты или форкай и сам поддерживай.


#5

Да-да, спасибо, что напомнили. Отличительная черта русскоязычных форумов - обращаешься с технической проблемой, а в качестве ответа получаешь незабвенное и родное “напиши сам, если ты такой умный”, варианты. Возможно, вы мне не поверите, но - поистине разительный контраст с форумами, хмм… нерусскоязычными. Хотя бы постарайтесь поверить.

А вот насчет ассоциативной пары “open source;как повезет” однозначно do not accept. Вы сами-то контрибьютите, @PSerg, не? Очень многие мои коллеги, уверен, не согласятся с вашим утверждением, а кое-кто даже бы и оскорбился, пожалуй. ))

А теперь к делу. Что-нибудь по существу вопроса сказать можете, или это так, сугубо вербально? Я не ахти какой крутой контрибьютор, но кое-какие свои extensions поддерживаю; уверяю, “покрыться пылью” можно и за неделю, если не успеть к релизу платформы. Как два пальца об асфальт.
В контексте описанной проблемы: не стал бы болтать здесь впустую, если бы первоначально не попробовал; один из интересующих меня гемов обновлялся лет пять или семь, что ли, назад, второй - года два как, третий - да, пять месяцев назад. Вот этот-то третий и последний свежачок и пробуем на актуальной версии spree, 3.4.1 - October 20, 2017 (9 KB), не забыв аннотацию разработчика:

Add following to your Gemfile:
gem 'spree_datashift_prod_import', github: 'vinsol-spree-contrib/spree_datashift_prod_import', branch: <spree-version-compatible>
gem 'datashift_spree', github: 'vinsol-spree-contrib/datashift_spree', branch: '3-2-stable'
gem 'datashift', github: 'vinsol-spree-contrib/datashift', branch: '3-2-stable'
The branch option is important: it must match the version of Spree you're using. For example, use 3-1-stable if you're using Spree 3-1-stable or any 3.1.x version.

Соответственно, пробуем бундлить и получаем:

Fetching https://github.com/vinsol-spree-contrib/spree_datashift_prod_import.git
fatal: Needed a single revision
Revision 3-4-stable does not exist in the repository
https://github.com/vinsol-spree-contrib/spree_datashift_prod_import.git. Maybe you misspelled it?

Any ideas? Можно, конечно, попытаться пренебречь указанием разработчика (хотя всерьез я бы не стал этого делать, моветон) и в плане эксперимента указать старую версию spree. Но, уверяю, не прокатит:

 spree_datashift_prod_import was resolved to 3.2.0, which depends on
      spree_core (~> 3.2.0)

Возможно, кто-то знает, как обойти (если не решить) проблему? Боюсь, “поменять зависимости на свежие версии” в данном случае не панацея. Исходя из моего скромного опыта - ситуация явно нестандартная для современного open source. Буду рад любому адекватному совету. Повторюсь, “зафоркай, зафилли, напиши сам” - суть демагогия, а не решение.


(Вячеслав Пцарев) #6

Вы сделали собвственные форки этих гемов и прописали в их gemset версию spree ‘~> 3.4.0’?


(Сергей) #7

Не по феншую это.


#8

Ладно. Уже сказал представителю работодателя, что не буду пробоваться на предложенную вакансию. Т.к. априори не внушает доверия фирма-разработчик, пусть даже и европейский, в качестве теста выпрашивающий законченное (с пространными комментами!) решение для e-commerce. Существует же этика определенного рода, давно и всем (crossover.com не в счет) известная… причем, обращаю еще раз ваше внимание, на гитхабе отсутствует на данный момент (имхо, ну или не нашел) рабочее расширение такого рода… все вот это вкупе производит нелучшее впечатление и точно не по-феншую.

Таким образом, острота проблемы снимается, но если придет кому что-то доброе, светлое и вечное в голову, на тему… поделитесь, охота погреться в лучах. )) Ну и для самообразования опять же.


(Вячеслав Пцарев) #9

А как без этого вы хотите завести расширения со старыми зависимостями spree на новой версии? Что есть по фен-шую? Если честно, я не очень понял сложность задачи, по-моему, решается элементарно. И потом с форка отправляете PR в репу исходника. Если не примут - используете свой форк.


(Сергей) #10

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


#11

Краткость - сестра таланта, вы совершенно верно сформулировали мое отношение к такого рода репликам на форумах. Нужна аргументация? - их есть у меня.

Кодеры, включаем логику! Если вы кодеры, а не эйчеры. )) Итак:

Незнакомый вам собеседник на этом форуме - это либо программист, либо ламер. Если 1, то ваш совет ему ровным счетом бесполезен, это попросту избыточная строчка очередного для него говнокода: он и сам знает, что такое форки и хаки. И если спрашивает совета, то явно не затем, чтобы услышать в ответ уже ему известное. Далее, elseif 2 - ваш совет опять-таки не к месту: ламер не будет форкать что-то там на гитхабе, он и слов-то таких не знает. Максимум, что сможет - это гем прописать в гемфайле, все иное для него неподъемно. ЛОгично? - третьего elseif здесь, увы, нет. Отсюда сделайте вывод об уровне реплики “напиши или форкни сам, есть немалая вероятность, что заработает”.

Убедил? Что-то мне подсказывает, что нет; так уж мы все устроены, что на первом месте всегда сознание (вернее сказать, экзистенциальное желание) собственной правоты, подо что и подтягиваются, подтаскиваются обычно аргументы. Ну что же, мое мнение субъективно, разумеется, и даже очень субъективно. Ок, тогда еще один аргумент: сумеете ли показать мне на англоязычном stackoverflow (это образец для меня наиболее профессионального портала программистов, в частности) ответ в сугубо отечественном стиле “если не ндравится, напиши сам и не е@и нам всем здесь мозги”, причем так, чтобы этот ответ получил там наивысшую оценку?- уверяю, вы не сможете этого сделать. Там такого нет.


(Сергей) #12

Странный ты человек, тебе предложили вариант, который с вероятностью в 90% решил бы твою проблему. Нет, ты ушел в демогогию. Каой ответ нужен был? Такой?
Братан, да, я буквально вчера столнкнулся с такой же проблемой как у тебя, форкнул эту либо, вот тебе ссылка на рабочий варинат. Так что-ли?
И про SO это ты верно подметил. Потому что здесь людей который исопльзуют spree единицы.


#13

Вы, я гляжу, оперативно на “ты” перешли? ок, отвечу, ожидания мои были следующими: я думал, что вы ответите, если есть что ответить по существу; и промолчите, если сказать нечего. На перл а-ля “со spree не работаю, ты его перепиши, 90% вероятия что заработает”, я не рассчитывал никоим образом. Откуда взял процент вероятности, если со spree не работаешь, “братан”? сам считал, или подсказал кто? ссылка на источник статистики где? Изъяна в моей логике ты найти не сумел, ударился в краснобайство. Неинтересно. Это ты демогог, а не я.


(Сергей) #14

Вы (хотя мы не светском рауте) и на форумах обращение на ты вполне принято, попробовал поменять версию ядра, как тебе советовали? Нет? Я думаю этим вопрос исчерпан. А со spree я немного работал, посему и предложил самое очевидное решение.


#15

Вы думаете неправильно: исчерпан вопрос или нет, решает на форумах либо ТС, либо модератор. Вопросов же лично к вам не было и нет: судя по вашим перлам, разные у нас с вами круги общения, да и сорта пива мы пьем разные. Где там что у вас принято - не знаю и знать не хочу, и на этом “вопрос” с вами действительно закрыт, неинтересны вы мне. Базланьте дальше себе на здоровье. А вот вопрос по spree остается открытым.

P.S. Не так давно нанял таксиста недорого, еду по городу, и всю дорогу этот *удак мне мозг гребет на ту животрепещущую тему, что “70% украинцев козлы”. Откуда быдло берет эти самые свои процентные соотношения, 70%, 90%, 120%, кто бы объяснил? - сорь, это была “реплика в сторону”.