Skip to Content
مستندات SDKPHPکاربر، غرفه و محصول

سرویس غرفه، کاربر و محصول (مرکزی)

مدیریت غرفه‌داران، محصولات، روش‌های ارسال، اطلاعات کاربران و موارد دیگر با استفاده از سرویس اصلی. این سرویس امکانات جامعی برای مدیریت موجودیت‌های اصلی کسب‌وکار فراهم می‌کند؛ از جمله ایجاد و مدیریت غرفه‌داران، مدیریت محصولات، روش‌های ارسال، احراز هویت و اطلاعات کاربران، حساب‌های بانکی و دسته‌بندی‌ها و ویژگی‌ها.

فهرست مطالب

متدهای غرفه و محصول

متدتوضیحاتپارامترها
createVendor()ایجاد غرفه‌دار جدیدuserId, request: CreateVendorSchema
updateVendor()به‌روزرسانی غرفه‌دارvendorId, request: UpdateVendorSchema
getVendor()دریافت جزئیات غرفه‌دارvendorId, prefer
getDefaultShippingMethods()دریافت روش‌های ارسال پیش‌فرض-
getShippingMethods()دریافت روش‌های ارسالids, vendorIds, includeDeleted, page, perPage
getWorkingShippingMethods()دریافت روش‌های ارسال فعالvendorId
updateShippingMethods()به‌روزرسانی روش‌های ارسالvendorId, request: UpdateShippingMethodSchema
getVendorProducts()دریافت محصولات غرفه‌دارvendorId, queryParams: GetVendorProductsSchema
updateVendorStatus()به‌روزرسانی وضعیت غرفه‌دارvendorId, request: UpdateVendorStatusSchema
createVendorMobileChangeRequest()ایجاد درخواست تغییر موبایل غرفه‌دارvendorId, request: ChangeVendorMobileRequestSchema
createVendorMobileChangeConfirmation()تأیید تغییر موبایل غرفه‌دارvendorId, request: ChangeVendorMobileConfirmSchema
createProduct()ایجاد محصول جدید (پشتیبانی از آپلود فایل)vendorId, request: ProductRequestSchema, photoFiles, videoFile
updateBulkProducts()به‌روزرسانی چندین محصولvendorId, request: BatchUpdateProductsRequest
updateProduct()به‌روزرسانی محصول (پشتیبانی از آپلود فایل)productId, request: ProductRequestSchema, photoFiles, videoFile
getProduct()دریافت جزئیات محصولproductId, prefer
getProducts()دریافت لیست محصولاتqueryParams: GetProductsQuerySchema, prefer
createProductsBulkActionRequest()ایجاد به‌روزرسانی‌های انبوه محصولاتvendorId, request: BulkProductsUpdateRequestSchema
updateProductVariation()به‌روزرسانی تنوع محصولproductId, variationId, request: UpdateProductVariationSchema
getProductsBulkActionRequests()دریافت وضعیت به‌روزرسانی انبوهvendorId, page, perPage
getProductsBulkActionRequestsCount()دریافت تعداد به‌روزرسانی‌های انبوهvendorId
getProductsUnsuccessfulBulkActionRequests()دریافت به‌روزرسانی‌های ناموفقrequestId, page, perPage
getProductShelves()دریافت قفسه‌های محصولproductId
createDiscount()ایجاد تخفیف برای محصولاتvendorId, request: CreateDiscountRequestSchema
deleteDiscount()حذف تخفیف برای محصولاتvendorId, request: DeleteDiscountRequestSchema
getCurrentUser()دریافت اطلاعات کاربر فعلی-
createUserMobileConfirmationRequest()ایجاد درخواست تأیید موبایلuserId
verifyUserMobileConfirmationRequest()تأیید موبایل کاربرuserId, request: ConfirmCurrentUserMobileConfirmSchema
createUserMobileChangeRequest()ایجاد درخواست تغییر موبایلuserId, request: ChangeUserMobileRequestSchema
verifyUserMobileChangeRequest()تأیید تغییر موبایلuserId, request: ChangeUserMobileConfirmSchema
getUserBankAccounts()دریافت حساب‌های بانکی کاربرuserId, prefer
createUserBankAccount()ایجاد حساب بانکی کاربرuserId, request: UserCardsSchema, prefer
verifyUserBankAccountOtp()رمز یک‌بار مصرف (OTP) تأیید حساب بانکی کاربرuserId, request: UserCardsOtpSchema
verifyUserBankAccount()تأیید حساب‌ بانکی کاربرuserId, request: UserVerifyBankInformationSchema
deleteUserBankAccount()حذف حساب بانکی کاربرuserId, bankAccountId
updateUserBankAccount()به‌روزرسانی حساب بانکی کاربرbankAccountId, request: UpdateUserBankInformationSchema
updateUserVerification()به‌روزرسانی تأیید اطلاعات کاربرuserId, request: UserVerificationSchema
getCategoryAttributes()دریافت ویژگی‌های دسته‌بندیcategoryId, productId, vendorId, excludeMultiSelects
getCategories()دریافت همه دسته‌بندی‌ها-
getCategory()دریافت دسته‌بندی خاصcategoryId

