Sử dụng Python cho API của Shoplazza: Nghiên cứu trường hợp về quản lý đơn hàng

By manhnv, at: 10:53 Ngày 15 tháng 5 năm 2024

Thời gian đọc ước tính: __READING_TIME__ phút

Leveraging Python for Shoplazza API: A Case Study on Order Management
Leveraging Python for Shoplazza API: A Case Study on Order Management

Giới thiệu

 

Chào mừng bạn đến với một bài viết khác trong loạt bài của chúng tôi, "Tận dụng Python cho API." Trong phần này, chúng ta sẽ tìm hiểu cách sử dụng Python để tương tác với API Shoplazza để quản lý đơn hàng. Hướng dẫn này bao gồm các kiến thức cơ bản về việc thực hiện các cuộc gọi API đến Shoplazza bằng Python, minh họa thông qua một nghiên cứu điển hình trong thực tế cách tiếp cận này có thể giúp đơn giản hóa quy trình quản lý đơn hàng của bạn.

 

Hãy tưởng tượng bạn là chủ doanh nghiệp sử dụng Shoplazza cho cửa hàng trực tuyến của mình. Bạn cần cập nhật các chi tiết cụ thể trên nhiều đơn hàng thường xuyên. Việc cập nhật thủ công thông qua giao diện người dùng của Shoplazza rất tốn thời gian và nhàm chán. Python và API Shoplazza có thể tự động hóa nhiệm vụ này, giúp bạn tiết kiệm thời gian và giảm lỗi.

 

Trong hướng dẫn này, bạn sẽ học cách thiết lập môi trường, xác thực với API Shoplazza, lấy đơn hàng và cập nhật chúng. Chúng ta cũng sẽ đề cập đến việc xử lý lỗi và các thực tiễn tốt nhất để cấu trúc mã của bạn.

 

Kết thúc hướng dẫn này, bạn sẽ có sự hiểu biết vững chắc về cách sử dụng Python để tương tác với API Shoplazza và áp dụng kiến thức này vào nhu cầu kinh doanh của riêng bạn. Hãy bắt đầu và tự động hóa việc quản lý đơn hàng của bạn!

 

Tổng quan về API Shoplazza

 

API Shoplazza là một dịch vụ web RESTful sử dụng OAuth 2.0 để xác thực và ủy quyền. Nó cho phép các ứng dụng của bên thứ ba tương tác với nền tảng Shoplazza, cho phép thực hiện nhiều tác vụ như truy vấn dữ liệu, gửi giao dịch và hơn thế nữa.

 

Shoplazza cũng cung cấp phương pháp tích hợp thông qua Mã thông báo truy cập ứng dụng riêng tư, không yêu cầu OAuth 2.0 (đây là phương pháp chúng ta sẽ sử dụng hôm nay).

 

Các điểm cuối chính:

 

  • Đơn hàng:
     
    • Điểm cuối/openapi/2020-07/orders
       
    • Phương thứcGET, POST, PUT
       
    • Mô tả: Cho phép truy xuất, tạo và cập nhật đơn hàng trong Shoplazza. Điều này rất cần thiết để quản lý doanh số bán hàng và đảm bảo hồ sơ đơn hàng chính xác.
       
    • Tham khảohttps://www.shoplazza.dev/v2020.07/reference/order
       
  • Sản phẩm:
     
    • Điểm cuối/openapi/2020-07/products
       
    • Phương thứcGET, POST, PUT
       
    • Mô tả: Cho phép truy cập vào thông tin sản phẩm, cho phép bạn quản lý danh mục sản phẩm một cách hiệu quả.
       
    • Tham khảohttps://www.shoplazza.dev/v2020.07/reference/product
       
  • Khách hàng:
     
    • Điểm cuối/openapi/2020-07/customers
       
    • Phương thứcGET, POST, PUT
       
    • Mô tả: Hỗ trợ quản lý thông tin chi tiết khách hàng, rất quan trọng để duy trì hồ sơ khách hàng chính xác và cập nhật.
       
    • Tham khảohttps://www.shoplazza.dev/v2020.07/reference/customer
       

