islomzoda / ozonupdatestock
本包用于更新Ozon的库存
dev-main
2022-12-08 16:15 UTC
Requires
- illuminate/support: ~9
- maatwebsite/excel: ^3.1
Requires (Dev)
- orchestra/testbench: ~7
- phpunit/phpunit: ~9.0
This package is auto-updated.
Last update: 2024-09-08 20:11:55 UTC
README
这里应放置描述。请查看 contributing.md 以查看待办事项列表。
安装
通过Composer
$ composer require islomzoda/ozonupdatestock
用法
为了使包正常工作,在 .env 中添加字段
OZON_CLIENT_ID=ид магазина
OZON_API_KEY=ключт от апи
OZON_WH_ID=ид склада
在 storage/app/asset/ 文件夹中添加文件 alias.xlsx,其中将存储1C和Ozon之间的匹配以及桥接Ozon的命令
php artisan migrate
必须出现名为 ozon_match 的表
然后加载桥接器
php artisan ozon:alias
表中必须出现数据,product_id 字段为空,因为我们不会手动加载它们。如果决定手动加载,则可以跳过以下步骤
从Ozon加载匹配信息
php artisan ozon:match
我们的库已准备好使用
使用示例可在此处找到
<?php
namespace App\Service\MarketPlace\Ozon;
use App\Service\Accounting\OneC\OneC;
use Illuminate\Support\Facades\DB;
use Islomzoda\OzonUpdateStock\Facades\OzonUpdateStock;
class UpdateStockOzon
{
public function updateStock(){
// запрашиваем остатки от учетной системы в моем слуйчай это 1с
$items = (new OneC())->getAmountAndPrices();
$update = [];
foreach($items->{"ПакетПредложений"}->{"Предложения"}->{"Предложение"} as $item){
$getItem = DB::table('ozon_match')->where('one_c_uid', $item->{"Ид"})->first();
if ($getItem){
// так как валидация озон будеть ругаться на минусовые значение мы сделали свою неболшую проверку
$quantity = $item->{"Количество"} >= 0 ? $item->{"Количество"} : 0;
$update['stocks'][] = ['offer_id' => $getItem->offer_id, 'product_id' => (int)$getItem->product_id, 'stock' => $quantity, 'warehouse_id' => config('ozonupdatestock.wh_id')];
}
}
OzonUpdateStock::update($update);
}
}
变更日志
有关最近更改的更多信息,请参阅 changelog。
测试
$ composer test
贡献
请参阅 contributing.md 了解详细信息以及待办事项列表。
安全
如果您发现任何安全相关的问题,请通过电子邮件 islomzoda20@yandex.ru 而不是使用问题跟踪器。
鸣谢
许可证
MIT。请参阅 许可证文件 了解更多信息。