Ví dụ SunzhongweiProductImport - Web cá độ bóng đá

/imgposts/fr94cyvo.jpg

Việc nhập CSV hàng loạt thủ công thông qua giao diện quản trị Magento Admin quá chậm, đặc biệt khi có số lượng lớn sản phẩm. Người dùng phải chờ đợi một thời gian dài để hoàn tất quy trình.

Nếu có thể tự động hóa việc nhập các tệp CSV hàng loạt thông qua chương trình, hiệu quả sẽ được cải thiện đáng kể. Điều này giúp giảm thiểu các thao tác thủ công phức tạp và tiết kiệm thời gian đáng kể. Tuy nhiên, Magento không hỗ trợ API RESTful hoặc lệnh dòng lệnh để thực hiện chức năng này, vì vậy cần tìm kiếm giải pháp khác.

Trên mạng có một phương án khá khả thi:

Giải pháp đề xuất là sử dụng mô-đun tùy chỉnh. Vậy mô-đun tùy chỉnh Magento là gì?

Mô-đun tùy chỉnh trong Magento 2 được thiết kế để thêm các tính năng hoặc đặc điểm cụ thể vào cửa hàng trực tuyến. Nó cho phép nhà phát triển mở rộng, tùy chỉnh hoặc sửa đổi hành vi mặc định của Magento mà không cần thay đổi mã lõi. Mô-đun tùy chỉnh có thể giới thiệu các loại sản phẩm mới, cổng thanh toán, phương thức vận chuyển hoặc các chức năng khác để đáp keo nha cái ứng nhu cầu kinh doanh độc đáo.

Tên của mô-đun tùy chỉnh trong Magento tuân theo cấu trúc: VendorName_ModuleName.

  • VendorName: Là tên của nhà phát triển hoặc công ty.
  • ModuleName: Là tên của mô-đun.

Ví dụ: Sunzhongwei_ProductImport. Để tương ứng với tên này, cần tạo một thư mục có tên Sunzhongwei/ProductImport trong thư mục app/code. Lưu ý rằng thư mục code không tồn tại sẵn trong thư mục app, nên cần tạo thủ công:

# ls app/
autoload.php bootstrap.php design etc
# mkdir -p code/Sunzhongwei/ProductImport

Trong thư mục app/code/Sunzhongwei/ProductImport, tạo một thư mục con có tên etc.

Tiếp theo, tạo tệp: app/code/Sunzhongwei/ProductImport/etc/crontab.xml

<?xml version="1.0"?>
<config xmlns:xsi="xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
  <group id="default">
    <job name="import_products" instance="Sunzhongwei\ProductImport\Cron\ImportProducts" method="execute">
      <schedule>*/5 * * * *</schedule>
    </job>
  </group>
</config>

Tác dụng của đoạn mã trên là lên lịch chạy nhiệm vụ nhập sản phẩm mỗi 5 phút một lần.