forked frommeertensm/amazon-mws
- Notifications
You must be signed in to change notification settings - Fork15
forecho/amazon-mws
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Interaction with the Amazon Api for vendors called MWS
"require": { // ... "mcs/amazon-mws": "*", // ...},"repositories": [ { "name": "mcs/amazon-mws", "type": "git", "url": "git@github.com:forecho/amazon-mws.git" }]
$ composer require mcs/amazon-mws
require_once'vendor/autoload.php';$client =newMCS\MWSClient(['Marketplace_Id' =>'','Seller_Id' =>'','Access_Key_ID' =>'','Secret_Access_Key' =>'','MWSAuthToken' =>''// Optional. Only use this key if you are a third party user/developer]);// Optionally check if the supplied credentials are validif ($client->validateCredentials()) {// Credentials are valid}else {// Credentials are not valid}
$fromDate =newDateTime('2016-01-01');$orders =$client->ListOrders($fromDate);foreach ($ordersas$order) {$items =$client->ListOrderItems($order['AmazonOrderId']);print_r($order);print_r($items);}
$searchField ='ASIN';// Can be GCID, SellerSKU, UPC, EAN, ISBN, or JAN$result =$client->GetMatchingProductForId(['<ASIN1>','<ASIN2>','<ASIN3>'],$searchField);print_r($result);
publicfunctionuploadAmazon(string$productType,Product$product,int$productNode,$otherAttributes = []) {$client =newMCS\MWSClient(['Marketplace_Id' =>'','Seller_Id' =>'','Access_Key_ID' =>'','Secret_Access_Key' =>'','MWSAuthToken' =>''// Optional. Only use this key if you are a third party user/developer ]);$amazonProducts = [];$postItems = [];$amazonProduct =newAmazonMarketPlaceProduct();if ($product->productSku) {$amazonProduct->setSku($product->parent_sku) ->setFeedProductType($productType) ->setBrand($product->brand) ->setTitle($product->title) ->setManufacturer($product->manufacturer) ->setRecommendedBrowseNodes($productNode) ->setParentChild('Parent') ->setOtherAttributes(\app\core\helpers\ArrayHelper::clearValue($otherAttributes)) ->setVariationTheme($product->variation_theme);array_push($amazonProducts,$amazonProduct);array_push($postItems,$amazonProduct->toArray(false));foreach ($product->productSkuas$productSku) {$retailPrice =$productSku->retail_price ?:0;$salePrice =$productSku->sale_price ?:0;$saleDate =$salePrice ?explode('~',$productSku->sale_date) : [];$_amazonProduct =clone$amazonProduct;$_amazonProduct->setSku($productSku->product_sku) ->setFeedProductType($productType) ->setBrand($product->brand) ->setTitle($product->title) ->setManufacturer($product->manufacturer) ->setPrice($retailPrice >0 ? CurrencyConverter::CNYConverter($currency,$retailPrice) :'') ->setSalePrice($salePrice >0 ? CurrencyConverter::CNYConverter($currency,$salePrice) :'') ->setProductId($amazonProductId) ->setSizeName($productSku->size ?:'') ->setColorName($productSku->color ?:'') ->setProductIdType('EAN') ->setCurrency($currency) ->setConditionType('New') ->setWeight($product->weight) ->setQuantity($product->quantity) ->setParentChild('Child') ->setParentSku($parentSku) ->setSaleFromDate(count($saleDate) ==2 ?$saleDate[0] :'') ->setSaleEndDate(count($saleDate) ==2 ?$saleDate[1] :'') ->setVariationTheme($product->variation_theme) ->setKeywords($product->search_keyword) ->setRecommendedBrowseNodes($productNode) ->setBulletPoint($features) ->setDescription($product->description) ->setOtherAttributes($otherAttributes) ->setImage($productSku->images);array_push($amazonProducts,$_amazonProduct);array_push($postItems,$_amazonProduct->toArray(false)); } }else {$retailPrice =$product->price ?:0;$salePrice =$product->sale_price ?:0;$saleDate =$salePrice ?explode('~',$product->sale_date) : [];$amazonProduct->setSku($parentSku) ->setFeedProductType($productType) ->setBrand($product->brand) ->setTitle($product->{$titleAttribute}) ->setManufacturer($product->manufacturer) ->setPrice($retailPrice >0 ? CurrencyConverter::CNYConverter($currency,$retailPrice) :'') ->setSalePrice($salePrice >0 ? CurrencyConverter::CNYConverter($currency,$salePrice) :'') ->setProductId($amazonProductId) ->setProductIdType('EAN') ->setCurrency($currency) ->setConditionType('New') ->setWeight($product->weight) ->setQuantity($product->quantity) ->setSaleFromDate(count($saleDate) ==2 ?$saleDate[0] :'') ->setSaleEndDate(count($saleDate) ==2 ?$saleDate[1] :'') ->setKeywords($product->search_keyword) ->setRecommendedBrowseNodes($productNode) ->setBulletPoint($features) ->setDescription($product->description) ->setOtherAttributes($otherAttributes) ->setImage($product->images);array_push($amazonProducts,$amazonProduct);array_push($postItems,$amazonProduct->toArray(false)); }// You can also submit an array of MWSProduct objects$feed =$client->postProduct($amazonProducts,'fptcustomcustom','2019.0501','SE9NRV9MSUdIVElOR19BTkRfTEFNUFM=' );return$feed;}
$result =$client->updateStock(['sku1' =>20,'sku2' =>9,]);print_r($result);$info =$client->GetFeedSubmissionResult($result['FeedSubmissionId']);print_r($info);
$result =$client->updateStockWithFulfillmentLatency([ ['sku' =>'sku1','quantity' =>20,'latency' =>1], ['sku' =>'sku2','quantity' =>20,'latency' =>1],]);print_r($result);$info =$client->GetFeedSubmissionResult($result['FeedSubmissionId']);print_r($info);
$result =$client->updatePrice(['sku1' =>'20.99','sku2' =>'100.00',]);print_r($result);$info =$client->GetFeedSubmissionResult($result['FeedSubmissionId']);print_r($info);
For all report types, visit:http://docs.developer.amazonservices.com
$reportId =$client->RequestReport('_GET_MERCHANT_LISTINGS_DATA_');// Wait a couple of minutes and get it's content$report_content =$client->GetReport($reportId);print_r($report_content);
View source for detailed argument description.All methods starting with an uppercase character are also documented in theAmazon MWS documentation
// Returns the current competitive price of a product, based on ASIN.$client->GetCompetitivePricingForASIN($asin_array = []);// Returns the feed processing report and the Content-MD5 header.$client->GetFeedSubmissionResult($FeedSubmissionId);// Returns pricing information for the lowest-price active offer listings for up to 20 products, based on ASIN.$client->GetLowestOfferListingsForASIN($asin_array = [],$ItemCondition =null);// Returns lowest priced offers for a single product, based on ASIN.$client->GetLowestPricedOffersForASIN($asin,$ItemCondition ='New');// Returns a list of products and their attributes, based on a list of ASIN, GCID, SellerSKU, UPC, EAN, ISBN, and JAN values.$client->GetMatchingProductForId($asin_array,$type ='ASIN');// Returns a list of products and their attributes, based on an open text based query$client->ListMatchingProducts($query,$query_context_id =null);// Returns pricing information for your own offer listings, based on ASIN.$client->GetMyPriceForASIN($asin_array = [],$ItemCondition =null);// Returns pricing information for your own offer listings, based on SKU.$client->GetMyPriceForSKU($sku_array = [],$ItemCondition =null);// Returns an order based on the AmazonOrderId values that you specify.$client->GetOrder($AmazonOrderId);// Returns the parent product categories that a product belongs to, based on ASIN.$client->GetProductCategoriesForASIN($ASIN);// Returns the parent product categories that a product belongs to, based on SellerSKU.$client->GetProductCategoriesForSKU($SellerSKU);// Get a report's content$client->GetReport($ReportId);// Returns a list of reports that were created in the previous 90 days.$client->GetReportList($ReportTypeList = []);// Get a report's processing status$client->GetReportRequestStatus($ReportId);// Get a list's inventory for Amazon's fulfillment$client->ListInventorySupply($sku_array = []);// Returns a list of marketplaces that the seller submitting the request can sell in, and a list of participations that include seller-specific information in that marketplace$client->ListMarketplaceParticipations();// Returns order items based on the AmazonOrderId that you specify.$client->ListOrderItems($AmazonOrderId);// Returns orders created or updated during a time frame that you specify.$client->ListOrders($from,$allMarketplaces =false,$states = ['Unshipped','PartiallyShipped'],$FulfillmentChannel ='MFN');// Returns your active recommendations for a specific category or for all categories for a specific marketplace.$client->ListRecommendations($RecommendationCategory =null);// Creates a report request and submits the request to Amazon MWS.$client->RequestReport($report,$StartDate =null,$EndDate =null);// Uploads a feed for processing by Amazon MWS.$client->SubmitFeed($FeedType,$feedContent,$debug =false);// Call this method to get the raw feed instead of sending it$client->debugNextFeed();// Post to create or update a product (_POST_FLAT_FILE_LISTINGS_DATA_)$client->postProduct($MWSProduct);// Update a product's price$client->updatePrice($array);// Update a product's stock quantity$client->updateStock($array);// A method to quickly check if the supplied credentials are valid$client->validateCredentials();
About
Interaction with the Amazon api for vendors called MWS
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Languages
- PHP100.0%