Skip to content

Instantly share code, notes, and snippets.

@mokanfar
Last active February 7, 2018 03:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mokanfar/4d8cf6bac0a7f7492809d48bfefc82ed to your computer and use it in GitHub Desktop.
Save mokanfar/4d8cf6bac0a7f7492809d48bfefc82ed to your computer and use it in GitHub Desktop.
Custom ERP -> Magento Stock Sync Shell Script. Handles kit parts in erp translates to a simple magento sku qty
#!/bin/bash
########## MAGENTO CONFIG VARIABLES #############
globalMagDir='/var/www/html/****'
globalScriptDir="${globalMagDir}/dev/stock-sync"
globalMagFeedDir="${globalMagDir}/media/amfeed/feeds"
amfeedF3='export_3'
amfeedF4='export_4'
########## MAGMI CONFIG VARIABLES ##############
magmiCLI="${globalMagDir}/magmi/magmi/cli/magmi.cli.php"
magmiImportCSVFile="${globalScriptDir}/magmi_stock_sync_mag_sku_qty.csv"
magmiProfile='stock'
magmiMode='update'
########## FILE VARIABLES ##########
f1='erp_sku_qty.csv'
f3='mag_sku_erp_sku.csv'
f4='mag_sku_child_sku.csv'
f5='erp_sku_mag_sku.csv'
f6='mag_sku_matched_qty_from_erp.csv'
f7='mag_child_sku_mag_config_sku.csv'
f8='config_mag_sku_qty.csv'
f9=${magmiImportCSVFile}
########## ERP CONFIG VARIABLES ##########
url='http://****.com/global/global.csv'
old_ftp_activate="${globalScriptDir}/${f1}"
tmp_ftp_acctivate="${globalScriptDir}/tmp_erp_sku_qty.csv"
logFile="${globalScriptDir}/log.txt"
######################## END CONFIG ########################
cp ${globalMagFeedDir}/${amfeedF3} ./${f3} && cp ${globalMagFeedDir}/${amfeedF4} ./${f4}
#downloading csv sheet
wget "$url" -O "${tmp_ftp_acctivate}" >/dev/null 2>&1
#calculating md5sum
md5sum_download=$(md5sum "$tmp_ftp_acctivate" | awk '{print $1}')
md5sum_existing=$(md5sum "$old_ftp_activate" | awk '{print $1}')
#comparing md5sum
if [ "$md5sum_download" != "$md5sum_existing" ]
then
echo "$(date -u) -- found new csv sheet" >> "$logFile"
#removing old csv sheet
rm -f "$old_ftp_activate"
#replacing new csv sheet
mv "$tmp_ftp_acctivate" "$f1"
#running magmi.cli.php
else
echo "$(date -u) -- no new csv sheet found " > "$logFile"
#removing downloaded file
rm -f "$tmp_ftp_acctivate"
exit
fi
#f3='mag_sku_erp_sku.csv'
#f3 traverse => f5
#f5='erp_sku_mag_sku.csv'
awk -v FS='","|^"|"$|,"|,' '{split($2, arr, ";"); OFS=","; for ( x in arr ) {print arr[x],$1}}' ${f3} > ${f5}
#f1='erp_sku_qty.csv'
#f5='erp_sku_mag_sku.csv'
#f5 match f1 => f6
#f6='mag_sku_matched_qty_from_erp.csv'
q -d ',' "SELECT f5.c2, f1.c2 FROM ${f1} f1 JOIN ${f5} f5 ON (f1.c1 = f5.c1)" | awk -F. '{print $1}' | q -d ',' "select c1, MIN(c2) from - group by c1" | awk -F',' '{ OFS=","; $2 < 0 ? $2=0 : $2;print $1,$2 }' > ${f6}
#f4='mag_sku_child_sku.csv'
#f4 traverse => f7
#f7='mag_child_sku_mag_config_sku.csv'
awk -F',' '{split($2, arr, ";"); OFS=","; for ( x in arr ) {print arr[x],$1}}' ${f4} > ${f7}
#f6='mag_sku_matched_qty_from_erp.csv'
#f7='mag_child_sku_mag_config_sku.csv'
#f6 match f7 => f8
#f8='config_mag_sku_qty.csv'
q -d ',' "SELECT f7.c2, f6.c2 FROM ${f6} f6 JOIN ${f7} f7 ON (f6.c1 = f7.c1)" | awk -F. '{print $1}' | q -d ',' "select c1, MIN(c2) from - group by c1" | awk -F',' '{ OFS=","; $2 < 0 ? $2=0 : $2;print $1,$2 }' > ${f8}
#f6='mag_sku_matched_qty_from_erp.csv'
#f8='config_mag_sku_qty.csv'
#f6 combine with f8 => f9
#f9=${magmiImportCSVFile}
printf "$(cat ${f6} ${f8})" | q -d ',' "SELECT * FROM - f9 order by f9.c1 asc" > ${f9}
sed -i 1i"sku,qty" ${f9}
#magmi import command here
php "$magmiCLI" -profile=${magmiProfile} -mode=${magmiMode} -CSV:filename="${magmiImportCSVFile}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment