page_type | ภาษา | สินค้า | ชื่อ | คำอธิบาย | |||
---|---|---|---|---|---|---|---|
ตัวอย่าง |
|
| ขยาย Commerce POS, HWS และ Headless Commerce API และรันไทม์ Commerce | การซื้อคืนนี้มีโค้ดตัวอย่างเกี่ยวกับวิธีการขยาย Dynamics 365 Commerce POS, สถานีฮาร์ดแวร์, API การค้าแบบไม่มีส่วนหัว และรันไทม์ของ Commerce |
ที่เก็บนี้มีโค้ดตัวอย่างสำหรับวิธีปรับแต่ง POS, Hardware Station(HWS) และ Commerce runtime (CRT), Headless Commerce API และฐานข้อมูลช่องทาง โปรดทราบว่าสิ่งเหล่านี้เป็นเพียงตัวอย่างเท่านั้น และไม่จำเป็นต้องลอกแบบ Repo นี้เพื่อพัฒนาส่วนขยาย Dynamics 365 Commerce หัวข้อนี้ใช้กับแอปพลิเคชัน Dynamics 365 commerce รุ่น 10.0.18 หรือสูงกว่า
ไฟล์นี้อธิบายโครงสร้างของ repo ตัวอย่าง InStore และอธิบายวิธีการตั้งค่า repo เพื่ออ้างอิงแพ็คเกจ nuget Commerce SDK จากฟีดสาธารณะสำหรับการพัฒนาส่วนขยาย Dynamics 365 Commerce โปรดเยี่ยมชมไซต์เอกสารของเราสำหรับแหล่งข้อมูลเพิ่มเติมเกี่ยวกับการพัฒนา Dynamics 365 Commerce
กระบวนการนี้ไม่จำเป็นต้องมีสภาพแวดล้อมหรือเครื่องเสมือนที่กำหนดไว้ล่วงหน้าโดยเฉพาะ การพัฒนาและการทดสอบสามารถทำได้บนเครื่องใดก็ได้ที่ใช้ Windows เวอร์ชันที่ค่อนข้างทันสมัย หากคุณไม่ต้องการการพัฒนา Modern POS คุณสามารถใช้ประโยชน์จาก Windows 10, Windows Server 2016/2019 ได้ หากคุณต้องการการพัฒนา Sealed Modern POS ให้ติดตั้งข้อกำหนดเบื้องต้นเหล่านี้ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับข้อกำหนดเบื้องต้นของสภาพแวดล้อมการพัฒนา โปรดดูที่บทความนี้
ตัวอย่าง repo InStore ประกอบด้วย nuget.config, repo.props, CustomizationPackage.props และสคริปต์ไปป์ไลน์ของบิลด์ซึ่งให้คำแนะนำเกี่ยวกับวิธีที่ส่วนขยายสามารถตั้งค่าไฟล์ข้อมูลเมตา repo
โฟลเดอร์ | คำอธิบาย |
---|---|
ตัวอย่างสถานีฮาร์ดแวร์ | โปรเจ็กต์นี้ประกอบด้วยตัวอย่างเกี่ยวกับวิธีการสร้างสถานีฮาร์ดแวร์ ส่วนขยายการชำระเงิน และตัวติดตั้งส่วนขยาย |
ร้านค้าการค้าตัวอย่าง | โฟลเดอร์นี้มีตัวอย่างที่สาธิตวิธีการขยายแอป Store Commerce เพื่อให้บรรลุสถานการณ์การปรับแต่งต่างๆ |
ตัวอย่างบรรจุภัณฑ์ | โฟลเดอร์นี้ประกอบด้วยตัวอย่างที่สาธิตวิธีจัดโครงสร้างโซลูชัน Commerce SDK ของคุณเพื่อสร้างแพ็คเกจ/ตัวติดตั้งสำหรับส่วนประกอบ Commerce ที่เหมาะสม |
ไปป์ไลน์ | ไฟล์สคริปต์ YAML และ PowerShell |
Repo Dynamics365Commerce.ScaleUnit มีตัวอย่างเพิ่มเติมที่เน้นไปที่สถานการณ์การพัฒนาส่วนขยาย Headless Commerce เช่น Headless Commerce API และ Commerce Runtime
แต่ละตัวอย่างใน repo นี้มาพร้อมกับไฟล์ readme.md พร้อมด้วยข้อมูลต่อไปนี้:
คำอธิบายของฟังก์ชันการทำงาน
ขั้นตอนในการสร้างและรันตัวอย่าง
รายการ Commerce API และจุดส่วนขยายที่ใช้ในตัวอย่างและคำอธิบายสิ่งที่พวกเขาทำ
ลิงก์ไปยังเอกสารที่เกี่ยวข้องของ Commerce API และพื้นที่คุณลักษณะ
GIF หรือภาพหน้าจอของฟังก์ชันการทำงาน ถ้ามี
ทีม Commerce ได้สร้างระบบอัตโนมัติที่ตรวจสอบว่าตัวอย่างทั้งหมดในการสร้าง repo นี้สำเร็จ แต่นั่นไม่ได้รับประกันว่าตัวอย่างเหล่านี้จะสร้างและทำงานเสมอโดยไม่มีปัญหาที่พบบ่อยในระหว่างการพัฒนาซอฟต์แวร์ หากคุณพบปัญหากับตัวอย่าง InStore หรือ Commerce SDK โปรดค้นหาในส่วนปัญหาของ repo Github นี้เพื่อดูว่าเป็นปัญหาที่ทราบหรือไม่ อาจมีวิธีแก้ไขหรือวิธีแก้ปัญหาอยู่แล้ว
หากคุณไม่เห็นปัญหาของคุณแสดงอยู่ในส่วนปัญหา โปรดสร้างปัญหาใหม่พร้อมรายละเอียดเกี่ยวกับปัญหาที่คุณกำลังเผชิญ สิ่งนี้จะช่วยให้แน่ใจว่าทุกคนที่ใช้ Commerce SDK และตัวอย่างเหล่านี้มีประสบการณ์ที่ดีที่สุดเท่าที่จะเป็นไปได้ และปัญหาที่ทราบทั้งหมดจะสามารถค้นหาได้ทางออนไลน์ เราจะติดตามปัญหาเหล่านี้และช่วยเหลือโดยเร็วที่สุด
หมายเหตุ: เพื่อประสบการณ์ที่ดีที่สุด โปรดจำกัดการใช้ส่วนปัญหาเพื่อรายงานปัญหาเกี่ยวกับ Commerce SDK และตัวอย่าง InStore
สาขาใน repo ได้รับการจัดระเบียบตามการเปิดตัวแอปพลิเคชัน Dynamics 365 Commerce แต่ละสาขาใน repo ชี้ไปที่การเปิดตัวแอปพลิเคชันของ Dynamics 365 Commerce ใช้สาขาการเปิดตัวที่ถูกต้องตามเวอร์ชันที่ใช้งานจริงของคุณ
ชื่อสาขาที่วางจำหน่าย | รุ่น | เวอร์ชันที่เผยแพร่แอปพลิเคชัน |
---|---|---|
ปล่อย/9.49 | 9.49.* | 10.0.39 |
ปล่อย/9.50 | 9.50.* | 10.0.40 |
ปล่อย/9.51 | 9.51.* | 10.0.41 |
ปล่อย/9.52 | 9.52.* | 10.0.42 |
สัญญาการค้า ข้อความ เอนทิตี และแพ็คเกจคำขอได้รับการเผยแพร่ในฟีดสาธารณะนี้สำหรับรหัสส่วนขยายการค้า เพื่อใช้และปรับแต่งฟังก์ชันการทำงานที่มีอยู่ หรือสร้างฟังก์ชันใหม่สำหรับผลิตภัณฑ์ Dynamics 365 Commerce
ใช้แพ็คเกจการค้าจากตำแหน่งนี้ ส่วนขยายสามารถเพิ่มตำแหน่งแหล่งที่มาของแพ็คเกจใน nuget.config ของไฟล์โครงการส่วนขยายได้
<แหล่งที่มาของแพ็คเกจ> <เพิ่มคีย์="dynamics365-commerce" value="https://pkgs.dev.azure.com/commerce-partner/Registry/_packaging/dynamics365-commerce/nuget/v3/index.json" /> <เพิ่มคีย์ = "nuget.org" ค่า = "https://api.nuget.org/v3/index.json" /> </แพ็คเกจซอร์ส>
ชื่อแพ็คเกจ | คำอธิบาย |
---|---|
Microsoft.Dynamics.Commerce.Sdk.ChannelDatabase | แพ็คเกจนี้จำเป็นสำหรับการสร้างแพ็คเกจ DB ด้วย CSU |
Microsoft.Dynamics.Commerce.Sdk.รันไทม์ | แพ็คเกจนี้ประกอบด้วยไลบรารีรันไทม์เชิงพาณิชย์ทั้งหมด |
Microsoft.Dynamics.Commerce.Sdk.ScaleUnit | แพ็คเกจนี้จำเป็นสำหรับการสร้างแพ็คเกจ CSU สำหรับการปรับใช้ |
Microsoft.Dynamics.Commerce.Sdk.Installers.ScaleUnit | แพ็คเกจนี้จำเป็นสำหรับการสร้างแพ็คเกจ ScaleUnit สำหรับการปรับใช้ |
Microsoft.Dynamics.Commerce.Sdk.HardwareAndPeripherals | แพ็คเกจนี้ประกอบด้วยสถานีฮาร์ดแวร์เชิงพาณิชย์และไลบรารีอุปกรณ์ต่อพ่วงทั้งหมด |
Microsoft.Dynamics.Commerce.Sdk.ตัวติดตั้ง | แพ็คเกจนี้ประกอบด้วยไลบรารีตัวติดตั้งทั้งหมด |
Microsoft.Dynamics.Commerce.Sdk.Installers.HardwareStation | แพ็คเกจนี้จำเป็นสำหรับการสร้างแพ็คเกจสถานีฮาร์ดแวร์สำหรับการปรับใช้ |
Microsoft.Dynamics.Commerce.Sdk.Installers.StoreCommerce | แพ็คเกจนี้จำเป็นสำหรับการสร้างตัวติดตั้งส่วนขยาย Store Commerce |
Microsoft.Dynamics.Commerce.Sdk.Pos | แพ็คเกจนี้ประกอบด้วยไลบรารี POS ทั้งหมด |
Microsoft.Dynamics.Commerce.Sdk.Installers.ModernPos | แพคเกจนี้จำเป็นสำหรับการสร้างตัวติดตั้งส่วนขยาย POS สำหรับการปรับใช้ |
Microsoft.Dynamics.Commerce.การวินิจฉัย | แพ็คเกจนี้ประกอบด้วยไลบรารีการวินิจฉัยทั้งหมด |
Microsoft.Dynamics.Commerce.Runtime.Data | แพ็คเกจนี้ประกอบด้วยไลบรารีสัญญาข้อมูลทั้งหมด |
Microsoft.Dynamics.Commerce.Runtime.DataServices.Messages | แพคเกจนี้ประกอบด้วยไลบรารีข้อความบริการข้อมูลทั้งหมด |
Microsoft.Dynamics.Commerce.Runtime.Entities | แพคเกจนี้มีข้อกำหนดเอนทิตีการค้าทั้งหมด |
Microsoft.Dynamics.Commerce.Runtime.Framework | แพคเกจนี้ประกอบด้วยไลบรารีกรอบงานการค้าทั้งหมด |
Microsoft.Dynamics.Commerce.Runtime.Hosting.Contracts | แพคเกจนี้ประกอบด้วยไลบรารีตัวควบคุมการค้าทั้งหมด |
Microsoft.Dynamics.Commerce.Runtime.Messages | แพ็คเกจนี้ประกอบด้วยไลบรารีข้อความรันไทม์เชิงพาณิชย์ทั้งหมด |
Microsoft.Dynamics.Commerce.Runtime.RealtimeServices.Messages | แพ็คเกจนี้ประกอบด้วยไลบรารีรันไทม์จริงของการค้าทั้งหมด |
Microsoft.Dynamics.Commerce.Runtime.Services.Messages | แพคเกจนี้ประกอบด้วยไลบรารีข้อความบริการเชิงพาณิชย์ทั้งหมด |
Microsoft.Dynamics.Commerce.HardwareStation.Core | แพ็คเกจนี้ประกอบด้วยไลบรารี HWS ทั้งหมด |
Microsoft.Dynamics.Commerce.HardwareStation.PeripheralRequests | แพ็คเกจนี้ประกอบด้วยไลบรารีคำขออุปกรณ์ต่อพ่วง HWS ทั้งหมด |
Microsoft.Dynamics.Commerce.HardwareStation.Peripherals.Contracts | แพคเกจนี้ประกอบด้วยไลบรารีสัญญาอุปกรณ์ต่อพ่วง HWS ทั้งหมด |
Microsoft.Dynamics.Commerce.HardwareStation.Peripherals.Entities | แพคเกจนี้ประกอบด้วยไลบรารีเอนทิตีอุปกรณ์ต่อพ่วง HWS ทั้งหมด |
Microsoft.Dynamics.Commerce.Installers.Framework | แพ็คเกจนี้ประกอบด้วยไลบรารีเฟรมเวิร์กตัวติดตั้งทั้งหมด |
Microsoft.Dynamics.Commerce.KeyVault.Contracts | แพ็คเกจนี้ประกอบด้วยไลบรารีสัญญา Key Vault ทั้งหมด |
Microsoft.Dynamics.Commerce.PaymentSDK.Extensions.Portable | แพ็คเกจนี้ประกอบด้วยไลบรารีส่วนขยายการชำระเงินทั้งหมด |
Microsoft.Dynamics.Commerce.PaymentSDK.พกพาได้ | แพ็คเกจนี้ประกอบด้วยไลบรารีการชำระเงินทั้งหมด |
Microsoft.Dynamics.Commerce.Runtime.FIF.Connector.Messages | แพคเกจนี้ประกอบด้วยไลบรารีตัวเชื่อมต่อ FIF ทั้งหมด |
Microsoft.Dynamics.Commerce.Runtime.FIF.DocumentProvider.Messages | แพคเกจนี้ประกอบด้วยไลบรารีผู้ให้บริการเอกสาร FIF ทั้งหมด |
Microsoft.Dynamics.Commerce.Installers.Framework.DatabaseExtensions | แพคเกจนี้ประกอบด้วยไลบรารีกรอบงานตัวติดตั้งฐานข้อมูลทั้งหมด |
Microsoft.Dynamics.Commerce.Tools.DbUtilities | แพคเกจนี้ประกอบด้วยไลบรารียูทิลิตี้ DB ทั้งหมด |
Microsoft.Dynamics.Commerce.Tools.ExtensionsProxyGenerator.AspNetCore | แพ็คเกจนี้ประกอบด้วยยูทิลิตี้ตัวสร้างพร็อกซีส่วนขยายทั้งหมด |
Microsoft.Dynamics.Commerce.Proxy.ScaleUnit | แพ็คเกจนี้ประกอบด้วยคลาสพร็อกซีทั้งหมดสำหรับแอปพลิเคชันส่วนขยายเพื่อใช้ Headless Commerce API ในโหมดออนไลน์ (เชื่อมต่อกับ Headless Commerce) |
รุ่นแพ็คเกจ | การเปิดตัวแอปพลิเคชัน |
---|---|
9.49.xx-ตัวอย่าง | 10.0.39 การเปิดตัว PEAP |
9.49.xx | 10.0.39 การแสดงตัวอย่างลูกค้า |
9.49.xx | 10.0.39 จอร์เจีย |
9.50.xx-ตัวอย่าง | 10.0.40 การเปิดตัว PEAP |
9.50.xx | 10.0.40 การแสดงตัวอย่างลูกค้า |
9.50.xx | 10.0.40 จอร์เจีย |
9.51.xx-ตัวอย่าง | 10.0.41 การเปิดตัว PEAP |
9.51.xx | 10.0.41 การแสดงตัวอย่างลูกค้า |
9.51.xx | 10.0.41 จอร์เจีย |
9.52.xx-ตัวอย่าง | 10.0.42 การเปิดตัว PEAP |
9.52.xx | 10.0.42 การแสดงตัวอย่างลูกค้า |
9.52.xx | 10.0.42 จอร์เจีย |
โปรเจ็กต์ส่วนขยายสามารถใช้เวอร์ชันที่ถูกต้องได้โดยเพิ่มการอ้างอิงแพ็คเกจให้กับโปรเจ็กต์ที่มีหมายเลขเวอร์ชันเต็ม หรือใช้ไวด์การ์ดเพื่อรับเวอร์ชันล่าสุดเสมอ ตัวเลือกที่แนะนำคือใช้หมายเลขเวอร์ชันเต็มและอัปเดตเวอร์ชันตามเวอร์ชันที่ใช้งานจริงของคุณ .
<PackageReference รวม = "Microsoft.Dynamics.Commerce.Sdk.Pos " รุ่น = "9.52.xx" />
หรือ
<PackageReference รวม = "Microsoft.Dynamics.Commerce.Sdk.Pos " รุ่น = "9.52.*" />
ทุกครั้งที่มีโปรแกรมแก้ไขด่วนและแอปพลิเคชันใหม่ แพ็คเกจเวอร์ชันใหม่จะถูกเผยแพร่ในฟีดสาธารณะเดียวกัน ใช้เวอร์ชันแพ็คเกจที่ถูกต้องตามเวอร์ชันที่จำเป็นสำหรับการเผยแพร่ของคุณ การใช้แพ็คเกจเวอร์ชันที่สูงกว่าเวอร์ชันแอปพลิเคชันที่ใช้งานจริงของคุณอาจส่งผลให้รันไทม์และการปรับใช้ล้มเหลว
ตั้งค่าไปป์ไลน์ Azure DevOps สำหรับการสร้างอัตโนมัติและการสร้างแพ็คเกจ:
ตั้งค่าไปป์ไลน์การสร้างสำหรับ Commerce SDK
แนวปฏิบัติที่ดีที่สุดและกลยุทธ์การแตกแขนง:
ข้อมูลโดยละเอียดเกี่ยวกับกลยุทธ์การแยกสาขา git โปรดดูเอกสารกลยุทธ์การแยกสาขา Git
กลยุทธ์การแยกสาขาต่อไปนี้ขึ้นอยู่กับวิธีที่เราใช้ Git ที่ Microsoft สำหรับข้อมูลเพิ่มเติม โปรดดูวิธีที่เราใช้ Git ที่ Microsoft
ทำให้กลยุทธ์สาขาของคุณเรียบง่าย สร้างกลยุทธ์ของคุณจากแนวคิดทั้งสามนี้:
ใช้สาขาฟีเจอร์สำหรับฟีเจอร์ใหม่ทั้งหมดและการแก้ไขข้อบกพร่อง
รวมสาขาคุณลักษณะเข้ากับสาขาหลักโดยใช้คำขอดึง
รักษาคุณภาพสาขาหลักให้ทันสมัยอยู่เสมอ
สร้างสาขาฟีเจอร์ใหม่สำหรับการพัฒนาและแก้ไขข้อบกพร่อง:
สร้างฟีเจอร์หลักสาขาใหม่สำหรับส่วนขยายของเรา ปฏิบัติตามหลักการตั้งชื่อที่ถูกต้อง (ดูเอกสารการแยกสาขา Git สำหรับหลักการตั้งชื่อตัวอย่าง)
สร้างสาขาการพัฒนาใหม่:
สร้างสาขาส่วนตัวสำหรับการพัฒนา:
git checkout -b ส่วนตัว/{ชื่อผู้ใช้}/{คุณลักษณะ/คำอธิบาย}
เพิ่มและยอมรับการเปลี่ยนแปลงใหม่ในสาขาการพัฒนาโดยใช้ git -add และ git commit -m" คอมมิตข้อความ"
หลังจากที่การพัฒนาเสร็จสิ้น ทดสอบ และยืนยันความถูกต้องแล้ว ให้พุชการเปลี่ยนแปลงไปยังสาขาหลักโดยทำ git push <remote> <สาขา>
git push origin {ชื่อสาขาส่วนตัว}
สร้างสาขาการเผยแพร่หลังการพัฒนา:
หลังจากการเปลี่ยนแปลงการพัฒนาที่พุชเข้าสู่สาขาหลัก ให้สร้างสาขารีลีสใหม่ และสร้างแพ็คเกจที่ปรับใช้ได้จากสาขารีลีส
Git checkout -b release/xxx
รวมการเปลี่ยนแปลงจากสาขาที่เผยแพร่กลับไปยังสาขาหลัก หากมีการเปลี่ยนแปลงใดๆ เกิดขึ้นในสาขาที่เผยแพร่
- git checkout master git merge release/x.x.x
สาขาโปรแกรมแก้ไขด่วนส่วนขยาย:
เช่นเดียวกับสาขาที่วางจำหน่าย ให้สร้างสาขาโปรแกรมแก้ไขด่วนสำหรับส่วนขยายจากสาขาหลัก และนำโปรแกรมแก้ไขออก แล้วรวมการเปลี่ยนแปลงกลับไปยังสาขาหลักในภายหลัง
รวมสาขาออกใหม่เข้ากับสาขาหลักและสาขาการพัฒนา:
หลังจากที่ตัวอย่างเวอร์ชันใหม่ออก หากจำเป็น ให้รวมสาขาการพัฒนาของคุณกับสาขาใหม่ Repo มีเพียงตัวอย่างเท่านั้น ดังนั้นจึงไม่จำเป็นต้องรับการเปลี่ยนแปลงที่อัปเดตจากสาขาเสมอไป
- git checkout master git merge release/x.x.x