
แพลตฟอร์มอีคอมเมิร์ซโอเพนซอร์ซฟรีที่ช่วยให้คุณควบคุมร้านค้าของคุณได้อย่างสมบูรณ์
ในฐานะโครงการที่ขับเคลื่อนด้วยชุมชน Solidus อาศัยเงินทุนและเวลาที่บริจาคโดยนักพัฒนาและผู้มีส่วนได้ส่วนเสียที่ใช้ Solidus สำหรับธุรกิจของพวกเขา หากคุณต้องการช่วยให้ Solidus เติบโตขึ้นโปรดพิจารณา:
ในปัจจุบัน Nebulab เป็นผู้สนับสนุนหลักรหัสและผู้อำนวยการของ Solidus ให้คำแนะนำทางเทคนิคและประสานงานความพยายามและกิจกรรมของชุมชน
สนับสนุนโครงการนี้โดยการเป็นเอกอัครราชทูต Solidus โลโก้ของคุณจะปรากฏขึ้นที่นี่พร้อมลิงค์ไปยังเว็บไซต์ของคุณ เป็นเอกอัครราชทูต
Solidus เป็นโซลูชันอีคอมเมิร์ซโอเพนซอร์สที่สมบูรณ์แบบที่สร้างขึ้นด้วยทับทิมบนราง มันเป็นส้อมของความสนุกสนาน
ดูเอกสาร Solidus Class และ Solidus Guide สำหรับข้อมูลเกี่ยวกับฟังก์ชั่นที่ Solidus มีให้
Solidus ประกอบด้วยอัญมณีหลายแห่ง เมื่อคุณต้องการ solidus Gem ใน Gemfile ของคุณ Bundler จะติดตั้งอัญมณีทั้งหมดต่อไปนี้:
solidus_api (RESTFUL API)solidus_backend (พื้นที่ผู้ดูแลระบบ)solidus_core (แบบจำลองที่จำเป็น, จดหมายและชั้นเรียน)solidus_sample (ข้อมูลตัวอย่าง) อัญมณีทั้งหมดได้รับการออกแบบมาเพื่อทำงานร่วมกันเพื่อให้แพลตฟอร์มอีคอมเมิร์ซที่ใช้งานได้อย่างสมบูรณ์ อย่างไรก็ตามคุณอาจต้องการใช้อัญมณี solidus_core รวมเข้ากับส่วนหน้าของคุณเองอินเทอร์เฟซผู้ดูแลระบบและ API ของคุณเอง
คุณสามารถลองตัวอย่าง Live Solidus ได้ที่นี่ ส่วนผู้ดูแลระบบสามารถเข้าถึงได้ที่นี่
เริ่มต้นด้วยการทำให้แน่ใจว่าคุณติดตั้ง ImageMagick ซึ่งจำเป็นสำหรับคลิปหนีบกระดาษ (คุณสามารถติดตั้งได้โดยใช้ Homebrew หากคุณอยู่ใน Mac)
ในการเพิ่ม Solidus ให้เริ่มต้นด้วยแอปพลิเคชัน Rails ที่สร้างขึ้นใหม่ด้วยฐานข้อมูล
rails new my_storeในโฟลเดอร์รูทของแอปพลิเคชันของคุณรัน:
bundle add solidus
bin/rails g solidus:installและทำตามคำแนะนำของพรอมต์
เริ่มเซิร์ฟเวอร์ Rails ด้วยคำสั่ง:
bin/rails sหน้าร้านจะสามารถเข้าถึงได้ที่ http: // localhost: 3000/และผู้ดูแลระบบสามารถพบได้ที่ http: // localhost: 3000/admin/
สำหรับข้อมูลเกี่ยวกับวิธีการปรับแต่งร้านค้าของคุณให้ตรวจสอบคำแนะนำการปรับแต่ง
เป็นส่วนหนึ่งของการเรียกใช้ขั้นตอนการติดตั้งข้างต้นคุณจะถูกขอให้ตั้งค่าการรวมอีเมล/รหัสผ่านของผู้ดูแลระบบ ค่าเริ่มต้นคือ [email protected] และ test123 ตามลำดับ
วิธีที่ดีที่สุดในการถามคำถามคือการเข้าร่วม Solidus Slack และเข้าร่วม #Support Channel
แทนที่จะเป็นบิลด์ที่เสถียรหากคุณต้องการใช้ Solidus รุ่น Bleeding Edge ให้ใช้บรรทัดนี้:
gem 'solidus' , github : 'solidusio/solidus'หมายเหตุ: สาขาหลักไม่ได้รับประกันว่าจะอยู่ในสถานะที่ทำงานได้อย่างสมบูรณ์ มีความเสี่ยงเกินกว่าที่จะใช้สาขานี้ในการผลิต
โดยค่าเริ่มต้นเครื่องกำเนิดการติดตั้ง ( solidus:install ) จะเรียกใช้การย้ายถิ่นรวมถึงการเพิ่มข้อมูลเมล็ดและตัวอย่าง สามารถปิดใช้งานได้โดยใช้
bin/rails g solidus:install --migrate=false --sample=false --seed=falseคุณสามารถทำตามขั้นตอนเหล่านี้ได้ในภายหลังโดยใช้คำสั่งเหล่านี้
bin/rails railties:install:migrations
bin/rails db:migrate
bin/rails db:seed
bin/rails spree_sample:loadนอกจากนี้ยังมีตัวเลือกและงาน Rake ที่จัดทำโดย SolidUS_AUTH_DEVISE
คุณอาจสังเกตเห็นว่าร้าน Solidus ของคุณทำงานช้าในโหมดการพัฒนา อาจเป็นเพราะในการพัฒนาแต่ละ CSS และ JavaScript ถูกโหลดเป็นแยกต่างหาก สิ่งนี้สามารถปิดใช้งานได้โดยการเพิ่มสิ่งต่อไปนี้ใน config/environments/development.rb
config . assets . debug = falseเพื่อให้ได้ความเร็วพิเศษบางอย่างคุณอาจเปิดใช้งาน turbolink ภายใน Solidus Admin
เพิ่ม gem 'turbolinks', '~> 5.0.0' ลงใน Gemfile ของคุณ (ถ้ายังไม่ได้อยู่แล้ว) และเปลี่ยน vendor/assets/javascripts/spree/backend/all.js ดังนี้:
//= require turbolinks
//
// ... current file content
//
//= require spree/backend/turbolinks-integration.jsข้อควรระวัง โปรดทราบว่า turbolinks สามารถทำลายส่วนขยายและ/หรือการปรับแต่งให้กับผู้ดูแลระบบ Solidus ใช้ความเสี่ยงของคุณเอง
โคลน repo git
git clone git://github.com/solidusio/solidus.git
cd solidusติดตั้งการพึ่งพาอัญมณี
bin/setupหมายเหตุ : หากคุณใช้ PostgreSQL หรือ MySQL คุณจะต้องติดตั้งอัญมณีเหล่านั้นผ่านตัวแปรสภาพแวดล้อม DB
# PostgreSQL
export DB=postgresql
bin/setup
# MySQL
export DB=mysql
bin/setupdocker-compose up -d รอให้ติดตั้งอัญมณีทั้งหมด (สามารถตรวจสอบความคืบหน้าผ่าน docker-compose logs -f app )
คุณสามารถให้เวอร์ชันทับทิมที่คุณต้องการให้ภาพของคุณใช้:
docker-compose build --build-arg RUBY_VERSION=3.0 app
docker-compose up -d รุ่น Rails สามารถปรับแต่งได้ที่รันไทม์ผ่านตัวแปรสภาพแวดล้อม RAILS_VERSION :
RAILS_VERSION= ' ~> 5.0 ' docker-compose up -dการทดสอบที่ใช้งาน:
# sqlite
docker-compose exec app bin/rspec
# postgres
docker-compose exec app env DB=postgres bin/rspec
# mysql
docker-compose exec app env DB=mysql bin/rspecการเข้าถึงฐานข้อมูล:
# sqlite
docker-compose exec app sqlite3 /path/to/db
# postgres
docker-compose exec app env PGPASSWORD=password psql -U root -h postgres
# mysql
docker-compose exec app mysql -u root -h mysql -ppassword เพื่อให้สามารถเข้าถึงแอปพลิเคชัน Sandbox เพียงตรวจสอบให้แน่ใจว่าได้ให้ --binding เลือกที่เหมาะสมกับ rails server โดยค่าเริ่มต้นพอร์ต 3000 จะถูกเปิดเผย แต่คุณสามารถเปลี่ยนได้ผ่านตัวแปรสภาพแวดล้อม SANDBOX_PORT :
SANDBOX_PORT=4000 docker-compose up -d
docker-compose exec app bin/sandbox
docker-compose exec app bin/rails server --binding 0.0.0.0 --port 4000Solidus มีความหมายว่าจะทำงานภายในบริบทของแอปพลิเคชัน Rails คุณสามารถสร้างแอปพลิเคชัน Sandbox ภายในไดเรกทอรีแหล่งที่มาของคุณเพื่อการทดสอบได้อย่างง่ายดาย
Sandbox นี้รวมถึง SolidUS_AUTH_DEVISE และสร้างด้วยข้อมูลเมล็ดและตัวอย่างที่โหลดแล้ว
สร้างแอปพลิเคชัน Sandbox
bin/sandboxคุณสามารถสร้าง Sandbox ด้วย PostgreSQL หรือ MySQL ได้โดยการตั้งค่าตัวแปรสภาพแวดล้อม DB
# PostgreSQL
export DB=postgresql
bin/sandbox
# MySQL
export DB=mysql
bin/sandboxขึ้นอยู่กับสภาพแวดล้อมในพื้นที่ของคุณอาจจำเป็นสำหรับคุณในการตั้งค่าตัวแปรสภาพแวดล้อมสำหรับ RDBMS ของคุณคือ:
DB_HOSTDB_USERDB_PASSWORD หากคุณต้องการสร้างแอปพลิเคชัน Rails 5.2 สำหรับ Sandbox ของคุณตัวอย่างเช่นหากคุณยังใช้ Ruby 2.4 ซึ่งไม่ได้รับการสนับสนุนโดย Rails 6 คุณสามารถใช้ตัวแปรสภาพแวดล้อม RAILS_VERSION
export RAILS_VERSION= ' ~> 5.2.0 '
bin/setup
bin/sandboxคุณสามารถเริ่มต้นเซิร์ฟเวอร์ Rails และบริการอื่น ๆ ได้จากโฟลเดอร์ Solidus หรือ Sandbox One โดยเรียกใช้คำสั่ง:
bin/dev โปรดทราบ: หากคุณเรียกใช้ bin/rails server หรือคำสั่งที่คล้ายกันจะมีเฉพาะเซิร์ฟเวอร์ Rails เท่านั้นที่จะเริ่มต้น สิ่งนี้อาจทำให้เกิดข้อผิดพลาด couldn't find file 'solidus_admin/tailwind.css' เมื่อคุณพยายามโหลดหน้าผู้ดูแลระบบ
Solidus ใช้ RSPEC สำหรับการทดสอบ อ้างถึงเอกสารสำหรับข้อมูลเพิ่มเติมเกี่ยวกับไลบรารีการทดสอบ
เราใช้ circleci เพื่อเรียกใช้การทดสอบสำหรับ solidus รวมถึงคำขอดึงที่เข้ามาทั้งหมด คำขอดึงทั้งหมดจะต้องผ่านเพื่อรวมเข้าด้วยกัน
คุณสามารถดูสถานะการสร้างได้ที่ https://circleci.com/gh/solidusio/solidus
ต้องใช้ Chromedriver เพื่อเรียกใช้ชุดทดสอบแบ็กเอนด์
ในการดำเนินการตามข้อกำหนดการทดสอบทั้งหมดให้เรียกใช้สคริปต์ bin/build ที่รากของโครงการ Solidus:
createuser --superuser --echo postgres # only the first time
bin/build สคริปต์ bin/build ทำงานโดยใช้ postgreSQL โดยค่าเริ่มต้น แต่สามารถแทนที่ได้โดยการตั้งค่าตัวแปรสภาพแวดล้อม db เป็น DB=sqlite หรือ DB=mysql ตัวอย่างเช่น:
env DB=mysql bin/buildหากคำสั่งล้มเหลวด้วยข้อผิดพลาดที่เกี่ยวข้องกับ MySQL คุณสามารถลองสร้างผู้ใช้ด้วยคำสั่งนี้:
# Creates a user with the same name as the current user and no restrictions.
mysql --user= " root " --execute= " CREATE USER ' $USER '@'localhost'; GRANT ALL PRIVILEGES ON * . * TO ' $USER '@'localhost'; " แต่ละอัญมณีมีชุดทดสอบของตัวเอง เพื่อเรียกใช้การทดสอบสำหรับโครงการหลัก:
cd core
bundle exec rspec โดยค่าเริ่มต้น rspec เรียกใช้การทดสอบสำหรับ SQLite 3 หากคุณต้องการเรียกใช้รายละเอียดกับฐานข้อมูลอื่นคุณอาจระบุฐานข้อมูลในคำสั่ง:
env DB=postgresql bundle exec rspecหากคุณต้องการเรียกใช้รายงานการครอบคลุมรหัส SimpleCov:
COVERAGE=true bundle exec rspecนอกเหนือจากฟังก์ชั่นหลักที่มีให้ใน Solidus แล้วยังมีหลายวิธีในการเพิ่มคุณสมบัติให้กับร้านค้าของคุณที่ยังไม่ได้ (หรือยังไม่ได้) ส่วนหนึ่งของโครงการหลัก
รายการสามารถพบได้ที่ extensions.solidus.io
หากคุณต้องการเขียนส่วนขยายสำหรับ Solidus คุณสามารถใช้อัญมณี SolidUS_DEV_SUPPORT
Solidus เป็นโครงการโอเพ่นซอร์สและเราสนับสนุนให้มีส่วนร่วม โปรดอ่าน Inteding.md ก่อนที่จะมีส่วนร่วม