سرویس غرفه، کاربر و محصول (مرکزی)
مدیریت غرفهداران، محصولات، روشهای ارسال، اطلاعات کاربران و موارد دیگر با استفاده از سرویس اصلی. این سرویس امکانات جامعی برای مدیریت موجودیتهای اصلی کسبوکار فراهم میکند؛ از جمله ایجاد و مدیریت غرفهداران، مدیریت محصولات، روشهای ارسال، احراز هویت و اطلاعات کاربران، حسابهای بانکی و دستهبندیها و ویژگیها.
فهرست مطالب
متدهای غرفه و محصول
متد | توضیحات | پارامترها |
---|---|---|
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