MongoDB là gì?
MongoDB là cơ sở dữ liệu NoQuery có thể được sử dụng thành công trong các ứng dụng hiện đại, phức tạp. Nó lưu trữ dữ liệu trong các tài liệu linh hoạt, giống như JSON. Với mô hình tài liệu, MongoDB rất đơn giản để các nhà phát triển học hỏi và sử dụng. Ngay cả khi nó dễ sử dụng, nó vẫn cung cấp tất cả các tính năng được yêu cầu trong các dự án phức tạp.
Một bản ghi trong MongoDB là một tài liệu, dữ liệu có cấu trúc được lưu trữ trong tài liệu dưới dạng một cặp trường và giá trị.
{
"_id" : "5d270bab9a0c053494dfb5e5",
"GenericAttributes" : [],
"ProductTypeId" : 5,
"Name" : "Build your own computer",
"SeName" : "build-your-own-computer",
"ShortDescription" : "Build it",
...
}
& nbsp; Trong bài viết này, bạn sẽ tìm hiểu cách chúng tôi xử lý dữ liệu thương mại điện tử trong chúng tôi dựa trên thương mại điện tử MongoDB - GRANDNODE. & NBSP;
Danh mục sản phẩm
Một danh mục sản phẩm không có gì nhiều hơn một bộ sưu tập tất cả các dữ liệu liên quan đến sản phẩm, danh mục, thương hiệu, đánh giá sản phẩm và tóm tắt, mọi thứ có sẵn để bán trong cửa hàng của bạn.
Dữ liệu danh mục thường chứa các dữ liệu sau:
- SKU- Giá- Tên sản phẩm- Mô tả sản phẩm- Số lượng- Lập bản đồ danh mục [Danh mục, Bộ sưu tập, Thương hiệu]- Đánh giá sản phẩm
- Price
- Product name
- Product description
-
Quantity
- Catalog mapping [categories, collections, brands]
- Product reviews
Ví dụ về bộ sưu tập sản phẩm từ Grandnode, nền tảng thương mại điện tử nguồn mở NoQuery của chúng tôi:
{
"_id" : "5d270bab9a0c053494dfb5e5",
"GenericAttributes" : [],
"ProductTypeId" : 5,
"Name" : "Build your own computer",
"SeName" : "build-your-own-computer",
"ShortDescription" : "Build it",
...
}
Mua sắm dữ liệu giỏ hàng
Giỏ hàng cung cấp cho người dùng khả năng chọn và mua các mặt hàng từ danh mục sản phẩm. Nó là một trong những cơ sở của Thương mại điện tử. Trong ông nội, dữ liệu giỏ hàng [và dữ liệu danh sách mong muốn] là một phần của bộ sưu tập khách hàng. Bạn có thể tìm thấy thông tin đó trên mọi khách hàng, chỉ cần tìm & NBSP; "ShoppingCartitems": [], Field."ShoppingCartItems" : [], field.
{
"ShoppingCartItems" : [
{
"_id" : " ",
"StoreId" : " ",
"WarehouseId" : null,
"ShoppingCartTypeId" : 1,
"ProductId" : " ",
"Attributes" : [],
"EnteredPrice" : null,
"Quantity" : 1,
"RentalStartDateUtc" : null,
"RentalEndDateUtc" : null,
"CreatedOnUtc" : ISODate["2021-07-29T09:56:46.732Z"],
"UpdatedOnUtc" : ISODate["2021-07-29T09:56:46.732Z"],
"IsFreeShipping" : false,
"IsGiftVoucher" : false,
"IsShipEnabled" : true,
"AdditionalShippingChargeProduct" : 0.0,
"IsTaxExempt" : false,
"ReservationId" : "",
"Parameter" : "",
"Duration" : "",
"cId" : null
}
]
}
Dữ liệu khách hàng
Dữ liệu khách hàng là một trong những phần quan trọng nhất của mỗi thương mại điện tử. Nó chứa dữ liệu nhạy cảm, nó chứa rất nhiều dữ liệu liên quan đến đơn đặt hàng của khách hàng của bạn. & NBSP;
{
"_id" : "60b4a9c2a5556de7b1509696",
"UserFields" : [],
"OrderGuid" : LUUID["6370faba-eb20-6a4e-b3e9-80153d72b4b0"],
"OrderNumber" : 1,
"Code" : "4HCYYEFQ",
"StoreId" : "60b49fcc692073f53126ff1d",
"CustomerId" : "60b49fcc692073f531270078",
"OwnerId" : "60b49fcc692073f531270078",
"SeId" : null,
"PickUpInStore" : false,
"OrderStatusId" : 30,
"ShippingStatusId" : 40,
"PaymentStatusId" : 30,
"PaymentMethodSystemName" : "Payments.CashOnDelivery",
"PaymentOptionAttribute" : null,
"CustomerCurrencyCode" : "USD",
"PrimaryCurrencyCode" : "USD",
"CurrencyRate" : 1.0,
"Rate" : 1.0,
[...]
}
Dữ liệu đặt hàng
Bộ sưu tập đặt hàng Cửa hàng dữ liệu về mọi giao dịch được thực hiện trong cửa hàng của bạn. Nó chứa thông tin về các đơn đặt hàng đang chờ xử lý, xử lý và tất cả các đơn đặt hàng đã được hoàn thành. & NBSP;
Để thu thập thứ tự, bạn sẽ tìm thấy thông tin như:
- Email của khách hàng,- Trạng thái đặt hàng,- Địa chỉ thanh toán,- Địa chỉ vận chuyển,- Phương thức thanh toán,- Phương thức vận chuyển,
- order status,
- billing address,
- shipping address,
- payment method,
- shipping method,
và nhiều cái khác. Dưới đây bạn có thể tìm thấy một ví dụ về nó:
{
"CustomerEmail" : "",
"FirstName" : null,
"LastName" : null,
"OrderSubtotalInclTax" : 1800.0,
"OrderSubtotalExclTax" : 1800.0,
"OrderSubTotalDiscountInclTax" : 0.0,
"OrderSubTotalDiscountExclTax" : 0.0,
"OrderShippingInclTax" : 0.0,
"OrderShippingExclTax" : 0.0,
"PaymentMethodAdditionalFeeInclTax" : 0.0,
"PaymentMethodAdditionalFeeExclTax" : 0.0,
"OrderTax" : 0.0,
"OrderDiscount" : 0.0,
"OrderTotal" : 1800.0,
"PaidAmount" : 1800.0,
"PaidDateUtc" : ISODate["2021-05-31T09:18:54.588Z"],
"RefundedAmount" : 0.0
}
Giao dịch thanh toán
Trong một trong những bài đăng trên blog của chúng tôi, bạn đã có thể về một cách xử lý đơn đặt hàng mới. Chúng tôi đã giới thiệu các giao dịch thanh toán và kể từ khi Grandnode 2.0, nó lưu trữ dữ liệu liên quan đến thanh toán. & NBSP;
Trong Grandnode, chúng tôi không lưu trữ dữ liệu thẻ tín dụng nhạy cảm, các nhà cung cấp thanh toán chịu trách nhiệm cho nó. Nếu bạn muốn giữ chúng trong cơ sở dữ liệu của mình, hãy nhớ về việc mã hóa. & NBSP;
Ví dụ về giao dịch thanh toán:
{
"_id" : " ",
"UserFields" : [],
"PaymentMethodSystemName" : "Payments.CashOnDelivery",
"TransactionStatus" : 20,
"StoreId" : "60b49fcc692073f53126ff1d",
"OrderGuid" : LUUID["6370faba-eb20-6a4e-b3e9-80153d72b4b0"],
"OrderCode" : "4HCYYEFQ",
"CustomerId" : "60b49fcc692073f531270078",
"CustomerEmail" : "",
"CurrencyCode" : "USD",
"CurrencyRate" : 1.0,
"TransactionAmount" : 1800.0,
"PaidAmount" : 1800.0,
"RefundedAmount" : 0.0,
"IPAddress" : "::1",
"AuthorizationTransactionId" : null,
"AuthorizationTransactionCode" : null,
"AuthorizationTransactionResult" : null,
"CaptureTransactionId" : null,
"CaptureTransactionResult" : null,
"Description" : null,
"AdditionalInfo" : null,
"CustomValues" : {},
"Errors" : [],
"CreatedOnUtc" : ISODate["2021-05-31T09:17:54.850Z"],
"UpdatedOnUtc" : null,
"Temp" : false
}
Nếu bạn muốn tìm hiểu thêm về việc sử dụng các giao dịch thanh toán, bạn chắc chắn nên kiểm tra một bài đăng trên blog.
Dữ liệu nội dung
Dữ liệu nội dung có liên quan đến tất cả các công cụ xung quanh quản lý nội dung, như blog, mẫu tin nhắn, phần tin tức, cơ sở kiến thức, khóa học. & NBSP;
Ví dụ từ bộ sưu tập blog:
{
"_id" : "60b49fd1692073f531271b24",
"UserFields" : [],
"Title" : "How GrandNode became the real open-source e-Commerce platform?",
"PictureId" : null,
"Body" : "Body of the post
",
"BodyOverview" : "Body overview
",
"AllowComments" : false,
"CommentCount" : 0,
"Tags" : "e-commerce, blog, moey",
"StartDateUtc" : null,
"EndDateUtc" : null,
"MetaKeywords" : null,
"MetaDescription" : null,
"MetaTitle" : null,
"LimitedToStores" : false,
"Stores" : [],
"Locales" : [],
"SeName" : "how-grandnode-became-the-real-open-source-e-commerce-platform",
"CreatedOnUtc" : ISODate["2021-05-31T08:35:29.226Z"]
}
Ví dụ từ bộ sưu tập tin tức:
{
"_id" : " ",
"UserFields" : [],
"Title" : "About Grandnode",
"PictureId" : null,
"SeName" : "about-grandnode",
"Short" : " Short description ",
"Full" : "Body of the news
",
"Published" : true,
"StartDateUtc" : null,
"EndDateUtc" : null,
"AllowComments" : false,
"CommentCount" : 0,
"LimitedToStores" : false,
"Stores" : [],
"Locales" : [],
"MetaKeywords" : null,
"MetaDescription" : null,
"MetaTitle" : null,
"CreatedOnUtc" : ISODate["2021-05-31T08:35:29.247Z"],
"LimitedToGroups" : false,
"CustomerGroups" : [],
"NewsComments" : []
}
Example from message templates:{
"_id" : " ",
"UserFields" : [],
"Name" : "AuctionEnded.CustomerNotificationWin",
"BccEmailAddresses" : null,
"Subject" : "{{Store.Name}}. Auction ended.",
"Body" : "Hello, {{Customer.FullName}}!
At {{Auctions.EndTime}} you have won {{Auctions.ProductName}} for {{Auctions.Price}}. Visit cart to finish checkout process.
",
"IsActive" : true,
"DelayBeforeSend" : null,
"DelayPeriodId" : 0,
"AttachedDownloadId" : null,
"EmailAccountId" : " ",
"LimitedToStores" : false,
"Stores" : [],
"Locales" : []
}
Gridfs
Gridfs & nbsp; là một đặc điểm kỹ thuật để lưu trữ và truy xuất các tệp vượt quá & nbsp; BSON-DOCUM số & NBSP; Giới hạn kích thước & nbsp; của 16 MB. & NBSP; Chunk như một tài liệu riêng biệt. Đó là lý do tại sao trong cơ sở dữ liệu của cửa hàng của bạn, bạn sẽ tìm thấy hai bộ sưu tập fs.files và fs.chunks. & Nbsp;
Chúng tôi sử dụng Gridfs trong thương mại điện tử MongoDB của chúng tôi để lưu trữ các tệp đính kèm mà bạn tải lên cửa hàng. & NBSP;
Làm thế nào để chúng tôi lưu trữ hình ảnh trong MongoDB?
Hình ảnh được lưu trữ trong bộ sưu tập hình ảnh. Chúng tôi giữ chúng như một nhị phân. Trong MongoDB, các nhị phân có thể có kích thước 4MB. & Nbsp;
Theo mặc định, Grandnode - MongoDB Thương mại điện tử, lưu trữ hình ảnh trong hệ thống tệp. Nếu bạn muốn lưu trữ chúng trong cơ sở dữ liệu, bạn chỉ cần chỉnh sửa cài đặt phương tiện trong bảng quản trị.
Ví dụ về yếu tố thu thập hình ảnh:
{
"_id" : "5d270baa9a0c053494dfb5a1",
"GenericAttributes" : [],
"PictureBinary" : { "$binary" : "[base64 binary]", "$type" : "00" },
"MimeType" : "image/jpeg",
"SeoFilename" : "computers",
"AltAttribute" : null,
"TitleAttribute" : null,
"IsNew" : false
}
Còn các giao dịch ở MongoDB thì sao?
Nhiều người đưa ra MongoDB, thiếu các giao dịch trên các bộ sưu tập như là bằng chứng cho thấy nó không phù hợp với các ứng dụng thương mại điện tử. Thành thật mà nói kể từ lần phát hành đầu tiên của chúng tôi vào năm 2015 và thông qua rất nhiều dự án đã hoàn thành, đó không phải là vấn đề và giới hạn cho đến nay. & NBSP;