ઉત્પાદન અને SKU આર્કિટેક્ચર: સ્ટ્રક્ચર્ડ કૉન્ફિગરેશન સિસ્ટમ

આ લેખ સમજાવે છે કે કેવી રીતે અમે હજારો ઉત્પાદન કૉન્ફિગરેશન મેનેજ કરવા માટે સ્ટ્રક્ચર્ડ SKU સિસ્ટમનો ઉપયોગ કરીએ છીએ.

સમસ્યા: કોમ્બિનેટોરિયલ વિસ્ફોટ

કૉન્ફિગર કરી શકાય તેવા ઉત્પાદનમાં ઘણા વિકલ્પો હોય છે:

  • 17 ચેસિસ પ્રકારો × 17 પ્રોસેસર × 8 RAM કદ × 19 સ્ટોરેજ કદ × 6 WiFi વિકલ્પો × 9 OS વિકલ્પો = 2,372,112 સંભવિત કૉન્ફિગરેશન્સ

દરેક કૉન્ફિગરેશનને મેન્યુઅલી મેનેજ કરવું અશક્ય છે:

  • 2,372,112 ઉત્પાદન વર્ણનો લખવા

  • 2,372,112 કિંમત ગણતરીઓ જાળવવી

  • 2,372,112 ઇન્વેન્ટરી રેકોર્ડ્સ ટ્રેક કરવા

  • 2,372,112 ઉત્પાદન પૃષ્ઠો બનાવવા

અમને એવી સિસ્ટમની જરૂર છે જે કૉન્ફિગરેશન્સને ડાયનેમિક રીતે જનરેટ કરે.

ઉકેલ: SKU-આધારિત આર્કિટેક્ચર

અમે હાઇફન-અલગ કરાયેલ SKU સ્ટ્રક્ચરનો ઉપયોગ કરીએ છીએ જ્યાં દરેક સેગમેન્ટ એક ઘટકનું પ્રતિનિધિત્વ કરે છે:

ફોર્મેટ: ચેસિસ-બોર્ડ-RAM-ફ્લેશ-એડેપ્ટર-WiFi-OS-ઍક્સેસરીઝ

ઉદાહરણ: Treo-97-8-512-65-ax200-W11P-KM

આ SKU થી, અમે આ કરી શકીએ છીએ:

  • લક્ષણો કાઢો (પ્રોસેસર, RAM, સ્ટોરેજ)

  • કિંમત ગણો (ઘટકોની કિંમતોનો સરવાળો)

  • વર્ણન જનરેટ કરો (ઘટકોના નામો જોડો)

  • સ્ટોક તપાસો (બધા ઘટકો ઉપલબ્ધ છે તે ચકાસો)

સિંગલ સોર્સ ઓફ ટ્રૂથ: productdb

ઉત્પાદન ડેટાબેઝ (productdb.json) એ તમામ ઉત્પાદન માહિતી માટે સિંગલ સોર્સ ઓફ ટ્રૂથ છે:

  • ફોર્મેટ: ટોપ-લેવલ કીઝ તરીકે શ્રેણીઓ સાથે JSON

  • શ્રેણીઓ: ચેસિસ, બોર્ડ, RAM, ફ્લેશ, એડેપ્ટર, WiFi BT, OS, ઍક્સેસરીઝ, ઘટક, કસ્ટમ

Productdb સ્ટ્રક્ચર

દરેક ઉત્પાદનમાં છે:

  • PartID: અનન્ય ઓળખકર્તા (દા.ત., "Treo", "97", "8")

  • internal: કર્મચારીઓ માટે આંતરિક નામ

  • external: ગ્રાહકો માટે બાહ્ય નામ

  • class: સુસંગતતા નિયમો માટે ઉત્પાદન વર્ગ

  • allows: સુસંગત ભાગો પરના નિયંત્રણો

  • provides: આ ભાગ દ્વારા પૂરા પાડવામાં આવેલી સુવિધાઓ

  • weight: ગ્રામમાં વજન

  • constituents: કમ્પોઝિટ ભાગો માટે, ઉપ-ઘટકોની સૂચિ

ઉદાહરણ Productdb એન્ટ્રી

Productdb એન્ટ્રીઓમાં તેમની સ્પેસિફિકેશન્સ સાથે ચેસિસ, બોર્ડ, RAM, ફ્લેશ, એડેપ્ટર, WiFi BT, OS અને ઍક્સેસરીઝનો સમાવેશ થાય છે.

SKU સ્ટ્રક્ચર

SKU એ Part ID ની હાઇફન-અલગ કરાયેલ સ્ટ્રિંગ છે:

  • ફોર્મેટ: {ચેસિસ}-{બોર્ડ}-{RAM}-{ફ્લેશ}-{એડેપ્ટર}-{WiFi BT}-{OS}-{ઍક્સેસરીઝ}

  • ઉદાહરણ: Treo-97-8-512-65-ax200-W11P-KM

  • લંબાઈ: હંમેશા 8 ભાગો (કેટલીક શ્રેણીઓ વૈકલ્પિક હોય ત્યારે ખાલી હોઈ શકે છે)

SKU પાર્સિંગ