مثال‌ها

پیکربندی اولیه

<?php use Basalam\SDK\BasalamClient; use Basalam\SDK\Auth\PersonalToken; $auth = new PersonalToken( token: 'your_access_token', refreshToken: 'your_refresh_token' ); $client = new BasalamClient($auth);

ایجاد غرفه‌دار

<?php use Basalam\SDK\Core\Models\CreateVendorSchema; function createVendorExample(): object { global $client; $vendor = $client->createVendor( userId: 123, request: new CreateVendorSchema( title: 'My Store', identifier: 'store123', categoryType: 1, city: 1, summary: 'A great store for all your needs' ) ); return $vendor; }

به‌روزرسانی غرفه‌دار

<?php use Basalam\SDK\Core\Models\UpdateVendorSchema; function updateVendorExample(): object { global $client; $updatedVendor = $client->updateVendor( vendorId: 456, request: new UpdateVendorSchema( title: 'Updated Store Name', summary: 'Updated description' ) ); return $updatedVendor; }

دریافت غرفه‌دار

<?php function getVendorExample(): object { global $client; $vendor = $client->getVendor( vendorId: 456, prefer: 'return=minimal' ); return $vendor; }

دریافت روش‌های ارسال پیش‌فرض

<?php function getDefaultShippingMethodsExample(): array { global $client; $shippingMethods = $client->getDefaultShippingMethods(); return $shippingMethods; }

دریافت روش‌های ارسال

<?php function getShippingMethodsExample(): array { global $client; $shippingMethods = $client->getShippingMethods(); return $shippingMethods; }

دریافت روش‌های ارسال فعال

<?php function getWorkingShippingMethodsExample(): array { global $client; $workingMethods = $client->getWorkingShippingMethods( vendorId: 456 ); return $workingMethods; }

پاسخ نمونه

[ new ShippingMethodResponse( id: 6124304, method: new ShippingMethodInfo(name: 'سفارشی', value: 3197, description: null), baseCost: 460000, additionalCost: 105000, isPrivate: false, additionalDimensionsCost: null, vendorId: null, deletedAt: null ), new ShippingMethodResponse( id: 6124301, method: new ShippingMethodInfo(name: 'پیشتاز', value: 3198, description: null), baseCost: 570000, additionalCost: 120000, isPrivate: false, additionalDimensionsCost: null, vendorId: null, deletedAt: null ), new ShippingMethodResponse( id: 6124305, method: new ShippingMethodInfo(name: 'پیک', value: 3259, description: null), baseCost: 320000, additionalCost: 35000, isPrivate: false, additionalDimensionsCost: null, vendorId: null, deletedAt: null ) ]

به‌روزرسانی روش‌های ارسال

