islomzoda/ozonupdatestock

本包用于更新Ozon的库存

dev-main 2022-12-08 16:15 UTC

This package is auto-updated.

Last update: 2024-09-08 20:11:55 UTC


README

Latest Version on Packagist Total Downloads Build Status StyleCI

这里应放置描述。请查看 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。请参阅 许可证文件 了解更多信息。