SKU ને part_sequence નો ઉપયોગ કરીને પાર્સ કરવામાં આવે છે જે શ્રેણીઓનો ક્રમ વ્યાખ્યાયિત કરે છે.

લક્ષણો કાઢવા

લક્ષણોને find_features() નો ઉપયોગ કરીને productdb માંથી કાઢવામાં આવે છે:

  1. ભાગથી શરૂ કરો: productdb માંથી ભાગ મેળવો
  2. પૂરા પાડે છે ઉમેરો: provides ફીલ્ડમાંથી તમામ લક્ષણો કૉપી કરો
  3. ઘટકો પ્રક્રિયા કરો: ઉપ-ઘટકોમાંથી લક્ષણો રિકર્સિવલી ઉમેરો
  4. સંખ્યાત્મક મૂલ્યો ગુણાકાર કરો: જથ્થા માટે (દા.ત., વજન, RAM)

લક્ષણ એગ્રિગેશન

સંપૂર્ણ SKU માટે, બધા ભાગોમાંથી લક્ષણો એકત્રિત કરવામાં આવે છે. એગ્રિગેશન પ્રક્રિયા SKU માંના તમામ ભાગોમાંથી લક્ષણોને જોડે છે.

લક્ષણ ક્રમ

feature_sequence વ્યાખ્યાયિત કરે છે કે લક્ષણો કેવી રીતે પ્રદર્શિત થાય છે:

  • કી: લક્ષણ નામ (દા.ત., "પ્રોસેસર મોડેલ", "સ્ક્રીન સાઇઝ")

  • વેલ્યુ: Unit અને Heading સાથે ડિક્ટ

  • હેડિંગ્સ: પ્રોસેસિંગ, ડિસ્પ્લે, ઑડિયો, કનેક્ટિવિટી, નેટવર્કિંગ, પાવર, એન્વાયર્નમેન્ટલ, ફિઝિકલ, ઍક્સેસરીઝ, ઓપરેટિંગ સિસ્ટમ

લક્ષણ ક્રમ

feature_sequence તેમના એકમો અને હેડિંગ્સ સાથે લક્ષણો કેવી રીતે પ્રદર્શિત થાય છે તે વ્યાખ્યાયિત કરે છે.

ફિલ્ટરિંગ માટે ફેસેટ્સ

FACETS_FOR_FILTERING feature_sequence માંથી ડાયનેમિક રીતે જનરેટ થાય છે:

  • બાકાત રાખે છે: OS લક્ષણો, પરિમાણો, વજન, કેશ

  • હેડિંગ દ્વારા જૂથબદ્ધ કરે છે: પ્રોસેસિંગ, ડિસ્પ્લે, ઑડિયો, વગેરે.

  • માટે ઉપયોગ: ક્વેરી પૃષ્ઠ ફિલ્ટર્સ, ઉત્પાદન શોધ

ફિલ્ટર ફેસેટ્સ સ્ટ્રક્ચર

FACETS_FOR_FILTERING ક્વેરી પૃષ્ઠ ફિલ્ટર્સ માટે લક્ષણોને હેડિંગ દ્વારા જૂથબદ્ધ કરે છે.

લક્ષણ કોષ્ટકો

લક્ષણ કોષ્ટકો product_features() માંથી જનરેટ થાય છે:

  1. હેડિંગ દ્વારા જૂથબદ્ધ કરો: પ્રોસેસિંગ, ડિસ્પ્લે, વગેરે.
  2. મૂલ્યો ફોર્મેટ કરો: જ્યાં લાગુ પડે ત્યાં એકમો ઉમેરો
  3. 2-કૉલમ લેઆઉટમાં પ્રદર્શિત કરો: ઉત્પાદન પૃષ્ઠો માટે સંતુલિત

લક્ષણ કોષ્ટક ઉદાહરણ

પ્રોસેસિંગ
પ્રોસેસર મોડેલ ઇન્ટેલ i5-12400
કોર્સ 6
મહત્તમ ફ્રીક્વન્સી 4.4 GHz
મુખ્ય મેમરી 16 GB
ડિસ્પ્લે
સ્ક્રીન સાઇઝ 21.5 ઇંચ
રિઝોલ્યુશન 1920 × 1080
બ્રાઈટનેસ 250 નિટ્સ

ક્રોસ-રેફરન્સિસ

બાહ્ય લિંક્સ

સારાંશ

ઉત્પાદન અને SKU આર્કિટેક્ચર પૂરી પાડે છે:

  • સિંગલ સોર્સ ઓફ ટ્રૂથ: તમામ ઉત્પાદન માહિતી માટે productdb.json

  • લક્ષણો કાઢવા: ભાગોમાંથી ઓટોમેટિક લક્ષણ એગ્રિગેશન

  • ફિલ્ટરિંગ: ક્વેરી પૃષ્ઠ ફિલ્ટર્સ માટે FACETS_FOR_FILTERING

  • લક્ષણ કોષ્ટકો: ઉત્પાદન પૃષ્ઠો માટે જૂથબદ્ધ લક્ષણો

  • SKU પાર્સિંગ: ઉત્પાદન રચના માટે હાઇફન-અલગ કરાયેલ Part ID