Để biết thêm tài liệu chi tiết, vui lòng tham khảo Tài liệu API Shoplazza.

LƯU Ý: Trong bài đăng trên blog này, tôi sẽ trình bày cách sử dụng điểm cuối Đơn hàng để minh họa các ví dụ. Điểm cuối này rất quan trọng để quản lý doanh số bán hàng hiệu quả và cung cấp một cách toàn diện để giới thiệu các khả năng của API Shoplazza.

 

Cấu hình môi trường phát triển

 

Đầu tiên, để tích hợp/gọi API Shoplazza, bạn sẽ cần một cửa hàng trên Shoplazza, nếu bạn chưa biết cách, bạn có thể làm theo hướng dẫn này trên Cách bắt đầu một cửa hàng trực tuyến với Shoplazza

 

Tiếp theo, bạn cần tạo một Ứng dụng riêng tư trên cửa hàng mà bạn vừa tạo, điều này sẽ cung cấp cho bạn Mã thông báo truy cập để truy cập ứng dụng thông qua các cuộc gọi API, hãy làm theo hướng dẫn này: Cách tạo Ứng dụng riêng tư của Shoplazza

 

Cuối cùng, hãy thiết lập môi trường phát triển của bạn với các gói cần thiết.

 

  1. Cài đặt Python: Đảm bảo bạn đã cài đặt Python. Bạn có thể tải xuống từ Trang web chính thức của Python.
     

  2. Tạo một môi trường ảo:
     

    python -m venv venv # tạo môi trường ảo
    source venv/bin/activate # kích hoạt môi trường ảo
  3. Cài đặt các phụ thuộc cần thiết:
     

    pip install requests # thư viện để thực hiện yêu cầu HTTP(s) trong python
    pip install ipython # shell tương tác hữu ích cho phát triển python

 

Sau khi hoàn tất tất cả các cài đặt, bạn có thể truy cập shell bằng lệnh:

ipython

 

Xác thực với API Shoplazza

 

Để thực hiện các cuộc gọi API, bạn cần xác thực với Shoplazza bằng Mã thông báo truy cập từ bước trước. Để làm như vậy, bạn chỉ cần gọi API với khóa Access-Token trong tiêu đề yêu cầu

 

Ngoài ra, điểm cuối url để gọi là https://{your_store_domain}.myshoplaza.com, trong đó your_store_domain là tên miền cửa hàng của bạn (Để biết thêm thông tin, vui lòng tham khảo API Url trong Shoplazza).

 

Dưới đây là một đoạn mã mẫu về cách truyền Mã thông báo truy cập vào tiêu đề yêu cầu:

 

LƯU Ý: Đoạn mã bên dưới không gọi bất kỳ API nào, chỉ để cho thấy định dạng của tiêu đề bạn cần viết để gọi API Shoplazza, vì vậy bạn không cần sao chép hoặc chạy nó.

 

import requests


# Mã thông báo truy cập Shoplazza của bạn
access_token = ""


# Điểm cuối Shoplazza bạn muốn gọi
store_domain = ""
url = f"https://{store_domain}.myshoplaza.com"


# Tiêu đề
headers = {
    'Access-Token': access_token, # thêm khóa Access-Token vào tiêu đề của bạn khi thực hiện yêu cầu
    'Content-Type': 'application/json' # nội dung phải ở định dạng json
}


# Thực hiện cuộc gọi API
response = requests.get(url, headers=headers)

 

Lấy đơn hàng

 

Sử dụng API Đơn hàng để lấy đơn hàng từ tài khoản Shoplazza của bạn.

 

import requests


# Mã thông báo truy cập Shoplazza của bạn
access_token = ""


# Điểm cuối Shoplazza bạn muốn gọi
store_domain = ""
url = f"https://{store_domain}.myshoplaza.com"


# Url đơn hàng
postfix = "/openapi/2020-07/orders"
orders_url = f"{url}{postfix}"


# Tiêu đề
headers = {
    'Access-Token': access_token,
    'Content-Type': 'application/json'
}