<?php use Basalam\SDK\Core\Models\UpdateShippingMethodSchema; function updateShippingMethodsExample(): object { global $client; $updatedMethods = $client->updateShippingMethods( vendorId: 456, request: new UpdateShippingMethodSchema( shippingMethods: [ [ 'method_id' => 3198, 'is_customized' => true, 'base_cost' => 50000 ] ] ) ); return $updatedMethods; }

دریافت محصولات غرفه‌دار

<?php use Basalam\SDK\Core\Models\GetVendorProductsSchema; use Basalam\SDK\Core\Enums\ProductStatusInputEnum; function getVendorProductsExample(): object { global $client; $products = $client->getVendorProducts( vendorId: 456, queryParams: new GetVendorProductsSchema( statuses: [ProductStatusInputEnum::PUBLISHED], page: 1, perPage: 10 ) ); return $products; }

به‌روزرسانی وضعیت غرفه‌دار

<?php use Basalam\SDK\Core\Models\UpdateVendorStatusSchema; use Basalam\SDK\Core\Enums\VendorStatusInputEnum; function updateVendorStatusExample(): object { global $client; $statusUpdate = $client->updateVendorStatus( vendorId: 456, request: new UpdateVendorStatusSchema( status: VendorStatusInputEnum::SEMI_ACTIVE, description: 'Vendor is Semi Active' ) ); return $statusUpdate; }

ایجاد درخواست تغییر موبایل غرفه‌دار

<?php use Basalam\SDK\Core\Models\ChangeVendorMobileRequestSchema; function createVendorMobileChangeRequestExample(): object { global $client; $result = $client->createVendorMobileChangeRequest( vendorId: 456, request: new ChangeVendorMobileRequestSchema( mobile: '09123456789' ) ); return $result; }

تایید تغییر موبایل غرفه‌دار

<?php use Basalam\SDK\Core\Models\ChangeVendorMobileConfirmSchema; function createVendorMobileChangeConfirmationExample(): object { global $client; $result = $client->createVendorMobileChangeConfirmation( vendorId: 456, request: new ChangeVendorMobileConfirmSchema( mobile: '09123456789', verificationCode: 123456 ) ); return $result; }

ایجاد محصول

