سرویس غرفه، کاربر و محصول (مرکزی)
مدیریت غرفهداران، محصولات، روشهای ارسال، اطلاعات کاربران و موارد دیگر با استفاده از سرویس اصلی. این سرویس امکانات جامعی برای مدیریت موجودیتهای اصلی کسبوکار فراهم میکند؛ از جمله ایجاد و مدیریت غرفهداران، مدیریت محصولات، روشهای ارسال، احراز هویت و اطلاعات کاربران، حسابهای بانکی و دستهبندیها و ویژگیها.
فهرست مطالب
متدهای غرفه و محصول
متد | توضیحات | پارامترها |
---|---|---|
create_vendor() | ایجاد غرفهدار جدید | user_id , request: CreateVendorSchema |
update_vendor() | بروزرسانی غرفهدار | vendor_id , request: UpdateVendorSchema |
get_vendor() | دریافت جزئیات غرفهدار | vendor_id , prefer |
get_default_shipping_methods() | دریافت روشهای ارسال پیشفرض | None |
get_shipping_methods() | دریافت روشهای ارسال | ids , vendor_ids , include_deleted , page , per_page |
get_working_shipping_methods() | دریافت روشهای ارسال فعال | vendor_id |
update_shipping_methods() | بروزرسانی روشهای ارسال | vendor_id , request: UpdateShippingMethodSchema |
get_vendor_products() | دریافت محصولات غرفهدار | vendor_id , query_params: GetVendorProductsSchema |
update_vendor_status() | بروزرسانی وضعیت غرفهدار | vendor_id , request: UpdateVendorStatusSchema |
create_vendor_mobile_change_request() | ایجاد درخواست تغییر موبایل غرفهدار | vendor_id , request: ChangeVendorMobileRequestSchema |
create_vendor_mobile_change_confirmation() | تأیید تغییر موبایل غرفهدار | vendor_id , request: ChangeVendorMobileConfirmSchema |
create_product() | ایجاد محصول جدید (پشتیبانی از آپلود فایل) | vendor_id , request: ProductRequestSchema , photo_files , video_file |
update_bulk_products() | بروزرسانی چندین محصول | vendor_id , request: BatchUpdateProductsRequest |
update_product() | بروزرسانی محصول (پشتیبانی از آپلود فایل) | product_id , request: ProductRequestSchema , photo_files , video_file |
get_product() | دریافت جزئیات محصول | product_id , prefer |
get_products() | دریافت لیست محصولات | query_params: GetProductsQuerySchema , prefer |
create_products_bulk_action_request() | ایجاد بروزرسانیهای انبوه محصولات | vendor_id , request: BulkProductsUpdateRequestSchema |
update_product_variation() | بروزرسانی تنوع محصول | product_id , variation_id , request: UpdateProductVariationSchema |
get_products_bulk_action_requests() | دریافت وضعیت بروزرسانی انبوه | vendor_id , page , per_page |
get_products_bulk_action_requests_count() | دریافت تعداد بروزرسانیهای انبوه | vendor_id |
get_products_unsuccessful_bulk_action_requests() | دریافت بروزرسانیهای ناموفق | request_id , page , per_page |
get_product_shelves() | دریافت قفسههای محصول | product_id |
create_discount() | ایجاد تخفیف برای محصولات | vendor_id , request: CreateDiscountRequestSchema |
delete_discount() | حذف تخفیف برای محصولات | vendor_id , request: DeleteDiscountRequestSchema |
get_current_user() | دریافت اطلاعات کاربر فعلی | None |
create_user_mobile_confirmation_request() | ایجاد درخواست تأیید موبایل | user_id |
verify_user_mobile_confirmation_request() | تأیید موبایل کاربر | user_id , request: ConfirmCurrentUserMobileConfirmSchema |
create_user_mobile_change_request() | ایجاد درخواست تغییر موبایل | user_id , request: ChangeUserMobileRequestSchema |
verify_user_mobile_change_request() | تأیید تغییر موبایل | user_id , request: ChangeUserMobileConfirmSchema |
get_user_bank_accounts() | دریافت حسابهای بانکی کاربر | user_id , prefer |
create_user_bank_account() | ایجاد حساب بانکی کاربر | user_id , request: UserCardsSchema , prefer |
verify_user_bank_account_otp() | تأیید رمز یکبار مصرف حساب بانکی | user_id , request: UserCardsOtpSchema |
verify_user_bank_account() | تأیید حسابهای بانکی | user_id , request: UserVerifyBankInformationSchema |
delete_user_bank_account() | حذف حساب بانکی | user_id , bank_account_id |
update_user_bank_account() | بروزرسانی حساب بانکی | bank_account_id , request: UpdateUserBankInformationSchema |
update_user_verification() | بروزرسانی تأیید کاربر | user_id , request: UserVerificationSchema |
get_category_attributes() | دریافت ویژگیهای دستهبندی | category_id , product_id , vendor_id , exclude_multi_selects |
get_categories() | دریافت همه دستهبندیها | None |
get_category() | دریافت دستهبندی خاص | category_id |
مثالها
پیکربندی اولیه
from basalam_sdk import BasalamClient, PersonalToken
auth = PersonalToken(
token="your_access_token",
refresh_token="your_refresh_token"
)
client = BasalamClient(auth=auth)
ایجاد غرفهدار
from basalam_sdk.core.models import CreateVendorSchema
async def create_vendor_example():
vendor = await client.create_vendor(
user_id=123,
request=CreateVendorSchema(
title="My Store",
identifier="store123",
category_type=1,
city=1,
summary="A great store for all your needs"
)
)
return vendor
بهروزرسانی غرفهدار
from basalam_sdk.core.models import UpdateVendorSchema
async def update_vendor_example():
updated_vendor = await client.update_vendor(
vendor_id=456,
request=UpdateVendorSchema(
title="Updated Store Name",
summary="Updated description",
)
)
return updated_vendor
دریافت غرفهدار
async def get_vendor_example():
vendor = await client.get_vendor(
vendor_id=456,
prefer="return=minimal"
)
return vendor
دریافت روشهای ارسال پیشفرض
async def get_default_shipping_methods_example():
shipping_methods = await client.get_default_shipping_methods()
return shipping_methods
دریافت روشهای ارسال
async def get_shipping_methods_example():
shipping_methods = await client.get_shipping_methods()
return shipping_methods
دریافت روشهای ارسال فعال
async def get_working_shipping_methods_example():
working_methods = await client.get_working_shipping_methods(
vendor_id=456
)
return working_methods
پاسخ نمونه
[
ShippingMethodResponse(
id=6124304, method=ShippingMethodInfo(name='سفارشی', value=3197, description=None),
base_cost=460000, additional_cost=105000, is_private=False, additional_dimensions_cost=None, vendor_id=None, deleted_at=None
),
ShippingMethodResponse(
id=6124301, method=ShippingMethodInfo(name='پیشتاز', value=3198, description=None),
base_cost=570000, additional_cost=120000, is_private=False, additional_dimensions_cost=None, vendor_id=None, deleted_at=None
),
ShippingMethodResponse(
id=6124305, method=ShippingMethodInfo(name='پیک', value=3259, description=None),
base_cost=320000, additional_cost=35000, is_private=False, additional_dimensions_cost=None, vendor_id=None, deleted_at=None
)
]
بهروزرسانی روشهای ارسال
from basalam_sdk.core.models import UpdateShippingMethodSchema
async def update_shipping_methods_example():
updated_methods = await client.update_shipping_methods(
vendor_id=456,
request=UpdateShippingMethodSchema(
shipping_methods=[
{
"method_id": 3198,
"is_customized": True,
"base_cost": 50000
}
]
)
)
return updated_methods
دریافت محصولات غرفهدار
from basalam_sdk.core.models import GetVendorProductsSchema, ProductStatusInputEnum
async def get_vendor_products_example():
products = await client.get_vendor_products(
vendor_id=456,
query_params=GetVendorProductsSchema(
statuses=[ProductStatusInputEnum.PUBLISHED],
page=1,
per_page=10
)
)
return products
بهروزرسانی وضعیت غرفهدار
from basalam_sdk.core.models import UpdateVendorStatusSchema
async def update_vendor_status_example():
status_update = await client.update_vendor_status(
vendor_id=456,
request=UpdateVendorStatusSchema(
status=VendorStatusInputEnum.SEMI_ACTIVE,
description="Vendor is Semi Active"
)
)
return status_update
ایجاد درخواست تغییر موبایل غرفهدار
from basalam_sdk.core.models import ChangeVendorMobileRequestSchema
async def create_vendor_mobile_change_request_example():
result = await client.create_vendor_mobile_change_request(
vendor_id=456,
request=ChangeVendorMobileRequestSchema(
mobile="09123456789"
)
)
return result
تایید تغییر موبایل غرفهدار
from basalam_sdk.core.models import ChangeVendorMobileConfirmSchema
async def create_vendor_mobile_change_confirmation_example():
result = await client.create_vendor_mobile_change_confirmation(
vendor_id=456,
request=ChangeVendorMobileConfirmSchema(
mobile="09123456789",
verification_code=123456
)
)
return result
ایجاد محصول
from basalam_sdk.core.models import ProductRequestSchema, ProductStatusInputEnum, UnitTypeInputEnum
import io
async def create_product_example():
try:
with open("test1.png", "rb") as photo1, \
open("test2.png", "rb") as photo2:
request = ProductRequestSchema(
name="Product 01",
description="The material of this product is very high quality and made of silk.",
category_id=238,
primary_price=100000,
weight=300,
package_weight=500,
stock=10,
status=ProductStatusInputEnum.PUBLISHED,
unit_quantity= 10,
unit_type= UnitTypeInputEnum.NUMERIC
)
product = await client.core.create_product(456, request, photo_files=[photo1,photo2])
return product
بهروزرسانی چندین محصول
from basalam_sdk.core.models import BatchUpdateProductsRequest, UpdateProductRequestItem
async def update_bulk_products_example():
updated_products = await client.core.update_bulk_products(
vendor_id=456,
request=BatchUpdateProductsRequest(
data=[
UpdateProductRequestItem(
id=1,
name="Updated Product 01",
stock=25
),
UpdateProductRequestItem(
id=1,
stock=5,
primary_price=21000
)
]
)
)
return updated_products
بهروزرسانی یک محصول
from basalam_sdk.core.models import ProductRequestSchema
import io
async def update_product_example():
updated_product = await client.update_product(
product_id=789,
request=ProductRequestSchema(
status=3790,
product_attribute = [
{
"attribute_id": 219,
"value": "Suitable for formal ceremonies",
},
{
"attribute_id": 221,
"value": "Silk",
},
{
"attribute_id": 222,
"value": "Burgundy, Black, Turquoise",
},
{
"attribute_id": 1319,
"value": "Due to its sensitivity, this fabric should be hand washed gently with cold water.",
}
]
)
)
return updated_product
از این متد برای دریافت لیست ویژگیهای دستهبندی استفاده کنید.
دریافت جزئیات محصول
async def get_product_example():
product = await client.get_product(
product_id=24835037,
prefer="return=minimal"
)
return product
دریافت لیست محصولات
from basalam_sdk.core.models import GetProductsQuerySchema
async def get_products_example():
products = await client.get_products(
query_params=GetProductsQuerySchema(
page=1,
per_page=20,
sort="price:asc"
)
)
return products
ایجاد درخواست بهروزرسانی دستهای محصولات
from basalam_sdk.core.models import (
BulkProductsUpdateRequestSchema,
ProductFilterSchema,
BulkActionItem,
RangeFilterItem,
ProductBulkActionTypeEnum,
ProductBulkFieldInputEnum
)
async def create_products_bulk_action_request_example():
bulk_request = await client.core.create_products_bulk_action_request(
vendor_id=456,
request=BulkProductsUpdateRequestSchema(
product_filter=ProductFilterSchema(
stock=RangeFilterItem(
start=1,
end=5
)
),
action=[
BulkActionItem(
field=ProductBulkFieldInputEnum.STOCK,
action=ProductBulkActionTypeEnum.SET,
value=50
)
]
)
)
return bulk_request
بهروزرسانی تنوع محصول
from basalam_sdk.core.models import UpdateProductVariationSchema
async def update_product_variation_example():
updated_variation = await client.update_product_variation(
product_id=789,
variation_id=6639697,
request=UpdateProductVariationSchema(
primary_price=150000,
stock=100
)
)
return updated_variation
دریافت وضعیت بهروزرسانی دستهای
async def get_products_bulk_action_requests_example():
bulk_requests = await client.get_products_bulk_action_requests(
vendor_id=456,
page=1,
per_page=30
)
return bulk_requests
دریافت تعداد بهروزرسانیهای دستهای
async def get_products_bulk_action_requests_count_example():
counts = await client.get_products_bulk_action_requests_count(
vendor_id=456
)
return counts
دریافت بهروزرسانیهای ناموفق
async def get_products_unsuccessful_bulk_action_requests_example():
unsuccessful_products = await client.get_products_unsuccessful_bulk_action_requests(
request_id=123
)
return unsuccessful_products
دریافت قفسههای محصول
async def get_product_shelves_example():
shelves = await client.get_product_shelves(
product_id=789
)
return shelves
ایجاد تخفیف
from basalam_sdk.core.models import CreateDiscountRequestSchema, DiscountProductFilterSchema
async def create_discount_example():
discount = await client.create_discount(
vendor_id=456,
request=CreateDiscountRequestSchema(
product_filter=DiscountProductFilterSchema(
product_ids=[25010883, 24835037],
),
discount_percent=20,
active_days=5
)
)
return discount
حذف تخفیف
from basalam_sdk.core.models import DeleteDiscountRequestSchema, DiscountProductFilterSchema
async def delete_discount_example():
result = await client.create_discount(
vendor_id=456,
request=DeleteDiscountRequestSchema(
product_filter=DiscountProductFilterSchema(
product_ids=[25010883],
)
)
)
return result
دریافت اطلاعات کاربر جاری
async def get_current_user_example():
user = await client.get_current_user()
return user
ایجاد درخواست تایید موبایل کاربر
async def create_user_mobile_confirmation_request_example():
result = await client.create_user_mobile_confirmation_request(
user_id=123
)
return result
تایید درخواست تایید موبایل کاربر
from basalam_sdk.core.models import ConfirmCurrentUserMobileConfirmSchema
async def verify_user_mobile_confirmation_request_example():
result = await client.verify_user_mobile_confirmation_request(
user_id=123,
request=ConfirmCurrentUserMobileConfirmSchema(
verification_code=123456
)
)
return result
ایجاد درخواست تغییر موبایل کاربر
from basalam_sdk.core.models import ChangeUserMobileRequestSchema
async def create_user_mobile_change_request_example():
result = await client.create_user_mobile_change_request(
user_id=123,
request=ChangeUserMobileRequestSchema(
mobile="09123456789"
)
)
return result
تایید درخواست تغییر موبایل کاربر
from basalam_sdk.core.models import ChangeUserMobileConfirmSchema
async def verify_user_mobile_change_request_example():
result = await client.verify_user_mobile_change_request(
user_id=123,
request=ChangeUserMobileConfirmSchema(
mobile="09123456789",
verification_code=123456
)
)
return result
دریافت حسابهای بانکی کاربر
async def get_user_bank_accounts_example():
bank_accounts = await client.get_user_bank_accounts(
user_id=123
)
return bank_accounts
ایجاد حساب بانکی کاربر
from basalam_sdk.core.models import UserCardsSchema
async def create_user_bank_account_example():
bank_account = await client.create_user_bank_account(
user_id=123,
request=UserCardsSchema(
card_number="1234567890123456"
)
)
return bank_account
تایید حساب بانکی کاربر OTP
from basalam_sdk.core.models import UserCardsOtpSchema
async def verify_user_bank_account_otp_example():
result = await client.verify_user_bank_account_otp(
user_id=123,
request=UserCardsOtpSchema(
card_number="1234567890123456",
otp_code="123456"
)
)
return result
تایید حساب بانکی کاربر
bank_information_id
در خروجی متد verify_user_bank_account_otp
قرار دارد و باید به متد verify_user_bank_account
ارسال شود تا اطلاعات بانکی جدید که بهتازگی اضافه شده است، تأیید گردد.
from basalam_sdk.core.models import UserVerifyBankInformationSchema
async def verify_user_bank_account_example():
result = await client.verify_user_bank_account(
user_id=123,
request=UserVerifyBankInformationSchema(
bank_information_id=1,
national_code="1234567890",
birthday="1990-01-01"
)
)
return result
حذف حساب بانکی کاربر
async def delete_user_bank_account_example():
result = await client.delete_user_bank_account(
user_id=123,
bank_account_id=1
)
return result
بهروزرسانی حساب بانکی کاربر
from basalam_sdk.core.models import UpdateUserBankInformationSchema
async def update_user_bank_account_example():
result = await client.update_user_bank_account(
bank_account_id=1,
request=UpdateUserBankInformationSchema(
user_id=123
)
)
return result
بهروزرسانی تایید کاربر
from basalam_sdk.core.models import UserVerificationSchema
async def update_user_verification_example():
user = await client.update_user_verification(
user_id=123,
request=UserVerificationSchema(
national_code="1234567890",
birthday="1990-01-01"
)
)
return user
دریافت ویژگیهای یک دستهبندی
async def get_category_attributes_example():
attributes = await client.get_category_attributes(
category_id=1066
)
return attributes
دریافت دستهبندیها
async def get_categories_example():
categories = await client.get_categories()
return categories
دریافت جزئیات یک دستهبندی
async def get_category_example():
category = await client.get_category(
category_id=1066
)
return category