# Thực hiện yêu cầu
response = requests.get(orders_url, headers=headers)


# Kiểm tra mã trạng thái phản hồi
if response.status_code == 200:
    orders = response.json()
    print(orders)
else:
    print(f"Error: {response.status_code}")
    print(response.text)

 

Chạy đoạn mã trên sẽ cho bạn kết quả sau, chứa tất cả các đơn hàng trong cửa hàng của bạn:

 

{
    "orders": [
        {
            "id": "1317632-00000007",
            "note": "Total tax amount is: 47.011624",
            "number": "00000007",
            "financial_status": "paid",
            "status": "placed",
            "cancel_reason": "",
            "payment_method": "markpay",
            "fulfillment_status": "waiting",
            "discount_code": "",
            "customer_note": "",
            "tags": "",
            "created_at": "2024-04-01T04:42:07Z",
            "updated_at": "2024-04-01T04:48:38Z",
            "canceled_at": None,
            "customer_deleted_at": None,
            "deleted_at": None,
            "placed_at": "2024-04-01T04:42:07Z",
            "browser_ip": "210.245.54.99",
            "payment_line": {
                "payment_channel": "markpay",
                "payment_method": "markpay",
                "transaction_no": "",
                "merchant_id": "",
                "merchant_email": "",
            },
            "refund_status": "",
            "line_items": [
                {
                    "id": "331a7e13-8697-4a62-8acb-fa747a0ae33b",
                    "product_id": "fd3cba17-73b4-407c-962b-27012217ef57",
                    "variant_id": "b7156f30-cc6d-48c2-a01b-03661f48b5bf",
                    "variant_title": "",
                    "product_title": "Frankenstein",
                    "product_handle": "frankenstein",
                    "quantity": 1,
                    "note": "",
                    "fulfillment_status": "waiting",
                    "sku": "FRANK",
                    "weight_unit": "kg",
                    "vendor": "",
                    "product_url": "/products/frankenstein",
                    "refund_quantity": 0,
                    "refund_total": "0.00",
                    "image": "//img.fantaskycdn.com/746e4ea66311e9fc51ea6181d8cf7283.jpeg",
                    "price": "873.90",
                    "compare_at_price": "0.00",
                    "weight": 0,
                    "total": "873.90",
                },
                {
                    "id": "fc38e511-711a-472b-951a-376594a51c6b",
                    "product_id": "7047cbb4-6146-419f-bc07-64da7d37e40e",
                    "variant_id": "100e3057-e29d-4cb1-a05f-eafd22b54ddb",
                    "variant_title": "",
                    "product_title": "The Great Gatsby",
                    "product_handle": "the-great-gatsby",
                    "quantity": 1,
                    "note": "",
                    "fulfillment_status": "waiting",
                    "sku": "TGG",
                    "weight_unit": "kg",
                    "vendor": "",
                    "product_url": "/products/the-great-gatsby",
                    "refund_quantity": 0,
                    "refund_total": "0.00",
                    "image": "//img.fantaskycdn.com/7b77bd990f7a94f30c13a176dde374eb.jpeg",
                    "price": "123.80",
                    "compare_at_price": "0.00",
                    "weight": 0,
                    "total": "123.80",
                },
            ],
            "fulfillments": [],
            "landing_site": "",
            "buyer_accepts_marketing": False,
            "currency": "USD",
            "total_price": "997.70",
            "total_discount": "0.00",
            "total_tax": "0.00",
            "total_shipping": "0.00",
            "sub_total": "997.70",
            "code_discount_total": "0.00",
            "line_item_discount_total": "0.00",
            "total_refund_price": "0.00",
            "total_refund_tax": "0.00",
            "total_refund_discount": "0.00",
            "shipping_line": {"name": "Sample rate"},
            "customer": {
               
Tag list:
- Python
- Glinteco
- Python Web
- Python Development
- Python Developer
- Integration Test
- Automation
- Integration

Theo dõi

Theo dõi bản tin của chúng tôi và không bao giờ bỏ lỡ những tin tức mới nhất.