<?php use Basalam\SDK\Core\Models\ProductRequestSchema; use Basalam\SDK\Core\Enums\ProductStatusInputEnum; use Basalam\SDK\Core\Enums\UnitTypeInputEnum; function createProductExample(): object { global $client; $photoFiles = [ fopen('test1.png', 'r'), fopen('test2.png', 'r') ]; $request = new ProductRequestSchema( name: 'Product 01', description: 'The material of this product is very high quality and made of silk.', categoryId: 238, primaryPrice: 100000, weight: 300, packageWeight: 500, stock: 10, status: ProductStatusInputEnum::PUBLISHED, unitQuantity: 10, unitType: UnitTypeInputEnum::NUMERIC ); $product = $client->createProduct(456, $request, photoFiles: $photoFiles); // Close file handles foreach ($photoFiles as $file) { fclose($file); } return $product; }

به‌روزرسانی انبوه محصولات

<?php use Basalam\SDK\Core\Models\BatchUpdateProductsRequest; use Basalam\SDK\Core\Models\UpdateProductRequestItem; function updateBulkProductsExample(): object { global $client; $updatedProducts = $client->updateBulkProducts( vendorId: 456, request: new BatchUpdateProductsRequest( data: [ new UpdateProductRequestItem( id: 1, name: 'Updated Product 01', stock: 25 ), new UpdateProductRequestItem( id: 1, stock: 5, primaryPrice: 21000 ) ] ) ); return $updatedProducts; }

به‌روزرسانی یک محصول

<?php use Basalam\SDK\Core\Models\ProductRequestSchema; function updateProductExample(): object { global $client; $updatedProduct = $client->updateProduct( productId: 789, request: new ProductRequestSchema( status: 3790, productAttribute: [ [ '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 $updatedProduct; }

از این متد برای دریافت لیست ویژگی‌های دسته‌بندی استفاده کنید.

دریافت جزئیات محصول

<?php function getProductExample(): object { global $client; $product = $client->getProduct( productId: 24835037, prefer: 'return=minimal' ); return $product; }

دریافت لیست محصولات

<?php use Basalam\SDK\Core\Models\GetProductsQuerySchema; function getProductsExample(): object { global $client; $products = $client->getProducts( queryParams: new GetProductsQuerySchema( page: 1, perPage: 20, sort: 'price:asc' ) ); return $products; }

ایجاد درخواست عمل انبوه محصولات

<?php use Basalam\SDK\Core\Models\BulkProductsUpdateRequestSchema; use Basalam\SDK\Core\Models\ProductFilterSchema; use Basalam\SDK\Core\Models\BulkActionItem; use Basalam\SDK\Core\Models\RangeFilterItem; use Basalam\SDK\Core\Enums\ProductBulkActionTypeEnum; use Basalam\SDK\Core\Enums\ProductBulkFieldInputEnum; function createProductsBulkActionRequestExample(): object { global $client; $bulkRequest = $client->createProductsBulkActionRequest( vendorId: 456, request: new BulkProductsUpdateRequestSchema( productFilter: new ProductFilterSchema( stock: new RangeFilterItem( start: 1, end: 5 ) ), action: [ new BulkActionItem( field: ProductBulkFieldInputEnum::STOCK, action: ProductBulkActionTypeEnum::SET, value: 50 ) ] ) ); return $bulkRequest; }

به‌روزرسانی تنوع محصول

<?php use Basalam\SDK\Core\Models\UpdateProductVariationSchema; function updateProductVariationExample(): object { global $client; $updatedVariation = $client->updateProductVariation( productId: 789, variationId: 6639697, request: new UpdateProductVariationSchema( primaryPrice: 150000, stock: 100 ) ); return $updatedVariation; }

دریافت درخواست‌های عمل انبوه محصولات

<?php function getProductsBulkActionRequestsExample(): object { global $client; $bulkRequests = $client->getProductsBulkActionRequests( vendorId: 456, page: 1, perPage: 30 ); return $bulkRequests; }

دریافت تعداد درخواست‌های عمل انبوه محصولات

<?php function getProductsBulkActionRequestsCountExample(): object { global $client; $counts = $client->getProductsBulkActionRequestsCount( vendorId: 456 ); return $counts; }

دریافت درخواست‌های عمل انبوه ناموفق محصولات

<?php function getProductsUnsuccessfulBulkActionRequestsExample(): object { global $client; $unsuccessfulProducts = $client->getProductsUnsuccessfulBulkActionRequests( requestId: 123 ); return $unsuccessfulProducts; }

دریافت قفسه‌های محصول

<?php function getProductShelvesExample(): object { global $client; $shelves = $client->getProductShelves( productId: 789 ); return $shelves; }

ایجاد تخفیف

<?php use Basalam\SDK\Core\Models\CreateDiscountRequestSchema; use Basalam\SDK\Core\Models\DiscountProductFilterSchema; function createDiscountExample(): object { global $client; $discount = $client->createDiscount( vendorId: 456, request: new CreateDiscountRequestSchema( productFilter: new DiscountProductFilterSchema( productIds: [25010883, 24835037] ), discountPercent: 20, activeDays: 5 ) ); return $discount; }

حذف تخفیف

<?php use Basalam\SDK\Core\Models\DeleteDiscountRequestSchema; use Basalam\SDK\Core\Models\DiscountProductFilterSchema; function deleteDiscountExample(): object { global $client; $result = $client->deleteDiscount( vendorId: 456, request: new DeleteDiscountRequestSchema( productFilter: new DiscountProductFilterSchema( productIds: [25010883] ) ) ); return $result; }

دریافت اطلاعات کاربر جاری

<?php function getCurrentUserExample(): object { global $client; $user = $client->getCurrentUser(); return $user; }

ایجاد درخواست تأیید موبایل کاربر

<?php function createUserMobileConfirmationRequestExample(): object { global $client; $result = $client->createUserMobileConfirmationRequest( userId: 123 ); return $result; }

تأیید موبایل کاربر

<?php use Basalam\SDK\Core\Models\ConfirmCurrentUserMobileConfirmSchema; function verifyUserMobileConfirmationRequestExample(): object { global $client; $result = $client->verifyUserMobileConfirmationRequest( userId: 123, request: new ConfirmCurrentUserMobileConfirmSchema( verificationCode: 123456 ) ); return $result; }

ایجاد درخواست تغییر موبایل کاربر

<?php use Basalam\SDK\Core\Models\ChangeUserMobileRequestSchema; function createUserMobileChangeRequestExample(): object { global $client; $result = $client->createUserMobileChangeRequest( userId: 123, request: new ChangeUserMobileRequestSchema( mobile: '09123456789' ) ); return $result; }

تایید درخواست تغییر موبایل کاربر

<?php use Basalam\SDK\Core\Models\ChangeUserMobileConfirmSchema; function verifyUserMobileChangeRequestExample(): object { global $client; $result = $client->verifyUserMobileChangeRequest( userId: 123, request: new ChangeUserMobileConfirmSchema( mobile: '09123456789', verificationCode: 123456 ) ); return $result; }

دریافت حساب‌های بانکی کاربر

<?php function getUserBankAccountsExample(): object { global $client; $bankAccounts = $client->getUserBankAccounts( userId: 123 ); return $bankAccounts; }

ایجاد حساب بانکی کاربر

<?php use Basalam\SDK\Core\Models\UserCardsSchema; function createUserBankAccountExample(): object { global $client; $bankAccount = $client->createUserBankAccount( userId: 123, request: new UserCardsSchema( cardNumber: '1234567890123456' ) ); return $bankAccount; }

رمز یک‌بار مصرف تأیید حساب بانکی کاربر

<?php use Basalam\SDK\Core\Models\UserCardsOtpSchema; function verifyUserBankAccountOtpExample(): object { global $client; $result = $client->verifyUserBankAccountOtp( userId: 123, request: new UserCardsOtpSchema( cardNumber: '1234567890123456', otpCode: '123456' ) ); return $result; }

تأیید حساب بانکی کاربر

bankInformationId در خروجی متد verifyUserBankAccountOtp قرار دارد و باید به متد verifyUserBankAccount ارسال شود تا اطلاعات بانکی جدید که به‌تازگی اضافه شده است، تأیید گردد.

<?php use Basalam\SDK\Core\Models\UserVerifyBankInformationSchema; function verifyUserBankAccountExample(): object { global $client; $result = $client->verifyUserBankAccount( userId: 123, request: new UserVerifyBankInformationSchema( bankInformationId: 1, nationalCode: '1234567890', birthday: '1990-01-01' ) ); return $result; }

حذف حساب بانکی کاربر

<?php function deleteUserBankAccountExample(): object { global $client; $result = $client->deleteUserBankAccount( userId: 123, bankAccountId: 1 ); return $result; }

به‌روزرسانی حساب بانکی کاربر

<?php use Basalam\SDK\Core\Models\UpdateUserBankInformationSchema; function updateUserBankAccountExample(): object { global $client; $result = $client->updateUserBankAccount( bankAccountId: 1, request: new UpdateUserBankInformationSchema( userId: 123 ) ); return $result; }

به‌روزرسانی تایید کاربر

<?php use Basalam\SDK\Core\Models\UserVerificationSchema; function updateUserVerificationExample(): object { global $client; $user = $client->updateUserVerification( userId: 123, request: new UserVerificationSchema( nationalCode: '1234567890', birthday: '1990-01-01' ) ); return $user; }

دریافت ویژگی‌های یک دسته‌بندی

<?php function getCategoryAttributesExample(): object { global $client; $attributes = $client->getCategoryAttributes( categoryId: 1066 ); return $attributes; }

دریافت دسته‌بندی‌ها

<?php function getCategoriesExample(): array { global $client; $categories = $client->getCategories(); return $categories; }

دریافت جزئیات یک دسته‌بندی

<?php function getCategoryExample(): object { global $client; $category = $client->getCategory( categoryId: 1066 ); return $category; }
Last updated on